lib/fxruby-enhancement/api-mapper.rb.erb in fxruby-enhancement-0.0.4 vs lib/fxruby-enhancement/api-mapper.rb.erb in fxruby-enhancement-0.1.0

- old
+ new

@@ -48,12 +48,12 @@ end <% end %> module Enhancement module Mapper <% for @class, @details in @api %> - def <%= @class.snake %> name = nil, ii: <%= (Fox::Enhancement::INITFORCE.member? @class) ? Fox::Enhancement::INITFORCE[@class] : 0 %>, pos: Enhancement.stack.last, &block - Enhancement.stack << (@os = os = OpenStruct.new(klass: <%= @class %>, op: [], ii: ii, fx: nil, kinder: [], inst: nil, instance_result: nil)) + def <%= @class.snake %> name = nil, ii: <%= (Fox::Enhancement::INITFORCE.member? @class) ? Fox::Enhancement::INITFORCE[@class] : 0 %>, pos: Enhancement.stack.last, reuse: nil, &block + Enhancement.stack << (@os = os = OpenStruct.new(klass: <%= @class %>, op: [], ii: ii, fx: nil, kinder: [], inst: nil, instance_result: nil, reusable: reuse)) Enhancement.components[name] = os unless name.nil? unless pos.nil? pos.kinder << os else Enhancement.base = os @@ -71,10 +71,10 @@ @os.instance_block = block end <% @i+=1; end unless @details[:initialize].nil? %> self.instance_eval &block <% unless Fox::Enhancement::SPECIAL.member? @class %> - os.fx = ->(){ <%= @class %>.new(*([pos.inst] + os.op[os.ii].to_h.values[1..-1])) } + os.fx = ->(){ <%= @class %>.new(*([pos.inst] + os.op[os.ii].to_h.values[1..-1].map{|v| (v.is_a?(OpenStruct)? v.inst : v)} )) } <% else %> os.fx = ->(){ <%= @class %>.new(*(os.op[os.ii].to_h.values)) } <% end %> Enhancement.stack.pop @os = Enhancement.stack.last