class RSpec::Core::Metadata

def apply_condition(key, value, metadata=nil)

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