Sha256: 4c09dce83e637911b5eae51de657cf8f59d3b1b61ad5b2e1828cd318abd1a486
Contents?: true
Size: 983 Bytes
Versions: 70
Compression:
Stored size: 983 Bytes
Contents
module CassandraObject module BelongsTo class Builder def self.build(model, name, options) new(model, name, options).build end attr_reader :model, :name, :options def initialize(model, name, options) @model, @name, @options = model, name, options end def build define_writer define_reader reflection = CassandraObject::BelongsTo::Reflection.new(model, name, options) model.belongs_to_reflections = model.belongs_to_reflections.merge(name => reflection) end def mixin model.generated_belongs_to_methods end def define_writer name = self.name mixin.redefine_method("#{name}=") do |records| belongs_to_association(name).writer(records) end end def define_reader name = self.name mixin.redefine_method(name) do belongs_to_association(name).reader end end end end end
Version data entries
70 entries across 70 versions & 3 rubygems