[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

efficient access of instance variables

Tom Cloyd

1/20/2009 11:29:00 PM

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
<< tc@tomcloyd.com >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2 Answers

Tom Cloyd

1/21/2009 12:49:00 AM

0

Tom Cloyd wrote:
> 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
<< tc@tomcloyd.com >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Bertram Scharpf

1/21/2009 4:23:00 AM

0

Hi Tom,

Am Mittwoch, 21. Jan 2009, 09:49:04 +0900 schrieb Tom Cloyd:
> Tom Cloyd wrote:
>> manlog = ManageLog.new
>> manlog.open
>> log, logging_now = manlog.log, manlog.logging_now
>>
> 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


--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-...