Class: DomainDriven::Criteria
- Inherits:
-
Object
- Object
- DomainDriven::Criteria
show all
- Defined in:
- lib/domain_driven/criteria.rb
Instance Method Summary
collapse
Constructor Details
Returns a new instance of Criteria.
23
24
25
|
# File 'lib/domain_driven/criteria.rb', line 23
def initialize()
@chain = []
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, *args, &block) ⇒ Object
51
52
53
|
# File 'lib/domain_driven/criteria.rb', line 51
def method_missing(sym, *args, &block)
self.add(sym.to_sym, *args)
end
|
Instance Method Details
#add(name, *args) ⇒ Object
35
36
37
|
# File 'lib/domain_driven/criteria.rb', line 35
def add(name, *args)
add_message(DomainDriven::Message.new(name, *args))
end
|
#chain ⇒ Object
64
65
66
|
# File 'lib/domain_driven/criteria.rb', line 64
def chain
@chain
end
|
#find ⇒ Object
60
61
62
|
# File 'lib/domain_driven/criteria.rb', line 60
def find(*)
raise "not supported"
end
|
#load ⇒ Object
56
57
58
|
# File 'lib/domain_driven/criteria.rb', line 56
def load
self.add(:load)
end
|
#merge(criteria) ⇒ Object
27
28
29
30
31
32
|
# File 'lib/domain_driven/criteria.rb', line 27
def merge(criteria)
criteria.chain.each do |e|
add_message(e)
end
self
end
|
#send_to(target) ⇒ Object
44
45
46
47
48
49
|
# File 'lib/domain_driven/criteria.rb', line 44
def send_to(target)
@chain.each do |e|
target = target.send(*(e.sendable))
end
target
end
|
#to_s ⇒ Object
39
40
41
42
|
# File 'lib/domain_driven/criteria.rb', line 39
def to_s
return '' if @chain.empty?
"target." + @chain.map(&:to_s).join('.')
end
|