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!