class SampleModels::Sampler
Attributes
before_save[RW]
defaults[R]
named_samples[RW]
polymorphic_default_classes[RW]
Public Class Methods
new(model_class)
click to toggle source
# File lib/sample_models/sampler.rb, line 6 def initialize(model_class) @model_class = model_class @attribute_sequences = Hash.new { |h,k| h[k] = {} } @defaults = HashWithIndifferentAccess.new @forced_unique = [] @forced_email_format = [] @named_samples = HashWithIndifferentAccess.new @polymorphic_default_classes = HashWithIndifferentAccess.new end
Public Instance Methods
attribute_sequence(pass, column)
click to toggle source
# File lib/sample_models/sampler.rb, line 16 def attribute_sequence(pass, column) @attribute_sequences[pass][column.name] ||= begin AttributeSequence.build( pass, model, column, @forced_unique.include?(column.name), @forced_email_format.include?(column.name) ) end end
configure(block)
click to toggle source
# File lib/sample_models/sampler.rb, line 25 def configure(block) recipient = ConfigureRecipient.new(self) block.call(recipient) end
first_pass_attribute_sequence(column)
click to toggle source
# File lib/sample_models/sampler.rb, line 30 def first_pass_attribute_sequence(column) attribute_sequence(:first, column) end
force_email_format(attr)
click to toggle source
# File lib/sample_models/sampler.rb, line 34 def force_email_format(attr) @forced_email_format << attr.to_s end
force_unique(attr)
click to toggle source
# File lib/sample_models/sampler.rb, line 38 def force_unique(attr) @forced_unique << attr.to_s end
model()
click to toggle source
# File lib/sample_models/sampler.rb, line 46 def model SampleModels.models[@model_class] end
sample(*args)
click to toggle source
# File lib/sample_models/sampler.rb, line 50 def sample(*args) Creation.new(self, *args).run end
second_pass_attribute_sequence(column)
click to toggle source
# File lib/sample_models/sampler.rb, line 54 def second_pass_attribute_sequence(column) attribute_sequence(:second, column) end