efficient access of instance variables

T

Tom Cloyd

I'm having my first extended day working with classes - trying to
convert some functioning methods in my current project to classes.

I'm looking for a way to call a class instance and get back a couple of
its instance variables with an efficiency equivalent to this method call:

@log, @logging_now = manage_log( 'open' ) # the method returns both vars

So, I seem to have write all this -

manlog = ManageLog.new
manlog.open
log, logging_now = manlog.log, manlog.logging_now

Before I resign myself, I want to ask if I'm missing something here. Is
there a way I can do any of this more tersely?

Thanks for any help,

Tom

--

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< (e-mail address removed) >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
T

Tom Cloyd

Tom said:
I'm having my first extended day working with classes - trying to
convert some functioning methods in my current project to classes.

I'm looking for a way to call a class instance and get back a couple
of its instance variables with an efficiency equivalent to this method
call:

@log, @logging_now = manage_log( 'open' ) # the method returns both vars

So, I seem to have write all this -

manlog = ManageLog.new
manlog.open
log, logging_now = manlog.log, manlog.logging_now

Before I resign myself, I want to ask if I'm missing something here.
Is there a way I can do any of this more tersely?

Thanks for any help,

Tom
Scratch this call for help. I getting it figure out. ~t.

--

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< (e-mail address removed) >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
B

Bertram Scharpf

Hi Tom,

Am Mittwoch, 21. Jan 2009, 09:49:04 +0900 schrieb Tom Cloyd:
Scratch this call for help. I getting it figure out. ~t.

Anyway I'm egged to advertise my private philosophy.

class ManageLog
class <<self
private :new
def open
o = new
o.open
yield o
end
end
def logged
yield $stdout, $stderr
end
end

ManageLog.open |m| do
m.logged do |log,log_now|
...
end
end

Or maybe

class ManageLog
def log_my_pipes stdout, stderr
$stdout.reopen stdout
$stderr.reopen stderr
yield
ensure
$stdout.reopen STDOUT
$stderr.reopen STDERR
end
end

This is, of course, untested and just a suggestion.

Bertram
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,152
Members
46,697
Latest member
AugustNabo

Latest Threads

Top