lib/jcompiler/provider.rb in jcompiler-0.1.119 vs lib/jcompiler/provider.rb in jcompiler-0.1.120

- old
+ new

@@ -1,32 +1,36 @@ class Jcompiler::Provider def initialize @context = nil end - def object!(arg_name = nil, &block) + def object!(arg_src = nil, &block) pre_context = @context @context = [] - srcs, subst_src = if arg_name - [block.call(nil), "#{block.parameters[0][1]}=#{arg_name};"] + srcs, subst_src = if arg_src + [block.call(nil), "#{block.parameters[0][1]}=(#{arg_src});"] else [block.call, ''] end @context = pre_context %{"{\#{#{subst_src}[#{srcs.join(',')}].join(',')}}"} end - def array!(arg_name, &block) + def array!(arg_src, &block) item_name = block.parameters[0][1].to_s src = block.call(nil) - %{"[\#{#{arg_name}.map { |#{item_name}| #{src} }.join(',')}]"} + %{"[\#{(#{arg_src}).map { |#{item_name}| #{src} }.join(',')}]"} end def number!(num) - %{"#{num}"} + %{num.to_json} end + def string!(str) + %{str.to_json} + end + def extract!(obj_name, *key_names) key_names.each do |key_name| send(key_name, "#{obj_name}.#{key_name}") end end @@ -35,10 +39,10 @@ src = if block block.call else args[0] end - @context << %{"\\"#{name}\\":\#{ActiveSupport::JSON.encode(#{src})}"} + @context << %{"\\"#{name}\\":\#{(#{src}).to_json}"} end protected def value!