47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/jsonize.rb', line 47
def generate_json propses, externals = {}
propses.reduce({}) do |r, (name, props)|
value =
if props["rule"].is_a?(Proc)
props["rule"][self]
elsif props["rule"].is_a?(String)
externals.fetch(props["rule"].to_sym) { |x| externals[props["rule"]] }
elsif props["real_name"] != name.to_s
read_attribute(props["real_name"]).as_json
elsif props["rule"].instance_variable_get(:@value)
props["rule"].instance_variable_get(:@value)
elsif props["rule"]
read_attribute(props["real_name"] || props["rule"])
end
r.merge(name => value)
end
end
|