[#44036] [ruby-trunk - Feature #6242][Open] Ruby should support lists — "shugo (Shugo Maeda)" <redmine@...>

20 messages 2012/04/01

[#44084] [ruby-trunk - Bug #6246][Open] 1.9.3-p125 intermittent segfault — "jshow (Jodi Showers)" <jodi@...>

22 messages 2012/04/02

[#44156] [ruby-trunk - Feature #6265][Open] Remove 'useless' 'concatenation' syntax — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

45 messages 2012/04/06

[#44163] [ruby-trunk - Bug #6266][Open] encoding related exception with recent integrated psych — "jonforums (Jon Forums)" <redmine@...>

10 messages 2012/04/06

[#44303] [ruby-trunk - Feature #6284][Open] Add composition for procs — "pabloh (Pablo Herrero)" <pablodherrero@...>

57 messages 2012/04/12

[#44349] [ruby-trunk - Feature #6293][Open] new queue / blocking queues — "tenderlovemaking (Aaron Patterson)" <aaron@...>

10 messages 2012/04/13

[#44402] [ruby-trunk - Feature #6308][Open] Eliminate delegation from WeakRef — "headius (Charles Nutter)" <headius@...>

20 messages 2012/04/17

[#44403] [ruby-trunk - Feature #6309][Open] Add a reference queue for weak references — "headius (Charles Nutter)" <headius@...>

15 messages 2012/04/17

[#44533] [ruby-trunk - Bug #6341][Open] SIGSEGV: Thread.new { fork { GC.start } }.join — "rudolf (r stu3)" <redmine@...>

24 messages 2012/04/22

[#44630] [ruby-trunk - Feature #6361][Open] Bitwise string operations — "MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>

31 messages 2012/04/26

[#44648] [ruby-trunk - Feature #6367][Open] #same? for Enumerable — "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>

16 messages 2012/04/26

[#44704] [ruby-trunk - Feature #6373][Open] public #self — "trans (Thomas Sawyer)" <transfire@...>

61 messages 2012/04/27

[#44748] [ruby-trunk - Feature #6376][Open] Feature lookup and checking if feature is loaded — "trans (Thomas Sawyer)" <transfire@...>

13 messages 2012/04/28

[ruby-core:44514] [ruby-trunk - Bug #6335][Open] Allow Ruby hacker to extend a module or a class, without needing to know if it is a module or a class

From: "shevegen (markus heiler)" <shevegen@...>
Date: 2012-04-21 23:16:30 UTC
List: ruby-core #44514
Issue #6335 has been reported by shevegen (markus heiler).

----------------------------------------
Bug #6335: Allow Ruby hacker to extend a module or a class, without needing to know if it is a module or a class
https://bugs.ruby-lang.org/issues/6335

Author: shevegen (markus heiler)
Status: Open
Priority: Low
Assignee: 
Category: 
Target version: 
ruby -v: All Ruby


Hi,

Please correct me if I am wrong.

I think in order to extend a module or a class, you must do
something like this (first, two examples, one for module,
one for a class):

  module Foo
    def test
      puts 'This is test from module Foo.'
    end
  end

  class Bar
    def test
      puts 'This is test from class Bar.'
    end
  end

Now to modify the behaviour:

  module Foo
    def test
      puts 'This is test from module Foo, but modified.'
    end
  end

  class Bar
    def test
      puts 'This is test from class Bar, but modified.'
    end
  end

My question is, why does the Ruby hacker need to know that he 
modifies a class or a module? It feels like a (small) obstacle
for no real gain I can see.

I would propose something else like:

extend Bar
  def test
    puts 'We now modified Bar but we don't care whether it is a module or a class.'
  end
end

I am not sure about "extend" as keyword. I thought about other keywords, but I could
not find good ones. So I also have to admit that sticking to "class" and "module" as
we do right now is not a bad solution - because we don't need any new word.

Still I wanted to suggest this, so that I can understand the design decision better.

Thank you for reading.


-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next