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) ⇒ Errors

Returns a new instance of Errors.



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

def initialize(response)
  @messages = messages_from_response(response)
  @message = message_from_response(response)
  @raw = response.body
rescue JSON::ParserError # rubocop:disable Lint/HandleExceptions
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



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

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

#[]=(attribute, error) ⇒ Object



34
35
36
# File 'lib/lhs/errors.rb', line 34

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

#countObject



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

def count
  to_a.size
end

#eachObject



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

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

#empty?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/lhs/errors.rb', line 56

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

#get(key) ⇒ Object



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

def get(key)
  messages[key]
end

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

Returns:

  • (Boolean)


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

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

#set(key, value) ⇒ Object



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

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

#sizeObject



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

def size
  values.flatten.size
end