module ModelErrorMessages::PrivateHelpers
Public Class Methods
errors_list(model, config)
click to toggle source
# File lib/model_error_messages/helpers.rb, line 36 def self.errors_list(model, config) messages = model.errors.full_messages if messages.count == 1 && config.single_error_in_paragraph return tag(:p, CGI.escapeHTML(messages.first)) end ul_string = messages.map do |message| tag(:li, CGI.escapeHTML(message)) end.join.html_safe tag(:ul, ul_string) end
errors_wrapper(model, config)
click to toggle source
# File lib/model_error_messages/helpers.rb, line 16 def self.errors_wrapper(model, config) class_attr = wrapper_class_attr(model, config) div_string = [ config.prepend_html, errors_list(model, config), config.append_html ].join.html_safe tag(:div, div_string, class: class_attr) end
local_config(options)
click to toggle source
# File lib/model_error_messages/helpers.rb, line 50 def self.local_config(options) config = ModelErrorMessages.configuration.clone options.each_pair do |k, v| config.send(k.to_s + '=', v) end config end
tag(name, value, attributes = {})
click to toggle source
# File lib/model_error_messages/helpers.rb, line 58 def self.tag(name, value, attributes = {}) string_attributes = attributes.inject('') do |attrs, pair| unless pair.last.nil? attrs << %( #{pair.first}="#{CGI.escapeHTML(pair.last.to_s)}") end attrs end.html_safe "<#{name}#{string_attributes}>#{value}</#{name}>".html_safe end
wrapper_class_attr(model, config)
click to toggle source
# File lib/model_error_messages/helpers.rb, line 28 def self.wrapper_class_attr(model, config) if config.classes.is_a?(Proc) config.classes.call(model) else config.classes end end