class NinjaModel::Associations::Builder::Association
Attributes
model[R]
name[R]
options[R]
reflection[R]
Public Class Methods
build(model, name, options)
click to toggle source
# File lib/ninja_model/associations/builder/association.rb, line 13 def self.build(model, name, options) new(model, name, options).build end
new(model, name, options)
click to toggle source
# File lib/ninja_model/associations/builder/association.rb, line 17 def initialize(model, name, options) @model, @name, @options = model, name, options end
Public Instance Methods
build()
click to toggle source
# File lib/ninja_model/associations/builder/association.rb, line 21 def build validate_options reflection = model.create_reflection(self.class.macro, name, options, model) define_accessors reflection end
Private Instance Methods
define_accessors()
click to toggle source
# File lib/ninja_model/associations/builder/association.rb, line 34 def define_accessors define_readers define_writers end
define_readers()
click to toggle source
# File lib/ninja_model/associations/builder/association.rb, line 39 def define_readers name = self.name model.redefine_method(name) do |*params| association(name).reader(*params) end end
define_writers()
click to toggle source
# File lib/ninja_model/associations/builder/association.rb, line 47 def define_writers name = self.name model.redefine_method("#{name}=") do |value| association(name).writer(value) end end
validate_options()
click to toggle source
# File lib/ninja_model/associations/builder/association.rb, line 30 def validate_options options.assert_valid_keys(self.class.valid_options) end