Class: CallCenter::ConditionalStack
- Inherits:
-
Object
- Object
- CallCenter::ConditionalStack
show all
- Defined in:
- lib/call_center/conditional_stack.rb
Defined Under Namespace
Classes: Conditional, Evaluator, IfConditional, UnlessConditional
Instance Method Summary
collapse
Constructor Details
Returns a new instance of ConditionalStack.
3
4
5
|
# File 'lib/call_center/conditional_stack.rb', line 3
def initialize
@stack = []
end
|
Instance Method Details
7
8
9
|
# File 'lib/call_center/conditional_stack.rb', line 7
def <<(obj)
@stack << obj
end
|
#any? ⇒ Boolean
15
16
17
|
# File 'lib/call_center/conditional_stack.rb', line 15
def any?
@stack.any?
end
|
#inject(options) ⇒ Object
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/call_center/conditional_stack.rb', line 19
def inject(options)
current_stack = @stack.dup
current_stack << IfConditional.new(options[:if]) if options[:if]
evaluator = Evaluator.new(current_stack) { |model|
current_stack.map { |conditional| conditional.evaluate(model) }.all?
}
options.merge(:if => evaluator)
end
|
11
12
13
|
# File 'lib/call_center/conditional_stack.rb', line 11
def pop
@stack.pop
end
|