From: pavlo.vavruk@... Date: 2016-06-28T15:03:55+00:00 Subject: [ruby-core:76180] [Ruby trunk Bug#12530] Module Refinements Issue #12530 has been reported by Pavlo Vavruk. ---------------------------------------- Bug #12530: Module Refinements https://bugs.ruby-lang.org/issues/12530 * Author: Pavlo Vavruk * Status: Open * Priority: Normal * Assignee: * ruby -v: 2.3.1 * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Hi guys, I noticed strange situation with module refinements. There is difference with using methods which you refine. *User.new.users* will return ["a", "b", "c", "d%"] *User.new.users_not_work* will fail with error **"undefined method `apply_user_name!' for "a":String"** module Punctuations refine String do COMMON_PUNCTUATION = %w(. , ! ?) def apply_user_name! chop! if COMMON_PUNCTUATION.include?(last) end end end class User using Punctuations def names ["a", "b.", "c!", "d%"] end def users names.each { |word| word.apply_user_name! } end def users_not_work names.each(&:apply_user_name!) end end -- https://bugs.ruby-lang.org/ Unsubscribe: