class Dynamodb::Api::Relation::ExpressionAttributeNames

Attributes

names[RW]

Public Class Methods

new(names = {}) click to toggle source
# File lib/dynamodb/api/relation/expression_attribute_names.rb, line 9
def initialize(names = {})
  self.names = {}

  case names.class.to_s
  when 'String'
    add(names)
  when 'Array'
    names.each do |name|
      add(name)
    end
  when 'Hash'
    self.names = names
  else
    raise "#{names.class} is not support"
  end
end

Public Instance Methods

add(names) click to toggle source
# File lib/dynamodb/api/relation/expression_attribute_names.rb, line 26
def add(names)
  _names = formatting(names)
  self.names.merge!(_names)
end

Private Instance Methods

formatting(names) click to toggle source
# File lib/dynamodb/api/relation/expression_attribute_names.rb, line 33
def formatting(names)
  _names = names.is_a?(Array) ? names : [names]
  _names.each_with_object({}) do |name, hash|
    next hash[name.to_sym] = remove_hash_tag(name) if name.is_a?(String)
    next hash.merge!(name) if name.is_a?(Hash)
    raise "#{name.class} is not support"
  end
end
remove_hash_tag(name) click to toggle source
# File lib/dynamodb/api/relation/expression_attribute_names.rb, line 42
def remove_hash_tag(name)
  name.gsub(/\#/, '')
end