class RandomizedField::Callback
Implements the before_create
ActiveRecord callback used to set the value of the randomized field.
Attributes
field_name[R]
generator[R]
Public Class Methods
new(field_name, **generator_opts, &block)
click to toggle source
# File lib/randomized_field/callback.rb, line 8 def initialize(field_name, **generator_opts, &block) @field_name = field_name @generator = Generator.new(generator_opts, &block) end
Public Instance Methods
before_create(record)
click to toggle source
# File lib/randomized_field/callback.rb, line 13 def before_create(record) record[field_name] ||= new_field_value(record) end
Private Instance Methods
new_field_value(record)
click to toggle source
# File lib/randomized_field/callback.rb, line 19 def new_field_value(record) old_record = true until old_record.nil? new_value = generator.generate old_record = record.class.find_by(field_name => new_value) end new_value end