Class: RR::WildcardMatchers::DuckType

Inherits:
Object
  • Object
show all
Defined in:
lib/rr/wildcard_matchers/duck_type.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*required_methods) ⇒ DuckType

Returns a new instance of DuckType.



6
7
8
# File 'lib/rr/wildcard_matchers/duck_type.rb', line 6

def initialize(*required_methods)
  @required_methods = required_methods
end

Instance Attribute Details

#required_methodsObject

Returns the value of attribute required_methods.



4
5
6
# File 'lib/rr/wildcard_matchers/duck_type.rb', line 4

def required_methods
  @required_methods
end

Instance Method Details

#==(other) ⇒ Object



18
19
20
21
# File 'lib/rr/wildcard_matchers/duck_type.rb', line 18

def ==(other)
  return false unless other.is_a?(self.class)
  self.required_methods == other.required_methods
end

#wildcard_match?(other) ⇒ Boolean

Returns:



10
11
12
13
14
15
16
# File 'lib/rr/wildcard_matchers/duck_type.rb', line 10

def wildcard_match?(other)
  return true if self == other
  required_methods.each do |m|
    return false unless other.respond_to?(m)
  end
  return true
end