K
Koos Brandt
I have the following stored in a file Example1.rb
require 'rubygems'
require 'wx'
include Wx
require 'wx_sugar/all'
class ExampleApp < App
def on_init
frame = Frame.new( nil, :title => "Example1.rb" ).show
end
end
ExampleApp.new.main_loop()
If I run the following snippet, it works
mycontents = IO.read(File.dirname(__FILE__)+ "/testSources/Example1.rb")
eval mycontents
if I however create a class and do the eval from inside the class, I get
an error that ‘include’ is not a method of Document.
class Document
def initialize()
@content = "" # this is the actual content of the
document
end
# eval the text content
def run
eval @content
end
# load the file from disk and put it into @content
def load
@content = IO.read(File.dirname(__FILE__)+
"/testSources/Example1.rb"))
puts @content
end
end
myProg = Document.new()
myProg.load
myProg.run
If I however include in the class file the requires and includes, and
comment them out in Example1.rb, then it also works.
require 'rubygems'
require 'wx'
include Wx
require 'wx_sugar/all'
The story about eval I take note of, but I think it is clear what I want
to to here: read a file and execute it. From what I see above, this is
not entirely what eval will do for me. Eval makes the source file part
of the current executing environment.
What I actually want to do is: ruby “big piece of text†and that should
not be part of my current environment if you understand what I mean.
require 'rubygems'
require 'wx'
include Wx
require 'wx_sugar/all'
class ExampleApp < App
def on_init
frame = Frame.new( nil, :title => "Example1.rb" ).show
end
end
ExampleApp.new.main_loop()
If I run the following snippet, it works
mycontents = IO.read(File.dirname(__FILE__)+ "/testSources/Example1.rb")
eval mycontents
if I however create a class and do the eval from inside the class, I get
an error that ‘include’ is not a method of Document.
class Document
def initialize()
@content = "" # this is the actual content of the
document
end
# eval the text content
def run
eval @content
end
# load the file from disk and put it into @content
def load
@content = IO.read(File.dirname(__FILE__)+
"/testSources/Example1.rb"))
puts @content
end
end
myProg = Document.new()
myProg.load
myProg.run
If I however include in the class file the requires and includes, and
comment them out in Example1.rb, then it also works.
require 'rubygems'
require 'wx'
include Wx
require 'wx_sugar/all'
The story about eval I take note of, but I think it is clear what I want
to to here: read a file and execute it. From what I see above, this is
not entirely what eval will do for me. Eval makes the source file part
of the current executing environment.
What I actually want to do is: ruby “big piece of text†and that should
not be part of my current environment if you understand what I mean.