class NinjaModel::Associations::Builder::BelongsTo

Public Instance Methods

build() click to toggle source
Calls superclass method
# File lib/ninja_model/associations/builder/belongs_to.rb, line 7
def build
  reflection = super
  configure_dependency
  reflection
end

Private Instance Methods

configure_dependency() click to toggle source
# File lib/ninja_model/associations/builder/belongs_to.rb, line 15
        def configure_dependency
          if options[:dependent]
            unless options[:dependenc].in?([:destroy, :delete])
              raise ArgumentError, "The :dependent option expects either :destroy or delete (#{options[:dependent].inspect})"
            end

            method_name = "belongs_to_dependent_#{options[:dependent]}_for_#{name}"
            model.send(:class_eval, <<-eoruby, __FILE__, __LINE__ + 1)
              def #{method_name}
                association = #{name}
                association.#{options[:dependent]} if association
              end
            eoruby
          end
        end