Sha256: f8e3517532540be192185368001479afac24397de08200c4d34a95c14ca9d6d9
Contents?: true
Size: 1.37 KB
Versions: 9
Compression:
Stored size: 1.37 KB
Contents
module Spread2RDF module Mapping class Spreadsheet < Element attr_reader :input_file def initialize(schema, filename) super(schema, nil) @worksheets = {} @input_file = filename ROO.load(filename) end def map schema.sorted_worksheets.each do |worksheet_schema| next unless ROO.roo.sheets.include? worksheet_schema.source_name worksheet!(worksheet_schema) end self end def worksheet_schema(name) case name when Schema::Worksheet then name when String, Symbol then schema.worksheet[name] else raise ArgumentError end end ########################################################################## # Mapping::Element structure def spreadsheet self end def worksheets @worksheets.values end alias _children_ worksheets def worksheet(name) @worksheets[worksheet_schema(name).name] end def worksheet!(name) worksheet_schema = worksheet_schema(name) @worksheets[worksheet_schema.name] || begin @worksheets[worksheet_schema.name] = mapping = Mapping::Worksheet.new(worksheet_schema, self) mapping.map end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems