module MasterRecord::Factory

Public Class Methods

build(prefix,datum,field_info) click to toggle source
# File lib/master_record/factory.rb, line 10
    def self.build(prefix,datum,field_info)
      raise "must use ruby version 1.9.1" unless RUBY_VERSION >= '1.9.1'
      fields = field_info.keys.map{|k| ":" + k.to_s}
      module_info = "#{prefix}Records ={\n"
      data_set = []
      count = 0
      datum.each do |data|
        rec = "    '#{data[0]}' => {\n"
        i = 0
        rec += field_info.map{|k,v|i+=1;"      :#{k.to_s} => #{v.call(data[i])},"}.join("\n")
        rec += "\n    }"
        data_set.push(rec)
      end
      module_info += data_set.join(",\n") + "}"
      module_contents = <<EOF

module ::#{prefix}Data
  #{module_info}
end
EOF
      module_contents
    end