From 701c267b1ab5267eab1247e2d2c0b286b7ae8fae Mon Sep 17 00:00:00 2001 From: viralpraxis Date: Thu, 12 Jun 2025 03:27:49 +0400 Subject: [PATCH] Fix minor Ruby warnings The gem produces a lot of runtime warnings when running with `-W`: ``` enumerize-2.8.1/lib/enumerize/attribute.rb:93: warning: method redefined; discarding old enumerize-2.8.1/lib/enumerize/attribute.rb:93: warning: previous definition of enumerize-2.8.1/lib/enumerize/attribute.rb:107: warning: method redefined; discarding enumerize-2.8.1/lib/enumerize/attribute.rb:107: warning: previous definition of was here enumerize-2.8.1/lib/enumerize/attribute.rb:124: warning: method redefined; discarding old enumerize-2.8.1/lib/enumerize/attribute.rb:124: warning: previous definition of was here enumerize-2.8.1/lib/enumerize/attribute.rb:128: warning: method redefined; discarding old ``` it seems reasonable to use the self-alias trick to suppress them. WDYT? --- lib/enumerize/attribute.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/enumerize/attribute.rb b/lib/enumerize/attribute.rb index b22bb7c..7e1ac8a 100644 --- a/lib/enumerize/attribute.rb +++ b/lib/enumerize/attribute.rb @@ -90,6 +90,7 @@ def respond_to_missing?(method, include_private=false) def define_methods!(mod) mod.module_eval <<-RUBY, __FILE__, __LINE__ + 1 + alias_method "#{name}", "#{name}" if method_defined?("#{name}") def #{name} if defined?(super) self.class.enumerized_attributes[:#{name}].find_value(super) @@ -104,6 +105,7 @@ def #{name} end end + alias_method "#{name}=", "#{name}=" if method_defined?("#{name}=") def #{name}=(new_value) allowed_value_or_nil = self.class.enumerized_attributes[:#{name}].find_value(new_value) allowed_value_or_nil = allowed_value_or_nil.value unless allowed_value_or_nil.nil? @@ -121,10 +123,12 @@ def #{name}=(new_value) allowed_value_or_nil end + alias_method "#{name}_text", "#{name}_text" if method_defined?("#{name}_text") def #{name}_text self.#{name} && self.#{name}.text end + alias_method "#{name}_value", "#{name}_value" if method_defined?("#{name}_value") def #{name}_value self.#{name} && self.#{name}.value end