class SampleModels::AttributeSequence::RequiredBelongsToSource
Public Class Methods
new(assoc)
click to toggle source
Calls superclass method
SampleModels::AttributeSequence::AbstractSource::new
# File lib/sample_models/attribute_sequence.rb, line 95 def initialize(assoc) super() @assoc = assoc @previous_instances = {} end
Public Instance Methods
existing_instance_not_previously_returned()
click to toggle source
# File lib/sample_models/attribute_sequence.rb, line 101 def existing_instance_not_previously_returned previous_ids = @previous_instances.values.map(&:id) instance = nil if previous_ids.empty? @assoc.klass.last else @assoc.klass.last( :conditions => ["id not in (?)", previous_ids] ) end end
set_instance()
click to toggle source
# File lib/sample_models/attribute_sequence.rb, line 113 def set_instance instance = existing_instance_not_previously_returned instance ||= @assoc.klass.sample @previous_instances[@number] = instance end
value()
click to toggle source
# File lib/sample_models/attribute_sequence.rb, line 119 def value if @previous_instances[@number] value = @previous_instances[@number] begin value.reload value.id rescue ActiveRecord::RecordNotFound set_instance @previous_instances[@number].id end else set_instance @previous_instances[@number].id end end