module NoBrainer::Document::Aliases::ClassMethods

Public Instance Methods

field(attr, options={}) click to toggle source
Calls superclass method
# File lib/no_brainer/document/aliases.rb, line 14
def field(attr, options={})
  if options[:store_as]
    self.alias_map[attr.to_s] = options[:store_as].to_s
    self.alias_reverse_map[options[:store_as].to_s] = attr.to_s
  end
  super
end
lookup_field_alias(attr) click to toggle source
# File lib/no_brainer/document/aliases.rb, line 33
def lookup_field_alias(attr)
  alias_map[attr.to_s] || attr
end
persistable_key(k, options={}) click to toggle source
Calls superclass method
# File lib/no_brainer/document/aliases.rb, line 51
def persistable_key(k, options={})
  lookup_field_alias(super)
end
remove_field(attr, options={}) click to toggle source
Calls superclass method
# File lib/no_brainer/document/aliases.rb, line 22
def remove_field(attr, options={})
  super

  self.alias_map.delete(attr.to_s)
  self.alias_reverse_map.delete(attr.to_s)
end
reverse_lookup_field_alias(attr) click to toggle source
# File lib/no_brainer/document/aliases.rb, line 29
def reverse_lookup_field_alias(attr)
  alias_reverse_map[attr.to_s] || attr
end
with_fields_aliased(attrs) click to toggle source
# File lib/no_brainer/document/aliases.rb, line 44
def with_fields_aliased(attrs)
  case attrs
  when Array then attrs.map { |k| lookup_field_alias(k) }
  when Hash  then Hash[attrs.map { |k,v| [lookup_field_alias(k), v] }]
  end
end
with_fields_reverse_aliased(attrs) click to toggle source
# File lib/no_brainer/document/aliases.rb, line 37
def with_fields_reverse_aliased(attrs)
  case attrs
  when Array then attrs.map { |k| reverse_lookup_field_alias(k) }
  when Hash  then Hash[attrs.map { |k,v| [reverse_lookup_field_alias(k), v] }]
  end
end