Class: ErrorMessagesContainer::ErrorMessages

Inherits:
Object
  • Object
show all
Defined in:
lib/error_messages_container.rb

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ ErrorMessages

available args:

base_name - name of the default section
error_messages - Array or String with error message(s) for base section


13
14
15
16
17
18
# File 'lib/error_messages_container.rb', line 13

def initialize(args = {})
  @error_messages = {base: []}
  @group_names = {base: args[:base_name] || 'base_section'}
  define_group_reader(:base)
  self.add(args[:error_messages]) if args.has_key?(:error_messages)
end

Instance Method Details

#add(error, group_name = :base) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/error_messages_container.rb', line 20

def add(error, group_name = :base)
  if error.is_a?(String)
    @error_messages[group_name.to_sym] << error
  elsif error.is_a?(Array)
    @error_messages[group_name.to_sym] += error
  end
end

#add_group(group_name, group_description) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/error_messages_container.rb', line 28

def add_group(group_name, group_description)
  if @error_messages[group_name.to_sym].blank? && @group_names[group_name.to_sym].blank?
    @error_messages[group_name.to_sym] = []
    @group_names[group_name.to_sym] = group_description
    define_group_reader(group_name)
  end
end

#all_group_namesObject



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

def all_group_names
  @group_names
end

#all_group_typesObject



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

def all_group_types
  @error_messages.keys
end

#all_messagesObject



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

def all_messages
  @error_messages.reject{|_, messages| messages.blank?}
end

#blank?Boolean

Returns:

  • (Boolean)


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

def blank?
  @error_messages.values.collect(&:blank?).all?
end

#messages_for_group(group_name) ⇒ Object



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

def messages_for_group(group_name)
  @error_messages[group_name.to_sym]
end

#name_for_group(group_name) ⇒ Object



48
49
50
# File 'lib/error_messages_container.rb', line 48

def name_for_group(group_name)
  @group_names[group_name.to_sym]
end

#present?Boolean

Returns:

  • (Boolean)


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

def present?
  !blank?
end