Module: MaglevRecord::Validations::ClassMethods

Defined in:
lib/maglev_record/validations.rb

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(symbol, *args) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/maglev_record/validations.rb', line 18

def method_missing(symbol, *args)
  super unless symbol.to_s.include? "valid"

  @validates_options ||= Hash.new
  @validates_options[symbol] ||= []
  @validates_options[symbol] << args
end

Instance Method Details

#create_validationsObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/maglev_record/validations.rb', line 26

def create_validations
  return if not self.maglev_persistable? or @validates_options.nil?

  self.include MaglevSupport.constantize("ActiveModel::Validations")
  @validates_options.each do |symbol, args_list|
    args_list.each do |args|
      self.send(symbol, *args)
    end
  end
  @validates_options = nil
end

#resetObject



38
39
40
41
42
43
44
45
46
# File 'lib/maglev_record/validations.rb', line 38

def reset
  _validates_options = @validates_options
  @validates_options = nil
  reset_proc = super
  return Proc.new {
    reset_proc.call
    @validates_options = _validates_options
  }
end