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