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