Class: LHS::Errors

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/lhs/errors.rb

Overview

Like ActiveModel::Errors

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response = nil) ⇒ Errors

Returns a new instance of Errors.



7
8
9
10
11
12
13
# File 'lib/lhs/errors.rb', line 7

def initialize(response = nil)
  @messages = messages_from_response(response)
  @message = message_from_response(response)
  @raw = response.body if response
rescue JSON::ParserError
  add_error(messages, 'body', 'parse error')
end

Instance Attribute Details

#messageObject (readonly)

Returns the value of attribute message.



5
6
7
# File 'lib/lhs/errors.rb', line 5

def message
  @message
end

#messagesObject (readonly)

Returns the value of attribute messages.



5
6
7
# File 'lib/lhs/errors.rb', line 5

def messages
  @messages
end

#rawObject (readonly)

Returns the value of attribute raw.



5
6
7
# File 'lib/lhs/errors.rb', line 5

def raw
  @raw
end

Instance Method Details

#[](attribute) ⇒ Object



36
37
38
# File 'lib/lhs/errors.rb', line 36

def [](attribute)
  get(attribute.to_sym) || set(attribute.to_sym, [])
end

#[]=(attribute, error) ⇒ Object



40
41
42
# File 'lib/lhs/errors.rb', line 40

def []=(attribute, error)
  self[attribute] << error
end

#add(attribute, message = :invalid, _options = {}) ⇒ Object



21
22
23
24
# File 'lib/lhs/errors.rb', line 21

def add(attribute, message = :invalid, _options = {})
  self[attribute]
  messages[attribute] << message
end

#countObject



58
59
60
# File 'lib/lhs/errors.rb', line 58

def count
  to_a.size
end

#eachObject



44
45
46
47
48
# File 'lib/lhs/errors.rb', line 44

def each
  messages.each_key do |attribute|
    self[attribute].each { |error| yield attribute, error }
  end
end

#empty?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/lhs/errors.rb', line 62

def empty?
  all? { |_k, v| v && v.empty? && !v.is_a?(String) }
end

#get(key) ⇒ Object



26
27
28
# File 'lib/lhs/errors.rb', line 26

def get(key)
  messages[key]
end

#include?(attribute) ⇒ Boolean Also known as: has_key?, key?

Returns:

  • (Boolean)


15
16
17
# File 'lib/lhs/errors.rb', line 15

def include?(attribute)
  messages[attribute].present?
end

#set(key, value) ⇒ Object



30
31
32
# File 'lib/lhs/errors.rb', line 30

def set(key, value)
  messages[key] = value
end

#sizeObject



50
51
52
# File 'lib/lhs/errors.rb', line 50

def size
  values.flatten.size
end