# File lib/rspec/core/metadata.rb, line 100
      def apply_condition(key, value, metadata=nil)
        metadata ||= self
        case value
        when Hash
          value.all? { |k, v| apply_condition(k, v, metadata[key]) }
        when Regexp
          metadata[key] =~ value
        when Proc
          value.call(metadata[key]) rescue false
        when Fixnum
          if key == :line_number
            relevant_line_numbers(metadata).include?(world.preceding_declaration_line(value))
          else
            metadata[key] == value
          end
        else
          metadata[key] == value
        end
      end