Class: DatabaseValidations::OptionsStorage

Inherits:
Object
  • Object
show all
Defined in:
lib/database_validations/validations/options_storage.rb

Instance Method Summary collapse

Constructor Details

#initialize(klass) ⇒ OptionsStorage

Returns a new instance of OptionsStorage.



3
4
5
6
# File 'lib/database_validations/validations/options_storage.rb', line 3

def initialize(klass)
  @adapter = Adapters.factory(klass)
  @storage = {}
end

Instance Method Details

#[](key) ⇒ Object



18
19
20
# File 'lib/database_validations/validations/options_storage.rb', line 18

def [](key)
  storage[key]
end

#each_belongs_to_presence_validatorObject



26
27
28
# File 'lib/database_validations/validations/options_storage.rb', line 26

def each_belongs_to_presence_validator
  storage.values.grep(BelongsToOptions).each { |validator| yield(validator) }
end

#each_uniqueness_validatorObject



22
23
24
# File 'lib/database_validations/validations/options_storage.rb', line 22

def each_uniqueness_validator
  storage.values.grep(UniquenessOptions).each { |validator| yield(validator) }
end

#push_belongs_to(field, relation) ⇒ Object



13
14
15
16
# File 'lib/database_validations/validations/options_storage.rb', line 13

def push_belongs_to(field, relation)
  belongs_to_options = BelongsToOptions.new(field, relation, adapter)
  storage[belongs_to_options.key] = belongs_to_options
end

#push_uniqueness(field, options) ⇒ Object



8
9
10
11
# File 'lib/database_validations/validations/options_storage.rb', line 8

def push_uniqueness(field, options)
  uniqueness_options = UniquenessOptions.new(field, options, adapter)
  storage[uniqueness_options.key] = uniqueness_options
end