module SteelWheel::SkipActiveModelErrorsKeys
Attributes
skip_keys[RW]
Public Class Methods
[](*skip_keys)
click to toggle source
# File lib/steel_wheel/skip_active_model_errors_keys.rb, line 30 def self.[](*skip_keys) mod = build_module mod.skip_keys = skip_keys builder = self mod.module_eval do define_singleton_method(:included) do |klass| builder.patch_errors_method_on_instance(self, klass) end end mod end
build_module()
click to toggle source
# File lib/steel_wheel/skip_active_model_errors_keys.rb, line 3 def self.build_module mod = Module.new do class << self attr_accessor :skip_keys def extended(klass) klass.include self end end end end
extended(klass)
click to toggle source
# File lib/steel_wheel/skip_active_model_errors_keys.rb, line 8 def extended(klass) klass.include self end
patch_errors_method_on_instance(mod, klass)
click to toggle source
Calls superclass method
# File lib/steel_wheel/skip_active_model_errors_keys.rb, line 15 def self.patch_errors_method_on_instance(mod, klass) class << klass alias_method :__new__, :new end klass.define_singleton_method :new do |*args| instance = __new__(*args) instance.errors.define_singleton_method :full_message do |attribute, message| return message if mod.skip_keys.include?(attribute) super(attribute, message) end instance end end