Module: SimpleMaster::Master::Validatable

Extended by:
ActiveSupport::Concern
Included in:
SimpleMaster::Master
Defined in:
lib/simple_master/master/validatable.rb

Instance Method Summary collapse

Instance Method Details

#_run_validate_callbacksObject



57
58
59
60
61
62
63
# File 'lib/simple_master/master/validatable.rb', line 57

def _run_validate_callbacks
  self.class._validate_callbacks.each do |validation_proc|
    instance_exec(&validation_proc)
  rescue => e
    errors.add(:base, "Error occurred while validation: #{e}")
  end
end

#errorsObject



65
66
67
68
# File 'lib/simple_master/master/validatable.rb', line 65

def errors
  Thread.current[:errors] ||= {}
  Thread.current[:errors][self] ||= Errors.new
end

#read_attribute_for_validation(attribute) ⇒ Object



76
77
78
# File 'lib/simple_master/master/validatable.rb', line 76

def read_attribute_for_validation(attribute)
  send(attribute)
end

#run_proc_or_call(symbol_or_proc) ⇒ Object



70
71
72
73
74
# File 'lib/simple_master/master/validatable.rb', line 70

def run_proc_or_call(symbol_or_proc)
  return send(symbol_or_proc) if symbol_or_proc.is_a? Symbol
  return instance_eval(&symbol_or_proc) if symbol_or_proc.arity == 1
  instance_exec(&symbol_or_proc)
end

#valid?Boolean

: () -> bool

Returns:

  • (Boolean)


46
47
48
49
50
# File 'lib/simple_master/master/validatable.rb', line 46

def valid?
  _run_validate_callbacks
  # Refer directly instead of errors.empty? to avoid creating many errors objects
  !Thread.current[:errors]&.[](self).present?
end

#validateObject



53
54
55
# File 'lib/simple_master/master/validatable.rb', line 53

def validate
  _run_validate_callbacks
end