module NinjaModel::Associations::ClassMethods

Public Instance Methods

add_autosave_association_callbacks(reflection) click to toggle source
# File lib/ninja_model/associations.rb, line 48
def add_autosave_association_callbacks(reflection)
end
belongs_to(name, options = {}, &extension) click to toggle source
# File lib/ninja_model/associations.rb, line 59
def belongs_to(name, options = {}, &extension)
  klass = compute_klass(name, :belongs_to, options)
  if NinjaModel.ninja_model?(klass)
    Builder::BelongsTo.build(self, name, options)
  else
    ActiveRecord::Associations::Builder::BelongsTo.build(self, name, options)
  end
end
has_many(name, options = {}, &extension) click to toggle source
# File lib/ninja_model/associations.rb, line 68
def has_many(name, options = {}, &extension)
  klass = compute_klass(name, :has_many, options)
  if NinjaModel.ninja_model?(klass)
    Builder::HasMany.build(self, name, options)
  else
    ActiveRecord::Associations::Builder::HasMany.build(self, name, options)
  end
end
has_one(name, options = {}) click to toggle source
# File lib/ninja_model/associations.rb, line 50
def has_one(name, options = {})
  klass = compute_klass(name, :has_one, options)
  if NinjaModel.ninja_model?(klass)
    Builder::HasOne.build(self, name, options)
  else
    ActiveRecord::Associations::Builder::HasOne.build(self, name, options)
  end
end

Private Instance Methods

compute_klass(name, macro, options) click to toggle source
# File lib/ninja_model/associations.rb, line 79
def compute_klass(name, macro, options)
  klass = options[:class_name] || name
  klass = klass.to_s.camelize
  klass = klass.singularize if macro.eql?(:has_many)
  klass = compute_type(klass)
end