Class: Shoulda::Matchers::ActiveRecord::Uniqueness::Model
- Inherits:
-
Object
- Object
- Shoulda::Matchers::ActiveRecord::Uniqueness::Model
- Defined in:
- lib/shoulda/matchers/active_record/uniqueness/model.rb
Class Method Summary collapse
Instance Method Summary collapse
- #already_exists? ⇒ Boolean
-
#initialize(name, namespace) ⇒ Model
constructor
A new instance of Model.
- #next ⇒ Object
- #symlink_to(parent) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(name, namespace) ⇒ Model
Returns a new instance of Model.
18 19 20 21 |
# File 'lib/shoulda/matchers/active_record/uniqueness/model.rb', line 18 def initialize(name, namespace) @name = name @namespace = namespace end |
Class Method Details
.next_unique_copy_of(model_name, namespace) ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/shoulda/matchers/active_record/uniqueness/model.rb', line 8 def self.next_unique_copy_of(model_name, namespace) model = new(model_name, namespace) while model.already_exists? model = model.next end model end |
Instance Method Details
#already_exists? ⇒ Boolean
23 24 25 |
# File 'lib/shoulda/matchers/active_record/uniqueness/model.rb', line 23 def already_exists? namespace.has?(name) end |
#next ⇒ Object
27 28 29 |
# File 'lib/shoulda/matchers/active_record/uniqueness/model.rb', line 27 def next Model.new(name.next, namespace) end |
#symlink_to(parent) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/shoulda/matchers/active_record/uniqueness/model.rb', line 31 def symlink_to(parent) table_name = parent.table_name new_class = Class.new(parent) do define_singleton_method :table_name do table_name end define_singleton_method :base_class do self end end namespace.set(name, new_class) end |
#to_s ⇒ Object
47 48 49 |
# File 'lib/shoulda/matchers/active_record/uniqueness/model.rb', line 47 def to_s [namespace, name].join('::') end |