Class: Lite::Errors::Messages

Inherits:
Object
  • Object
show all
Defined in:
lib/lite/errors/messages.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMessages

Returns a new instance of Messages.



9
10
11
# File 'lib/lite/errors/messages.rb', line 9

def initialize
  @errors = {}
end

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



7
8
9
# File 'lib/lite/errors/messages.rb', line 7

def errors
  @errors
end

Instance Method Details

#[](key) ⇒ Object Also known as: messages_for



13
14
15
16
17
# File 'lib/lite/errors/messages.rb', line 13

def [](key)
  return [] unless key?(key)

  @errors[key]
end

#[]=(key, value) ⇒ Object Also known as: add



21
22
23
24
25
# File 'lib/lite/errors/messages.rb', line 21

def []=(key, value)
  @errors[key] ||= []
  @errors[key] << value
  @errors[key].uniq!
end

#added?(key, val) ⇒ Boolean Also known as: of_kind?

Returns:

  • (Boolean)


29
30
31
32
33
# File 'lib/lite/errors/messages.rb', line 29

def added?(key, val)
  return false unless key?(key)

  @errors[key].include?(val)
end

#clearObject



37
38
39
# File 'lib/lite/errors/messages.rb', line 37

def clear
  @errors.clear
end

#delete(key) ⇒ Object



41
42
43
# File 'lib/lite/errors/messages.rb', line 41

def delete(key)
  @errors.delete(key)
end

#eachObject

:nocov:



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

def each
  @errors.each_key do |key|
    @errors[key].each { |val| yield(key, val) }
  end
end

#empty?Boolean Also known as: blank?

:nocov:

Returns:

  • (Boolean)


53
54
55
# File 'lib/lite/errors/messages.rb', line 53

def empty?
  @errors.empty?
end

#full_message(key, value) ⇒ Object



59
60
61
# File 'lib/lite/errors/messages.rb', line 59

def full_message(key, value)
  "#{key} #{value}"
end

#full_messagesObject Also known as: to_a



63
64
65
66
67
# File 'lib/lite/errors/messages.rb', line 63

def full_messages
  @errors.each_with_object([]) do |(key, arr), memo|
    arr.each { |val| memo << full_message(key, val) }
  end
end

#full_messages_for(key) ⇒ Object



71
72
73
74
75
# File 'lib/lite/errors/messages.rb', line 71

def full_messages_for(key)
  return [] unless key?(key)

  @errors[key].map { |val| full_message(key, val) }
end

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

Returns:

  • (Boolean)


77
78
79
# File 'lib/lite/errors/messages.rb', line 77

def key?(key)
  @errors.key?(key)
end

#keysObject Also known as: attribute_names



84
85
86
# File 'lib/lite/errors/messages.rb', line 84

def keys
  @errors.keys
end

#merge!(hash) ⇒ Object



90
91
92
93
94
95
96
# File 'lib/lite/errors/messages.rb', line 90

def merge!(hash)
  @errors.merge!(hash) do |_, arr1, arr2|
    arr3 = arr1 + arr2
    arr3.uniq!
    arr3
  end
end

#present?Boolean

Returns:

  • (Boolean)


98
99
100
# File 'lib/lite/errors/messages.rb', line 98

def present?
  !blank?
end

#sizeObject Also known as: count



102
103
104
# File 'lib/lite/errors/messages.rb', line 102

def size
  @errors.size
end

#slice!(*keys) ⇒ Object



108
109
110
111
# File 'lib/lite/errors/messages.rb', line 108

def slice!(*keys)
  keys.each { |key| delete(key) }
  @errors
end

#to_hash(full_messages = false) ⇒ Object Also known as: messages, group_by_attribute, as_json

rubocop:disable Style/OptionalBooleanParameter



114
115
116
117
118
119
120
# File 'lib/lite/errors/messages.rb', line 114

def to_hash(full_messages = false)
  return @errors unless full_messages

  @errors.each_with_object({}) do |(key, arr), memo|
    memo[key] = arr.map { |val| full_message(key, val) }
  end
end

#valuesObject



127
128
129
# File 'lib/lite/errors/messages.rb', line 127

def values
  @errors.values
end