Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Dynamic finding of missing constants.

Reply
Thread Tools

Dynamic finding of missing constants.

 
 
Ola Bini
Guest
Posts: n/a
 
      11-25-2005
Hi.

I'm doing some slightly interesting things with Ruby, and I wanted to know
of there's a language way of interrupting the process for finding a
Constant name, like the method_missing method. The closest thing I've been
able to work out is to rescue the NameError at some toplevel, but this is
not transparent enough for me. Anyone have good any good suggestions?

Regards
Ola Bini




 
Reply With Quote
 
 
 
 
James Edward Gray II
Guest
Posts: n/a
 
      11-25-2005
On Nov 25, 2005, at 10:22 AM, Ola Bini wrote:

> Hi.
>
> I'm doing some slightly interesting things with Ruby, and I wanted
> to know of there's a language way of interrupting the process for
> finding a Constant name, like the method_missing method.


Yep, const_missing().

James Edward Gray II


 
Reply With Quote
 
 
 
 
ts
Guest
Posts: n/a
 
      11-25-2005
>>>>> "O" == Ola Bini <(E-Mail Removed)> writes:

O> I'm doing some slightly interesting things with Ruby, and I wanted to know
O> of there's a language way of interrupting the process for finding a
O> Constant name, like the method_missing method.

You have Module#const_missing

moulon% ri Module#const_missing
--------------------------------------------------- Module#const_missing
mod.const_missing(sym) => obj
------------------------------------------------------------------------
Invoked when a reference is made to an undefined constant in _mod_.
It is passed a symbol for the undefined constant, and returns a
value to be used for that constant. The following code is a (very
bad) example: if reference is made to an undefined constant, it
attempts to load a file whose name is the lowercase version of the
constant (thus class +Fred+ is assumed to be in file +fred.rb+). If
found, it returns the value of the loaded class. It therefore
implements a perverse kind of autoload facility.

def Object.const_missing(name)
@looked_for ||= {}
str_name = name.to_s
raise "Class not found: #{name}" if @looked_for[str_name]
@looked_for[str_name] = 1
file = str_name.downcase
require file
klass = const_get(name)
return klass if klass
raise "Class not found: #{name}"
end

moulon%


Guy Decoux





 
Reply With Quote
 
Ola Bini
Guest
Posts: n/a
 
      11-25-2005
At 17:28 2005-11-25, you wrote:
>On Nov 25, 2005, at 10:22 AM, Ola Bini wrote:
>
>>Hi.
>>
>>I'm doing some slightly interesting things with Ruby, and I wanted
>>to know of there's a language way of interrupting the process for
>>finding a Constant name, like the method_missing method.

>
>Yep, const_missing().
>
>James Edward Gray II


Ah, sorry. Thanks for the pointer. I thought I checked for it. But
apparently my brain is fried after to much friday-work.

/O




 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Finding styles that are not used/missing in a CSS UJ ASP .Net 1 06-14-2006 12:07 PM
Finding Server... Finding Host.... enough already!!! Leesa_Tay@softhome.net Computer Support 2 01-20-2006 10:23 AM
Finding Repeated and Missing Numbers Harsha Srinath C Programming 9 06-27-2005 10:51 AM
I'm Missing Something - Finding slave HDD c.rowlands4 Computer Support 2 12-13-2003 05:35 PM
Missing some soundtrack on Finding Nemo DVD Colin DVD Video 0 11-13-2003 05:53 PM



Advertisments