Module: DatabaseValidations::Helpers
- Defined in:
- lib/database_validations/helpers.rb
Class Method Summary collapse
- .each_options_storage(klass) ⇒ Object
- .each_validator(klass) ⇒ Object
- .generate_key(*columns) ⇒ Object
- .handle_unique_error!(instance, error) ⇒ Object
- .unify_columns(*columns) ⇒ Object
Class Method Details
.each_options_storage(klass) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/database_validations/helpers.rb', line 15 def (klass) while klass.respond_to?(:validates_db_uniqueness_of) storage = klass.instance_variable_get(:'@validates_db_uniqueness_opts') yield(storage) if storage klass = klass.superclass end end |
.each_validator(klass) ⇒ Object
23 24 25 26 27 |
# File 'lib/database_validations/helpers.rb', line 23 def each_validator(klass) (klass) do |storage| storage.each_validator { |validator| yield(validator) } end end |
.generate_key(*columns) ⇒ Object
33 34 35 |
# File 'lib/database_validations/helpers.rb', line 33 def generate_key(*columns) unify_columns(columns).join('__') end |
.handle_unique_error!(instance, error) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/database_validations/helpers.rb', line 5 def handle_unique_error!(instance, error) key = generate_key(Adapters.factory(instance.class).error_columns(error.)) (instance.class) do |storage| return storage[key].handle_unique_error(instance) if storage[key] end raise error end |
.unify_columns(*columns) ⇒ Object
29 30 31 |
# File 'lib/database_validations/helpers.rb', line 29 def unify_columns(*columns) columns.flatten.map(&:to_s).sort end |