Module: Stratify::MongoidExtension::NaturalKey::ClassMethods

Defined in:
lib/stratify/mongoid_extension.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#natural_key_fieldsObject (readonly)

Returns the value of attribute natural_key_fields.



5
6
7
# File 'lib/stratify/mongoid_extension.rb', line 5

def natural_key_fields
  @natural_key_fields
end

Instance Method Details

#natural_key(*fields) ⇒ Object



7
8
9
10
# File 'lib/stratify/mongoid_extension.rb', line 7

def natural_key(*fields)
  @natural_key_fields = fields.dup
  validates_uniqueness_of_natural_key
end

#validates_uniqueness_of_natural_keyObject



12
13
14
15
16
17
18
19
# File 'lib/stratify/mongoid_extension.rb', line 12

def validates_uniqueness_of_natural_key
  first, *rest = *natural_key_fields
  if rest.empty?
    validates_uniqueness_of first
  else
    validates_uniqueness_of first, :scope => rest
  end
end