Sha256: a3ea4b3fa4d01347f5c3ccf3fcb8f7f0345cf57a47cb6b83bfb125a44863c54b

Contents?: true

Size: 785 Bytes

Versions: 19

Compression:

Stored size: 785 Bytes

Contents

module Spec
  module Matchers
    
    class Has
      
      def initialize(expected, *args, &block)
        @expected, @args, @block = expected, args, block
      end
      
      def matches?(actual)
        actual.__send__(predicate(@expected), *@args, &@block)
      end
      
      def failure_message_for_should
        "expected ##{predicate(@expected)}(#{@args[0].inspect}) to return true, got false"
      end
      
      def failure_message_for_should_not
        "expected ##{predicate(@expected)}(#{@args[0].inspect}) to return false, got true"
      end
      
      def description
        "have key #{@args[0].inspect}"
      end
    
    private
    
      def predicate(sym)
        "#{sym.to_s.sub("have_","has_")}?".to_sym
      end
      
    end
    
  end
end

Version data entries

19 entries across 19 versions & 7 rubygems

Version Path
rspec-instructure-1.3.3 lib/spec/matchers/has.rb
radiant-1.0.0 ruby-debug/ruby/1.8/gems/rspec-1.3.2/lib/spec/matchers/has.rb
rspec-1.3.2 lib/spec/matchers/has.rb
rspec-1.3.1 lib/spec/matchers/has.rb
rspec-1.3.1.rc lib/spec/matchers/has.rb
rspec-1.3.0 lib/spec/matchers/has.rb
media-path-0.1.2 vendor/rspec/lib/spec/matchers/has.rb
simple-templater-0.0.1.3 vendor/rspec/lib/spec/matchers/has.rb
pupu-0.0.2.pre vendor/rspec/lib/spec/matchers/has.rb
media-path-0.1.1.pre vendor/rspec/lib/spec/matchers/has.rb
simple-templater-0.0.1.2 vendor/rspec/lib/spec/matchers/has.rb
media-path-0.1.1 vendor/rspec/lib/spec/matchers/has.rb
simple-templater-0.0.1.1 vendor/rspec/lib/spec/matchers/has.rb
pupu-0.0.2 vendor/rspec/lib/spec/matchers/has.rb
rango-0.0.6 vendor/rspec/lib/spec/matchers/has.rb
rango-0.1.pre vendor/rspec/lib/spec/matchers/has.rb
pupu-0.0.1 vendor/rspec/lib/spec/matchers/has.rb
media-path-0.1 vendor/rspec/lib/spec/matchers/has.rb
simple-templater-0.0.1 vendor/rspec/lib/spec/matchers/has.rb