Sha256: e7f292a0aba9ac6e51ff2ea238015171dc33073a4e4f8705b7f433b06aa53e58

Contents?: true

Size: 812 Bytes

Versions: 4

Compression:

Stored size: 812 Bytes

Contents

module MasterRecord
  def self.string
    lambda{|val| "'#{val}'"}
  end

  def self.integer
    lambda{|val| val.to_s}
  end
  module Factory
    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
# coding: utf-8
module ::#{prefix}Data
  #{module_info}
end
EOF
      module_contents
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
MasterRecord-0.3.2 lib/master_record/factory.rb
MasterRecord-0.3.1 lib/master_record/factory.rb
MasterRecord-0.3.0 lib/master_record/factory.rb
MasterRecord-0.2.0 lib/master_record/factory.rb