Class: SaxStream::Internal::FieldMappings
- Inherits:
-
Object
- Object
- SaxStream::Internal::FieldMappings
- Defined in:
- lib/sax_stream/internal/field_mappings.rb
Defined Under Namespace
Classes: MappingOptions
Instance Method Summary collapse
- #class_mappings ⇒ Object
- #field_mapping(key, attributes = []) ⇒ Object
-
#initialize ⇒ FieldMappings
constructor
A new instance of FieldMappings.
- #store(key, mapping) ⇒ Object
Constructor Details
#initialize ⇒ FieldMappings
Returns a new instance of FieldMappings.
50 51 52 |
# File 'lib/sax_stream/internal/field_mappings.rb', line 50 def initialize @mappings ||= CoreExtensions::OrderedHash.new end |
Instance Method Details
#class_mappings ⇒ Object
69 70 71 |
# File 'lib/sax_stream/internal/field_mappings.rb', line 69 def class_mappings @mappings end |
#field_mapping(key, attributes = []) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/sax_stream/internal/field_mappings.rb', line 73 def field_mapping(key, attributes = []) result = find_non_regex_mapping(key) || regex_field_mapping(key) unless result.is_a?(Array) result = [result] end result.compact! result.detect do |one_result| one_result.element if one_result.allows_mapping?(key, attributes) end end |
#store(key, mapping) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/sax_stream/internal/field_mappings.rb', line 54 def store(key, mapping) parsed_key = build_key_from_array(key) new_value = MappingOptions.new(mapping, key) if class_mappings[parsed_key] unless class_mappings[parsed_key].is_a?(Array) old_value = class_mappings[parsed_key] class_mappings[parsed_key] = [old_value] end class_mappings[parsed_key] << new_value else class_mappings[parsed_key] = new_value end end |