[#6363] Re: rescue clause affecting IO loop behavior — ts <decoux@...>

>>>>> "D" == David Alan Black <dblack@candle.superlink.net> writes:

17 messages 2000/11/14
[#6367] Re: rescue clause affecting IO loop behavior — David Alan Black <dblack@...> 2000/11/14

Hello again --

[#6582] best way to interleaf arrays? — David Alan Black <dblack@...>

Hello --

15 messages 2000/11/26

[#6646] RE: Array Intersect (&) question — Aleksi Niemel<aleksi.niemela@...>

Ross asked something about widely known and largely ignored language (on

23 messages 2000/11/29
[#6652] RE: Array Intersect (&) question — rpmohn@... (Ross Mohn) 2000/11/29

aleksi.niemela@cinnober.com (Aleksi Niemel) wrote in

[#6723] Re: Array Intersect (&) question — Mathieu Bouchard <matju@...> 2000/12/01

> >Use a hash. Here's code to do both and more. It assumes that

[#6656] printing/accessing arrays and hashes — raja@... (Raja S.)

I'm coming to Ruby with a Python & Common Lisp background.

24 messages 2000/11/30

[ruby-talk:6332] Re: dup vs clone

From: Aleksi Niemel<aleksi.niemela@...>
Date: 2000-11-14 01:16:35 UTC
List: ruby-talk #6332
> Eval seems reasonable. If you _know_ that the name is a class, you
> could also use Object.const_get(string)
> 
>    Object.const_get("Array")		# => Array

Eval is probably good. But the simple way doesn't always work. The problem
is the classes which are inside a name space:

  module Foo
    class Bar
    end
  end

  def find(klass,name)
    begin
      k = klass.const_get(name)
      puts "Found #{name} from #{klass}, so it is #{k}"
    rescue NameError
      puts "Did not find #{name} from #{klass}"
    end
  end

  [Object, Module, Module.const_get("Foo")].each do |klass| 
    ["Foo", "Bar"].each do |name| 
      find(klass, name)
    end
    puts
  end

Outputting:

  Found Foo from Object, so it is Foo
  Did not find Bar from Object
  
  Found Foo from Module, so it is Foo
  Did not find Bar from Module
  
  Found Foo from Foo, so it is Foo
  Found Bar from Foo, so it is Foo::Bar

	- Aleksi

In This Thread

Prev Next