Module: LittleBoxes::Strategy
- Defined in:
- lib/little_boxes/strategy.rb
Class Method Summary collapse
- .do_configure(subject, box) ⇒ Object
- .for(block, memo: false, configure: false, then_block: nil) ⇒ Object
Class Method Details
.do_configure(subject, box) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/little_boxes/strategy.rb', line 19 def do_configure(subject, box) config = {box: box} config.default_proc = Proc.new do |h, name| h[name] = h[:box][name] end subject.config = config subject end |
.for(block, memo: false, configure: false, then_block: nil) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/little_boxes/strategy.rb', line 5 def for(block, memo: false, configure: false, then_block: nil) code = "block.call(bx)" code = "do_configure(#{code}, bx)" if configure code = "#{code}.tap { |v| then_block.call v, bx }" if then_block if memo code = "value = nil; ->(bx) { value ||= #{code} }" else code = "->(bx) { #{code} }" end eval code end |