Class: OverloadedMethods::Clause

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(predicate) ⇒ Clause

Returns a new instance of Clause.



21
22
23
# File 'lib/overloaded_methods.rb', line 21

def initialize(predicate)
  @predicate = predicate
end

Instance Attribute Details

#predicateObject (readonly)

Returns the value of attribute predicate.



20
21
22
# File 'lib/overloaded_methods.rb', line 20

def predicate
  @predicate
end

Class Method Details

.match_allObject



14
15
16
# File 'lib/overloaded_methods.rb', line 14

def self.match_all
  new ->*{true}
end

.with_predicate(predicate) ⇒ Object



17
18
19
# File 'lib/overloaded_methods.rb', line 17

def self.with_predicate(predicate)
  new predicate
end

Instance Method Details

#call(*params) ⇒ Object



35
36
37
# File 'lib/overloaded_methods.rb', line 35

def call *params
  @block.call *params
end

#do(&block) ⇒ Object Also known as: does



27
28
29
30
# File 'lib/overloaded_methods.rb', line 27

def do &block
  @block = block
  self
end

#match?(*params) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/overloaded_methods.rb', line 24

def match?(*params)
  @predicate.call(*params)
end

#return(value) ⇒ Object



31
32
33
# File 'lib/overloaded_methods.rb', line 31

def return value
  self.do {|*|value}
end