Module: Uniqueness::Model
- Defined in:
- lib/uniqueness/model.rb
Overview
:nodoc:
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
-
#uniqueness_generate ⇒ Object
Generates a new code based on given options.
- #uniqueness_validation ⇒ Object
Class Method Details
.included(base) ⇒ Object
3 4 5 6 7 |
# File 'lib/uniqueness/model.rb', line 3 def self.included(base) base.extend ClassMethods # Track all uniqueness arguments base.class_attribute :uniqueness_options end |
Instance Method Details
#uniqueness_generate ⇒ Object
Generates a new code based on given options
41 42 43 44 45 46 47 48 49 |
# File 'lib/uniqueness/model.rb', line 41 def uniqueness_generate self..each do |field, | value = send(field) unless value.present? value = Uniqueness.generate() self.send("#{field}=", value) end end end |
#uniqueness_validation ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/uniqueness/model.rb', line 51 def uniqueness_validation self.class..each do |field, | value = send(field) if value.nil? errors.add(field, 'should not be empty') else conditions = {} [:scope].each do |s| conditions[s] = send(s) end conditions[field] = value query = self.class.where(conditions) errors.add(field, 'should be unique') if query.any? end end end |