module AAN::Keeper

Public Instance Methods

[](*args) click to toggle source
# File lib/a_a_n/keeper.rb, line 19
def [](*args)
  (structure[args.first] ||= {})
end
association(name, &block) click to toggle source
# File lib/a_a_n/keeper.rb, line 28
def association(name, &block)
  sub_structure = block.call
  sub_structure.each do |element|
    if element.is_a? Hash
      element.symbolize_keys!
      element = element.to_a.flatten
    elsif
      element = [element.to_sym, "#{name}_#{element}".to_sym]
    end
    (AAN::Keeper[current_model][name] ||= []) << element
  end
end
associations(model, &block) click to toggle source
# File lib/a_a_n/keeper.rb, line 23
def associations model, &block
  @@current_model = model
  instance_eval &block
end
nullify_aliased_methods_for(model, assoc) click to toggle source
# File lib/a_a_n/keeper.rb, line 7
def nullify_aliased_methods_for model, assoc
  aliased_methods = []
  AAN::Keeper.aliases_for(model, assoc).each do |aliased_method|
    aliased_methods << "@#{aliased_method} = nil"
  end
  aliased_methods.join("\n")
end
structure() click to toggle source
# File lib/a_a_n/keeper.rb, line 15
def structure
  @@structures ||= {}
end

Protected Instance Methods

aliases_for(model, assoc) click to toggle source
# File lib/a_a_n/keeper.rb, line 43
def aliases_for model, assoc
  structure[model][assoc].collect do |params|
    params.last
  end
end