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
14
15
# File 'lib/lhs/errors.rb', line 7

def initialize(response = nil)
  @raw = response.body if response
  @messages = messages_from_response(response)
  @message = message_from_response(response)
rescue JSON::ParserError
  @messages = messages || {}
  @message = 'parse error'
  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



38
39
40
# File 'lib/lhs/errors.rb', line 38

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

#[]=(attribute, error) ⇒ Object



42
43
44
# File 'lib/lhs/errors.rb', line 42

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

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



23
24
25
26
# File 'lib/lhs/errors.rb', line 23

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

#countObject



60
61
62
# File 'lib/lhs/errors.rb', line 60

def count
  to_a.size
end

#eachObject



46
47
48
49
50
# File 'lib/lhs/errors.rb', line 46

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

#empty?Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/lhs/errors.rb', line 64

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

#get(key) ⇒ Object



28
29
30
# File 'lib/lhs/errors.rb', line 28

def get(key)
  messages[key]
end

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

Returns:

  • (Boolean)


17
18
19
# File 'lib/lhs/errors.rb', line 17

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

#set(key, value) ⇒ Object



32
33
34
# File 'lib/lhs/errors.rb', line 32

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

#sizeObject



52
53
54
# File 'lib/lhs/errors.rb', line 52

def size
  values.flatten.size
end