class ActiveRecordUniquenessViaDb::Builder
Attributes
always_block[RW]
attr_name[RW]
attrs_to_rescue[RW]
block[RW]
error_options[RW]
record[RW]
Public Class Methods
call(record, attr_name, always_block, error_options, &block)
click to toggle source
# File lib/active_record_uniqueness_via_db/builder.rb, line 21 def self.call(record, attr_name, always_block, error_options, &block) new(record, attr_name, always_block, error_options, &block).call end
new(record, attr_name, always_block, error_options, &block)
click to toggle source
# File lib/active_record_uniqueness_via_db/builder.rb, line 5 def initialize(record, attr_name, always_block, error_options, &block) @record = record @block = block @attr_name = attr_name @always_block = always_block @error_options = error_options @attrs_to_rescue = record. instance_variable_get("@#{ActiveRecordUniquenessViaDb::ATTRS_IVAR}") || {} @attrs_to_rescue.delete(attr_name) end
Public Instance Methods
call()
click to toggle source
# File lib/active_record_uniqueness_via_db/builder.rb, line 16 def call via_db? ? @attrs_to_rescue[attr_name] = error_options : block.call specify_attributes_to_rescue_db_error end
Private Instance Methods
specify_attributes_to_rescue_db_error()
click to toggle source
# File lib/active_record_uniqueness_via_db/builder.rb, line 27 def specify_attributes_to_rescue_db_error record.instance_variable_set( "@#{ActiveRecordUniquenessViaDb::ATTRS_IVAR}", attrs_to_rescue ) end
via_db?()
click to toggle source
# File lib/active_record_uniqueness_via_db/builder.rb, line 34 def via_db? record.changed? && !always_block end