class ObjCGenerator::JSONParser

Public Instance Methods

parse(input_file) click to toggle source

return an array of maps in this format {:name => 'SampleClass', :var_list => [.…]}

# File lib/ObjCGenerator/json_parser.rb, line 7
def parse(input_file)
  parsed = JSON.parse(input_file)
  result = []
  parsed.each do |klass|
    if klass["type"] == "Class"
      var_list = klass["vars"].map { |hash|
        case hash["type"]
        when "Bool"
          TypeBool.new(hash["name"])
        when "Int"
          TypeInt.new(hash["name"])
        when "Float"
          TypeFloat.new(hash["name"])
        when "String"
          TypeString.new(hash["name"])
        when "Date"
          TypeDate.new(hash["name"])
        when "Array"
          TypeArray.new(hash["name"], hash["subType"])
        else
          TypeCustomObject.new(hash["name"], hash["type"])
        end
      }
    end #end if
    result << {name: klass["name"], var_list: var_list }
  end #end each
  result
end