Class: LHS::Errors::Base

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

Direct Known Subclasses

Nested

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response = nil, record = nil) ⇒ Base

Returns a new instance of Base.



8
9
10
11
12
13
14
15
16
17
# File 'lib/lhs/errors/base.rb', line 8

def initialize(response = nil, record = nil)
  @raw = response.body if response
  @record = record
  @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.



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

def message
  @message
end

#messagesObject (readonly)

Returns the value of attribute messages.



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

def messages
  @messages
end

#rawObject (readonly)

Returns the value of attribute raw.



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

def raw
  @raw
end

#recordObject (readonly)

Returns the value of attribute record.



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

def record
  @record
end

Instance Method Details

#[](attribute) ⇒ Object



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

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

#[]=(attribute, error) ⇒ Object



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

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

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



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

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

#clearObject



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

def clear
  @raw = nil
  @messages.clear
end

#countObject



67
68
69
# File 'lib/lhs/errors/base.rb', line 67

def count
  to_a.size
end

#eachObject



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

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

#empty?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/lhs/errors/base.rb', line 71

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

#get(key) ⇒ Object



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

def get(key)
  messages[key]
end

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

Returns:

  • (Boolean)


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

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

#set(key, value) ⇒ Object



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

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

#sizeObject



54
55
56
# File 'lib/lhs/errors/base.rb', line 54

def size
  values.flatten.size
end