Hi -- On Wed, 21 Jan 2009, Tom Cloyd wrote: > David A. Black wrote: >> Hi -- >> >> On Wed, 21 Jan 2009, Tom Cloyd wrote: >> >>> David A. Black wrote: >>>> Hi -- >>>> >>>> On Wed, 21 Jan 2009, Tom Cloyd wrote: >>>> >>>>> I've been staring at this for a couple of hours, and I cannot crack the >>>>> nut. This SHOULD work, but I'm obviously screwing up. Just cannot see >>>>> where. I'm carefully following several examples, but...I cannot get >>>>> access to my instance variables. >>>>> >>>>> Here's a stripped down version of the code - >>>>> >>>>> # SetNet.rb >>>>> >>>>> def main >>>>> # Set up logging >>>>> run_log = Manage_log.new( 'logfile.txt' ).open >>>>> log = run_log.log >>>>> logging_now = run_log.lgg # @logging_now = false >>>> >>>> I haven't read the rest of your code but I'll bet the problem is right >>>> there. Ruby is interpreting log and logging_now as local variables. If >>>> you want to call the methods of those names, you have to do: >>>> >>>> self.log = run_log.log >>>> self.logging_now = run_log.lgg >>>> >>>> Basically, given any expression that looks like this: >>>> >>>> var = value >>>> >>>> the parser interprets var as a local variable name. So you have to add >>>> the explicit receiver to achieve the method call. >>>> >>>> >>>> David >>>> >>> David, >>> >>> Thank for your reply, but I'm puzzled by it. Doesn't the code in my >>> previous post make it clear that I'm dealing with instance variables? The >>> class instance initiates them, e.g., @log, and I'm trying to get that with >>> the run_log.log call. This is NOT an attempt to call a method. I very >>> carefully copied (I thought) the pattern I saw in several authoritative >>> sources, but it doesn't work for me, which is nuts. >>> >>> I hope this makes sense. >> >> The code I saw was: >> >>>>> run_log = Manage_log.new( 'logfile.txt' ).open >>>>> log = run_log.log >>>>> logging_now = run_log.lgg # @logging_now = false >> >> which are local variable assignments, and you'd mentioned >> attr_accessor, so I assumed you had attr_accessor somewhere in a part >> of the code you hadn't posted. It's a common error to do: >> >> class C >> attr_accessor :name >> def initialize(name) >> name = name # should be @name or self.name >> end >> end >> >> so I surmised that that was what was going on. Oh well -- can't hurt >> to see that particular potential problem anyway :-) >> >> I'm still not sure where attr_accessor fits in. >> >> >> David >> > Sorry you got a partial copy of the code I sent. It rather sounded like that > was what happened. I think I got it all (the bit I quoted was just a few lines of it), but I surmised too quickly what your problem was. I'm STILL not sure where attr_accessor fits in :-) (You're not calling it anywhere, are you?) But it sounds like you got the problem resolved. > I DO appreciate that you responded so quickly. You've certainly > been very helpful to me on a number of occasions. (And I require > that help, at times, if I'm get anything much accomplished in Ruby, > in the time I have!). Glad to be of help! David -- David A. Black / Ruby Power and Light, LLC Ruby/Rails consulting & training: http://www.rubypal.com Coming in 2009: The Well-Grounded Rubyist (http://manning.com/black2) http://www.wishsight.com => Independent, social wishlist management!