[#14464] who uses Python or Ruby, and for what? — ellard2@...01.fas.harvard.edu (-11,3-3562,3-3076)

A while ago I posted a request for people to share their experiences

12 messages 2001/05/01

[#14555] Ruby as a Mac OS/X scripting language — Dave Thomas <Dave@...>

10 messages 2001/05/02

[#14557] Arggg Bitten by the block var scope feature!!! — Wayne Scott <wscott@...>

13 messages 2001/05/02

[#14598] Re: Arggg Bitten by the block var scope feature!!! — "Conrad Schneiker" <schneik@...>

# On Thu, 3 May 2001, Wayne Scott wrote:

9 messages 2001/05/03

[#14636] Yet another "About private methods" question — Eric Jacoboni <jacoboni@...2.fr>

I'm still trying to figure out the semantics of private methods in Ruby.

39 messages 2001/05/04
[#14656] Re: Yet another "About private methods" question — Dave Thomas <Dave@...> 2001/05/04

Eric Jacoboni <jaco@teaser.fr> writes:

[#14666] Ruby and Web Applications — "Chris Montgomery" <monty@...> 2001/05/04

Greetings from a newbie,

[#14772] Re: Ruby and Web Applications — Jim Freeze <jim@...> 2001/05/07

On Sat, 5 May 2001, Chris Montgomery wrote:

[#14710] Why's Ruby so slow in this case? — Stefan Matthias Aust <sma@3plus4.de>

Sure, Ruby, being interpreted, is slower than a compiled language.

12 messages 2001/05/05

[#14881] Class/Module Information — "John Kaurin" <jkaurin@...>

It is possible to modify the following code to produce

18 messages 2001/05/09

[#15034] Re: calling .inspect on array/hash causes core dump — ts <decoux@...>

>>>>> "A" == Andreas Riedl <viisi@chello.at> writes:

15 messages 2001/05/12

[#15198] Re: Q: GUI framework with direct drawing ca pabilities? — Steve Tuckner <SAT@...>

Would it be a good idea to develop a pure Ruby GUI framework built on top of

13 messages 2001/05/15

[#15234] Pluggable sorting - How would you do it? — "Hal E. Fulton" <hal9000@...>

Hello all,

16 messages 2001/05/16

[#15549] ColdFusion for Ruby — "Michael Dinowitz" <mdinowit@...2000.com>

I don't currently use Ruby. To tell the truth, I have no real reason to. I'd

12 messages 2001/05/22

[#15569] I like ruby-chan ... — Rob Armstrong <rob@...>

Ruby is more human(e) than Python. We already have too many animals :-).

15 messages 2001/05/23

[#15601] How to avoid spelling mistakes of variable names — ndrochak@... (Nick Drochak)

Since Ruby does not require a variable to be declared, do people find

13 messages 2001/05/23

[#15734] java based interpreter and regexes — "Wayne Blair" <wayne.blair@...>

I have been thinking about the java based ruby interpreter project, and I

48 messages 2001/05/25

[#15804] is it possible to dynamically coerce objects types in Ruby? — mirian@... (Mirian Crzig Lennox)

Greetings to all. I am a newcomer to Ruby and I am exploring the

13 messages 2001/05/27
[#15807] Re: is it possible to dynamically coerce objects types in Ruby? — matz@... (Yukihiro Matsumoto) 2001/05/27

Hi,

[#15863] Experimental "in" operator for collections — Stefan Matthias Aust <sma@3plus4.de>

There's one thing where I prefer Python over Ruby. Testing whether an

13 messages 2001/05/28

[#15925] Re: Block arguments vs method arguments — ts <decoux@...>

>>>>> "M" == Mike <mike@lepton.fr> writes:

43 messages 2001/05/29
[#16070] Re: Block arguments vs method arguments — "Hal E. Fulton" <hal9000@...> 2001/05/31

----- Original Message -----

[#16081] Re: Block arguments vs method arguments — Sean Russell <ser@...> 2001/05/31

On Thu, May 31, 2001 at 11:53:17AM +0900, Hal E. Fulton wrote:

[#16088] Re: Block arguments vs method arguments — Dan Moniz <dnm@...> 2001/05/31

At 11:01 PM 5/31/2001 +0900, Sean Russell wrote:

[#15954] new keyword idea: tryreturn, tryturn or done — Juha Pohjalainen <voidjump@...>

Hello everyone!

12 messages 2001/05/29

[ruby-talk:14930] Re: Class/Module Information

From: "John Kaurin" <jkaurin@...>
Date: 2001-05-10 03:10:08 UTC
List: ruby-talk #14930
> "Yukihiro Matsumoto" <matz@zetabits.com> wrote in message news:989400071.404763.833.nullmailer@ev.netlab.zetabits.com...

Thank you for the response.

To recap (mostly for me), the goal was to develop a means
to list all of the items specifically contributed by a class or
module to the system, and only those items.

I included a more comprehensive example at the end of this
message to exhibit some additional cases to my original
post.

>
> Confucius once said "accept things as they are". ;-)

I am sure it unwise to contradict Confucius. Unfortunately, I
cannot recall anyone ever saying I was wise ;-(

>
> Anyway, let me think about things.
>
> Included Modules:
>
>   current Ruby implementation does not distinguish direct included
>   modules (B, this case) and indirect included modules (A, this
>   case).

A possible addition to a future version?

>
> Constants:
>
>   you can get this information by
>
>     c = C.constants
>     C.included_modules.each{|m| c -= m.constants}
>

Classes require a little additional work (versus modules only) as you
get everything from the superclasses and any requires, see example
below. I am sure you must be aware of these, but I included them for
completeness.

> Class Variables:
>
>   same as above.  it might be useful to add optional argument to
>   restrict search for this class/module only.
>

This would cover most of my wants.

> Instance Variables:
>
>   In Ruby, instance variables belong to each instance, not a class nor
>   module, so that you can get their information from module.
>

Is this not also true for instance methods? Yet, instance_methods
returns the list I am interested in since it restricts superclass information
by default.

> matz.

# Example Code Begins Here

require "tk"

module A
  CONSTANT_A = "A"
  @@class_a = nil
  def func_a
    @var_a = nil
  end
end

module B
  include A
  CONSTANT_B = "B"
  @@class_b = nil
  def func_b
    @var_b = nil
  end
end

module C
  include B
  CONSTANT_C = "C"
  @@class_c = nil
  def func_c
    @var_c = nil
  end
end

class D
  CONSTANT_D = "D"
  @@class_d = nil
  def func_d
    @var_d = nil
  end
end

class E < D
  include C
  CONSTANT_E = "E"
  @@class_e = nil
  def func_e
    @var_e = nil
  end
end

if __FILE__ == $0

  if false

    # Put test code here.
    # Change false to true for testing.

  else

  # Module Tree

    c  = C.constants
    cv = C.class_variables

    C.included_modules.each do |m|
      c  -= m.constants
      cv -= m.class_variables
    end

    print "\n"
    print "Current Ruby Processing (Modules):\n"
    print "Name ................. "; p C.name
    print "Included Modules ..... "; p C.included_modules
    print "Constants ............ "; p C.constants
    print "Class Variables ...... "; p C.class_variables
    print "Instance Variables ... "; p C.instance_variables
    print "Instance Methods ..... "; p C.instance_methods

    print "\n"
    print "Modified Ruby Processing (Modules):\n"
    print "Name ................. "; p C.name
    print "Included Modules ..... "; p C.included_modules
    print "Constants ............ "; p c
    print "Class Variables ...... "; p cv
    print "Instance Variables ... "; p C.instance_variables
    print "Instance Methods ..... "; p C.instance_methods

    puts
    puts  'Desired Output (Modules):'
    puts  'Name ................. "C"'
    puts  'Included Modules ..... [B]'
    puts  'Constants ............ ["CONSTANT_C"]'
    puts  'Class Variables ...... ["@@class_c"]'
    puts  'Instance Variables ... ["@var_c"]'
    puts  'Instance Methods ..... ["func_c"]'

  # Class/Module Tree

    c  = E.constants
    cv = E.class_variables
    sc = E.superclass

    E.included_modules.each do |m|
      c  -= m.constants
      cv -= m.class_variables
    end

    while sc
      c  -= sc.constants
      cv -= sc.class_variables
      sc  = sc.superclass
    end

    print "\n"
    print "Current Ruby Processing (Class/Module):\n"
    print "Name ................. "; p E.name
    print "Included Modules ..... "; p E.included_modules
    print "Constants ............ "; p E.constants
    print "Class Variables ...... "; p E.class_variables
    print "Instance Variables ... "; p E.instance_variables
    print "Instance Methods ..... "; p E.instance_methods

    print "\n"
    print "Modified Ruby Processing (Class/Module):\n"
    print "Name ................. "; p E.name
    print "Included Modules ..... "; p E.included_modules
    print "Constants ............ "; p c
    print "Class Variables ...... "; p cv
    print "Instance Variables ... "; p E.instance_variables
    print "Instance Methods ..... "; p E.instance_methods

    puts
    puts  'Desired Output (Class/Module):'
    puts  'Name ................. "E"'
    puts  'Included Modules ..... [C]'
    puts  'Constants ............ ["CONSTANT_E"]'
    puts  'Class Variables ...... ["@@class_e"]'
    puts  'Instance Variables ... ["@var_e"]'
    puts  'Instance Methods ..... ["func_e"]'

  end

end

# Example Code Ends Here


In This Thread