module ColumnMapper

Attributes

_api_aliases[R]

Public Instance Methods

api_aliases(aliases = nil, &block) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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