Method: Fech::MapGenerator.dump_row_maps_to_ruby
- Defined in:
- lib/fech/map_generator.rb
.dump_row_maps_to_ruby(source_dir, file_path) ⇒ Object
Generates the mapping for each row type in BASE_ROW_TYPES, writes them out to file for inclusion in the gem.
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/fech/map_generator.rb', line 158 def self.dump_row_maps_to_ruby(source_dir, file_path) File.open(file_path, 'w') do |f| f.write("# Generated automatically by Fech::MapGenerator.\n\n") f.write("# RENDERED_MAPS contains an entry for each supported row type, which in turn:\n") f.write("# contain an entry for each distinct map between a row's labels and the\n") f.write("# indexes where their values can be found.\n") f.write("module Fech\n") f.write(" RENDERED_MAPS = {\n") BASE_ROW_TYPES.each do |row_type| f.write(" \"#{ROW_TYPE_MATCHERS[row_type].source}\" => {\n") generate_row_map_from_file(source_dir, row_type).sort_by(&:first).reverse.each do |k, v| f.write(" \'#{k}' => [#{v.map {|x| x.to_s.gsub(/^\d+_?/, "") }.collect {|x| (x.nil? || x == "") ? "nil" : ":#{x}" }.join(', ') }],\n") end f.write(" },\n") end f.write(" }\n") f.write("end") end end |