I have a idea,it is “temporary require”
module Find
# my define
end
tmp_require("find"){
#do something with "Find.find" method,temporary!!
}
puts Find # my define,no "Find.find" method
Is it possible?
I have a idea,it is “temporary require”
module Find
# my define
end
tmp_require("find"){
#do something with "Find.find" method,temporary!!
}
puts Find # my define,no "Find.find" method
Is it possible?
On Thu, May 24, 2007 at 06:03:22PM +0900, Gpy Good wrote:
puts Find # my define,no “Find.find” method
[/code]
Is it possible?
Hmm, I was thinking of
temp = load(“find.rb”, true)
temp::Find.find(…)
but unfortunately load returns true, not the module object
Here’s a messy way:
require ‘find’ # the old implementation of find
#require ‘new_find’ # contains the following:
module NewStuff
module Find
def self.find
puts “hello”
end
end
end
old_find = Find rescue nil
begin
Find = NewStuff::Find
Find.find # this is the code to be executed
ensure
Find = old_find
end
Find.find(".") { |f| puts f }
?
On May 24, 1:52 am, Brian C. [email protected] wrote:
On Thu, May 24, 2007 at 06:03:22PM +0900, Gpy Good wrote:
I have a idea,it is “temporary require”
[code]
module Find
Maybe I’m missing the OP’s goal, but wouldn’t you just use a module
reference directly to get the same result? What’s the benefit of
having a “temporary” require?
Mike B.
Brian C. wrote:
puts Find # my define,no “Find.find” method
[/code]
Is it possible?Hmm, I was thinking of
temp = load(“find.rb”, true)
temp::Find.find(…)but unfortunately load returns true, not the module object
There’s a way around that. See
http://redshift.sourceforge.net/script/
No magic, just module_eval.
(I’m not sure it solves the OP’s problem, though.)
Maybe this can help to address the OP’s question:
http://raa.ruby-lang.org/gonzui/markup/unrequireable/unrequireable.rb
Best regards,
Axel
On May 24, 2007, at 3:03 AM, Gpy Good wrote:
puts Find # my define,no “Find.find” method
[/code]
Is it possible?–
Posted via http://www.ruby-forum.com/.
why not simply fork and do something?
-a
Axel E. wrote:
Maybe this can help to address the OP’s question:
http://raa.ruby-lang.org/gonzui/markup/unrequireable/unrequireable.rb
Best regards,
Axel
Thanks,It seems that my need.
And,but…
def tmp_require(name)
require 'unrequireable'
Object::unrequireable!
require name
yield
unrequire name
end
module Find
def self.info
"my define"
end
end
tmp_require("find"){
Find.find("."){}#should work,need it temporary
}
puts Find.info #my define
Find.find("."){} #should not work(because I dont define it,and not need
it now ),but it worked
It’s my goal.
On 5/24/07, Joel VanderWerf [email protected] wrote:
}
but unfortunately load returns true, not the module objectThere’s a way around that. See
No magic, just module_eval.
(I’m not sure it solves the OP’s problem, though.)
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs