lib/nina/assembler.rb in nina-0.1.0 vs lib/nina/assembler.rb in nina-0.1.1
- old
+ new
@@ -1,12 +1,10 @@
# frozen_string_literal: true
module Nina
# Generates module that adds support for objects creation
class Assembler
- NOOP_PROC = proc {}
-
# Adds ability to delegeate methods via method_missing
module MethodMissingDelegation
def method_missing(name, *attrs, &block)
return super unless methods.detect { |m| m == :__predecessor }
@@ -32,10 +30,10 @@
def inject(build_order, initialization = {}, callbacks: nil, delegate: false)
build_order.each.with_index(-1).inject(nil) do |prev, (name, idx)|
object = create_object(name, initialization)
self.class.def_accessor(build_order[idx], on: object, to: prev, delegate: delegate) if prev
- callbacks.to_h.fetch(name, NOOP_PROC)[object] if callbacks
+ callbacks.to_h.fetch(name, []).each { |c| c.call(object) } if callbacks
object
end
end
private