class KnowItAll::Base
Public Class Methods
assert(*args)
click to toggle source
DEPRECATED: Please use validate
instead.
# File lib/know_it_all/base.rb, line 16 def self.assert(*args) warn "[DEPRECATION] `assert` is deprecated. Please use `validate` instead." validate(*args) end
inherited(subclass)
click to toggle source
# File lib/know_it_all/base.rb, line 11 def self.inherited(subclass) subclass.validations = validations.dup end
validate(method_name, message = nil)
click to toggle source
# File lib/know_it_all/base.rb, line 21 def self.validate(method_name, message = nil) if message.nil? && defined?(I18n) class_names = StringHelper.underscore(self.to_s).split("/") message = I18n.t(["policies", *class_names, method_name].join(".")) end validations[method_name] = message end
validations()
click to toggle source
# File lib/know_it_all/base.rb, line 3 def self.validations @validations ||= {} end
validations=(validations)
click to toggle source
# File lib/know_it_all/base.rb, line 7 def self.validations=(validations) @validations = validations end
Public Instance Methods
errors()
click to toggle source
# File lib/know_it_all/base.rb, line 29 def errors self.class.validations.each .reject { |method_name, _| self.send(method_name) } .map do |_, message| if message.respond_to?(:call) message.call(self) else message end end end