class NinjaModel::Associations::Builder::SingularAssociation

Public Instance Methods

constructable?() click to toggle source
# File lib/ninja_model/associations/builder/singular_association.rb, line 7
def constructable?
  true
end
define_accessors() click to toggle source
# File lib/ninja_model/associations/builder/singular_association.rb, line 11
def define_accessors
  super
  define_constructors if constructable?
end

Private Instance Methods

define_constructors() click to toggle source
# File lib/ninja_model/associations/builder/singular_association.rb, line 31
def define_constructors
  name = self.name

  model.redefine_method("build_#{name}") do |*params, &block|
    association(name).build(*params, &block)
  end

  model.redefine_method("create_#{name}") do |*params, &block|
    association(name).create(*params, &block)
  end

  model.redefine_method("create_#{name}!") do |*params, &block|
    association(name).create!(*params, &block)
  end
end
define_readers() click to toggle source
# File lib/ninja_model/associations/builder/singular_association.rb, line 18
def define_readers
  super
  name = self.name

  model.redefine_method("#{name}_loaded?") do
    ActiveSupport::Deprecation.warn(
      "Calling obj.#{name}_loaded? is deprecated.  Please use " \
      "obj.association(:#{name}).loaded? instead."
    )
    association(name).loaded?
  end
end