Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
requiring the same file and capturing the constants
Raj Singh
5/13/2008 4:20:00 PM
file1.txt
-----------------
class Person
end
module Speak
end
The task is to printout all the constants listed in the file. In this
case there are Person and Speak.
I need to handle two cases.
1) The system loads the file for the first time. I guess in this case I
can use ObjectSpace.each_object or ObjectSpace.some_method from API to
get before and after picture. Subtract the before picture and I will get
the constants.
2) The second case is when file1.txt is already loaded into the
application. So in this case I can't do before and after thing. How can
I get constants in this case without before and after picture.
Thanks
--
Posted via
http://www.ruby-...
.
1 Answer
Joel VanderWerf
5/13/2008 4:54:00 PM
0
Raj Singh wrote:
> file1.txt
> -----------------
> class Person
> end
> module Speak
> end
>
>
> The task is to printout all the constants listed in the file. In this
> case there are Person and Speak.
>
> I need to handle two cases.
> 1) The system loads the file for the first time. I guess in this case I
> can use ObjectSpace.each_object or ObjectSpace.some_method from API to
> get before and after picture. Subtract the before picture and I will get
> the constants.
>
> 2) The second case is when file1.txt is already loaded into the
> application. So in this case I can't do before and after thing. How can
> I get constants in this case without before and after picture.
>
> Thanks
If you have control over *how* the file is loaded, you can do this,
using
http://redshift.sourceforge....
:
[~/tmp] cat file.rb
class Person
end
module Speak
end
[~/tmp] cat main.rb
require 'script'
mod = Script.load 'file.rb'
p mod.constants
[~/tmp] ruby main.rb
["Person", "Speak"]
The trick is really just reading the file, creating a module, and
calling module_eval on that with the contents of the file.
--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
requiring the same file and capturing the constants
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password