Module: ColumnMapper
- Defined in:
- lib/yap/column_mapper.rb
Instance Attribute Summary collapse
-
#_api_aliases ⇒ Object
readonly
Returns the value of attribute _api_aliases.
Instance Method Summary collapse
- #api_aliases(aliases = nil, &block) ⇒ Object
- #api_aliases_hash(aliases) ⇒ Object
- #map_column(name) ⇒ Object
Instance Attribute Details
#_api_aliases ⇒ Object (readonly)
Returns the value of attribute _api_aliases.
2 3 4 |
# File 'lib/yap/column_mapper.rb', line 2 def _api_aliases @_api_aliases end |
Instance Method Details
#api_aliases(aliases = nil, &block) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/yap/column_mapper.rb', line 3 def api_aliases(aliases = nil, &block) raise "Aliases already defined. Make sure to invoke #{__method__} only once." if defined? @_api_aliases api_aliases_hash(aliases) if aliases.present? if block_given? raise ArgumentError, 'Only one of the following allowed: Hash of aliases or block.' if aliases.present? @_api_aliases = block end nil end |
#api_aliases_hash(aliases) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/yap/column_mapper.rb', line 17 def api_aliases_hash(aliases) raise ArgumentError, "Expected first argument to be a Hash, got #{aliases.class.name}." unless aliases.is_a? Hash @_api_aliases = aliases.symbolize_keys nil end |
#map_column(name) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/yap/column_mapper.rb', line 25 def map_column(name) actual_column = name if column_names.include?(name) column_alias = if _api_aliases.is_a? Hash _api_aliases[name.to_sym] elsif _api_aliases.is_a? Proc _api_aliases.call(name) end result = column_alias || actual_column return if result.blank? result.to_s end |