Module: Sequel::Plugins::Composition::InstanceMethods

Defined in:
lib/sequel/plugins/composition.rb

Instance Method Summary collapse

Instance Method Details

#before_saveObject

For each composition, set the columns in the model class based on the composition object.



160
161
162
163
# File 'lib/sequel/plugins/composition.rb', line 160

def before_save
  @compositions.keys.each{|n| instance_eval(&model.compositions[n][:decomposer])} if @compositions
  super
end

#compositionsObject

Cache of composition objects for this class.



166
167
168
# File 'lib/sequel/plugins/composition.rb', line 166

def compositions
  @compositions ||= {}
end

#freezeObject

Freeze compositions hash when freezing model instance.



171
172
173
174
# File 'lib/sequel/plugins/composition.rb', line 171

def freeze
  compositions.freeze
  super
end

#set_values(hash) ⇒ Object

Clear the cached compositions when setting values.



153
154
155
156
# File 'lib/sequel/plugins/composition.rb', line 153

def set_values(hash)
  @compositions.clear if @compositions
  super
end