module ScopedId::Concern::ClassMethods

Public Instance Methods

scoped_id(attr_name, options = {}) click to toggle source
# File lib/scoped_id/concern.rb, line 16
def scoped_id(attr_name, options = {})
  scope = options[:scope]
  if scope.nil?
    raise ArgumentError.new(":scope is not defined. It is a mandatory option of scoped_id.")
  end

  scoped_ids_definitions << ScopedIdDefinition.new(attr_name, scope)

  attr_readonly attr_name

  validates_uniqueness_of attr_name, scope: scope, allow_nil: true
end
scoped_ids_definitions() click to toggle source
# File lib/scoped_id/concern.rb, line 29
def scoped_ids_definitions
  @scoped_ids_definitions ||= []
end