Class: Libis::Metadata::Mapper
- Inherits:
-
Object
- Object
- Libis::Metadata::Mapper
- Defined in:
- lib/libis/metadata/mapper.rb
Overview
New style parsers and converters for metadata. New, not finished and untested.
Instance Attribute Summary collapse
-
#format_parser ⇒ Object
readonly
Returns the value of attribute format_parser.
-
#mapping ⇒ Object
readonly
Returns the value of attribute mapping.
-
#selection_parser ⇒ Object
readonly
Returns the value of attribute selection_parser.
-
#tables ⇒ Object
readonly
Returns the value of attribute tables.
-
#target_parser ⇒ Object
readonly
Returns the value of attribute target_parser.
Instance Method Summary collapse
-
#initialize(selection_parser, target_parser, format_parser, config_xlsx) ⇒ Mapper
constructor
A new instance of Mapper.
Constructor Details
#initialize(selection_parser, target_parser, format_parser, config_xlsx) ⇒ Mapper
Returns a new instance of Mapper.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/libis/metadata/mapper.rb', line 18 def initialize(selection_parser, target_parser, format_parser, config_xlsx) @selection_parser = selection_parser @target_parser = target_parser @format_parser = format_parser @mapping = [] @tables = {} doc = SimpleXlsxReader.open(config_xlsx) doc.sheets.each do |sheet| if sheet.name == 'Mapping' mapping = sheet_to_hash(sheet) mapping.each do |rule| # noinspection RubyStringKeysInHashInspection @mapping << { 'Selection' => begin selection_parser.parse(rule['Selection']) rescue Parslet::ParseFailed => error puts "Error parsing '#{rule['Selection']}'" puts error.cause.ascii_tree end, 'Target' => begin target_parser.parse(rule['Target']) rescue Parslet::ParseFailed => error puts "Error parsing '#{rule['Target']}'" puts error.cause.ascii_tree end, 'Format' => begin format_parser.parse(rule['Format']) rescue Parslet::ParseFailed => error puts "Error parsing '#{rule['Format']}'" puts error.cause.ascii_tree end, } end else @tables[sheet.name] = sheet_to_hash(sheet) end end if @mapping.empty? raise RuntimeError, "Failure: config file '#{config_xlsx}' does not contain a 'Mapping' sheet." end end |
Instance Attribute Details
#format_parser ⇒ Object (readonly)
Returns the value of attribute format_parser.
15 16 17 |
# File 'lib/libis/metadata/mapper.rb', line 15 def format_parser @format_parser end |
#mapping ⇒ Object (readonly)
Returns the value of attribute mapping.
16 17 18 |
# File 'lib/libis/metadata/mapper.rb', line 16 def mapping @mapping end |
#selection_parser ⇒ Object (readonly)
Returns the value of attribute selection_parser.
15 16 17 |
# File 'lib/libis/metadata/mapper.rb', line 15 def selection_parser @selection_parser end |
#tables ⇒ Object (readonly)
Returns the value of attribute tables.
16 17 18 |
# File 'lib/libis/metadata/mapper.rb', line 16 def tables @tables end |
#target_parser ⇒ Object (readonly)
Returns the value of attribute target_parser.
15 16 17 |
# File 'lib/libis/metadata/mapper.rb', line 15 def target_parser @target_parser end |