Method: Jsonize#generate_json

Defined in:
lib/jsonize.rb

#generate_json(propses, externals = {}) ⇒ Object



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