class ErrorMessagesContainer::ErrorMessages
Public Class Methods
new(args = {})
click to toggle source
available args:
base_name - name of the default section error_messages - Array or String with error message(s) for base section
# 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
Public Instance Methods
add(error, group_name = :base)
click to toggle source
# 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)
click to toggle source
# 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_names()
click to toggle source
# File lib/error_messages_container.rb, line 44 def all_group_names @group_names end
all_group_types()
click to toggle source
# File lib/error_messages_container.rb, line 52 def all_group_types @error_messages.keys end
all_messages()
click to toggle source
# File lib/error_messages_container.rb, line 36 def all_messages @error_messages.reject{|_, messages| messages.blank?} end
blank?()
click to toggle source
# File lib/error_messages_container.rb, line 56 def blank? @error_messages.values.collect(&:blank?).all? end
messages_for_group(group_name)
click to toggle source
# 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)
click to toggle source
# File lib/error_messages_container.rb, line 48 def name_for_group(group_name) @group_names[group_name.to_sym] end
present?()
click to toggle source
# File lib/error_messages_container.rb, line 60 def present? !blank? end
Private Instance Methods
define_group_reader(group_name)
click to toggle source
дефайн методов для удобного получения ошибок в группе и названия группы define methods for comfortable access to error group and group name
# File lib/error_messages_container.rb, line 68 def define_group_reader(group_name) class_eval <<-EOT, __FILE__, __LINE__ + 1 def #{group_name}_group_messages # def base_group_messages @error_messages[:#{group_name}] # @error_messages[:base] end # end def #{group_name}_group_name # def base_group_name @group_names[:#{group_name}] # @group_names[:base] end # end EOT end