Hi, I was wondering how I can reffer to a class outside of my class, but
it has the same name. Hopefully the following code will make it more
clear:
module Test
class File
def print_file
# I don’t want to call Test::File.open here:
File.open(‘test.rb’, “r”) { |f| puts f.read }
end
end
end
Test::File.new().print_file
On 6/22/06, Aaron P. [email protected] wrote:
end
end
Test::File.new().print_file
Prefix with ::, eg ::File.open.
Aaron P. wrote:
Hi, I was wondering how I can reffer to a class outside of my class, but
it has the same name. Hopefully the following code will make it more
clear:
module Test
class File
def print_file
# I don’t want to call Test::File.open here:
File.open(‘test.rb’, “r”) { |f| puts f.read }
::File.open('test.rb', "r") { |f| puts f.read }
The :: means look up the constant in the top level scope.
On Thu, Jun 22, 2006 at 08:01:48AM +0900, Phillip H. wrote:
Prefix with ::, eg ::File.open.
Perfect. Thank you!
–Aaron
Aaron P. wrote:
Hi, I was wondering how I can reffer to a class outside of my class, but
it has the same name. Hopefully the following code will make it more
clear:
module Test
class File
def print_file
# I don’t want to call Test::File.open here:
File.open(‘test.rb’, “r”) { |f| puts f.read }
::File.open(‘test.rb’, “r”) { |f| puts f.read }
end
end
end
Test::File.new().print_file
HTH,
Dave