From: pavlo.vavruk@... Date: 2016-06-28T15:10:19+00:00 Subject: [ruby-core:76181] [Ruby trunk Bug#12530] Module Refinements Issue #12530 has been updated by Pavlo Vavruk. ruby -v changed from 2.3.1 to ruby 2.3.1p112 ---------------------------------------- Bug #12530: Module Refinements https://bugs.ruby-lang.org/issues/12530#change-59387 * Author: Pavlo Vavruk * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.3.1p112 * 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: