Class: Patme::Implementation

Inherits:
Object
  • Object
show all
Defined in:
lib/patme/implementation.rb

Instance Method Summary collapse

Constructor Details

#initialize(method_obj, args) ⇒ Implementation

Returns a new instance of Implementation.



4
5
6
7
# File 'lib/patme/implementation.rb', line 4

def initialize(method_obj, args)
  @method_proc = method_obj
  @args = args
end

Instance Method Details

#call(object, args) ⇒ Object



16
17
18
# File 'lib/patme/implementation.rb', line 16

def call(object, args)
  @method_proc.bind(object).call(*args)
end

#match?(given_args) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
13
14
# File 'lib/patme/implementation.rb', line 9

def match?(given_args)
  required_args = @args.reject(&:optional?)

  (required_args.size..@args.size).cover?(given_args.size)\
    && required_args == given_args.first(required_args.size)
end