Class: Locomotive::Steam::Models::Concerns::Validation::Errors

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Enumerable
Defined in:
lib/locomotive/steam/models/concerns/validation.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base) ⇒ Errors

Returns a new instance of Errors.



29
30
31
32
# File 'lib/locomotive/steam/models/concerns/validation.rb', line 29

def initialize(base)
  @base     = base
  @messages = HashWithIndifferentAccess.new({})
end

Instance Attribute Details

#messagesObject

Returns the value of attribute messages.



23
24
25
# File 'lib/locomotive/steam/models/concerns/validation.rb', line 23

def messages
  @messages
end

Instance Method Details

#add(attribute, message, options = {}) ⇒ Object



39
40
41
# File 'lib/locomotive/steam/models/concerns/validation.rb', line 39

def add(attribute, message, options = {})
  (@messages[attribute] ||= []) << generate_message(message, options)
end

#add_on_blank(attribute) ⇒ Object



34
35
36
37
# File 'lib/locomotive/steam/models/concerns/validation.rb', line 34

def add_on_blank(attribute)
  value = @base.send(attribute)
  add(attribute, :blank) if value.blank?
end

#generate_message(message, options = {}) ⇒ Object



43
44
45
46
47
48
# File 'lib/locomotive/steam/models/concerns/validation.rb', line 43

def generate_message(message, options = {})
  I18n.t(message, {
    scope:    'errors.messages',
    default:  message
  }.merge(options))
end