From: ll.wg.bin@... Date: 2015-12-27T12:32:06+00:00 Subject: [ruby-core:72522] [Ruby trunk - Bug #11899] [Open] `Object#public_methods` returns unordered array in Ruby 2.3.0 Issue #11899 has been reported by Aleksandr Fomin. ---------------------------------------- Bug #11899: `Object#public_methods` returns unordered array in Ruby 2.3.0 https://bugs.ruby-lang.org/issues/11899 * Author: Aleksandr Fomin * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Previous ruby versions returned methods with same order. But this order was changed in Ruby 2.3.0. Ruby 1.9.3: ``` 1.9.3-p551 :001 > class B 1.9.3-p551 :002?> def self.init 1.9.3-p551 :003?> define_method(:f) {} 1.9.3-p551 :004?> define_method(:b) {} 1.9.3-p551 :005?> define_method(:c) {} 1.9.3-p551 :006?> end 1.9.3-p551 :007?> def a;end 1.9.3-p551 :008?> end => nil 1.9.3-p551 :009 > B.init => # 1.9.3-p551 :010 > B.new.public_methods(false) => [:a, :f, :b, :c] ``` Ruby 2.2.0: ``` 2.2.0 :007 > class B 2.2.0 :008?> def self.init 2.2.0 :009?> define_method(:f) {} 2.2.0 :010?> define_method(:b) {} 2.2.0 :011?> define_method(:c) {} 2.2.0 :012?> end 2.2.0 :013?> def a;end 2.2.0 :014?> end => :a 2.2.0 :015 > B.init => :c 2.2.0 :016 > B.new.public_methods(false) => [:a, :f, :b, :c] ``` Ruby 2.3.0: ``` 2.3.0 :001 > class B 2.3.0 :002?> def self.init 2.3.0 :003?> define_method(:f) {} 2.3.0 :004?> define_method(:b) {} 2.3.0 :005?> define_method(:c) {} 2.3.0 :006?> end 2.3.0 :007?> def a;end 2.3.0 :008?> end => :a 2.3.0 :009 > B.init => :c 2.3.0 :010 > B.new.public_methods(false) => [:b, :f, :a, :c] ``` -- https://bugs.ruby-lang.org/ Unsubscribe: