I putting together examples I might use in teaching an elementary Ruby
seminar. for the moment, I like to code examples inside a method that
displays both the code and the result of the code's execution.
I pasted both the code and the output presented by running the code
under SciTE at http://www.pastie.org/561156.
My problem is the spurious final line of output from the show method:
"1256921" from Example 4. I like to learn why that's generated so
that I can eliminate it. I repeated the Example 4 code out of the
"show" context, and it executed as I expected, i.e. no "1256921" ws
generated.
I don't know if this totally fixes your problem, but take a look at this.
def show(stmt)
puts stmt
puts "=> "
eval(stmt).to_s # Remove the puts
puts
end
Harry
···
On Tue, Jul 28, 2009 at 12:15 PM, RichardOnRails<RichardDummyMailbox58407@uscomputergurus.com> wrote:
Hi,
I putting together examples I might use in teaching an elementary Ruby
seminar. for the moment, I like to code examples inside a method that
displays both the code and the result of the code's execution.
My problem is the spurious final line of output from the show method:
"1256921" from Example 4. I like to learn why that's generated so
that I can eliminate it. I repeated the Example 4 code out of the
"show" context, and it executed as I expected, i.e. no "1256921" ws
generated.
I putting together examples I might use in teaching an elementary Ruby
seminar. for the moment, I like to code examples inside a method that
displays both the code and the result of the code's execution.
My problem is the spurious final line of output from the show method:
"1256921" from Example 4. I like to learn why that's generated so
that I can eliminate it. I repeated the Example 4 code out of the
"show" context, and it executed as I expected, i.e. no "1256921" ws
generated.
this is because the return value of your eval() code is the last
statement executed, which is Array#each
[1,2,3].each { }.to_s
=> "123"
···
On Mon, Jul 27, 2009 at 11:15 PM, RichardOnRails<RichardDummyMailbox58407@uscomputergurus.com> wrote:
Many thanks for your perfect response. I apologize to you and this
newsgroup for being so obtuse. Now that you point out the my error,
it seems so obvious. Isn't that always the case when the blind have
their eyesight restored.
BTW, I love this technique for demoing code because it avoids the
pitfall of having the code disagree with output because of a typo.
Best wishes,
Richard
···
On Jul 28, 10:32 am, Gregory Brown <gregory.t.br...@gmail.com> wrote:
On Mon, Jul 27, 2009 at 11:15 PM, > > RichardOnRails<RichardDummyMailbox58...@uscomputergurus.com> wrote:
> Hi,
> I putting together examples I might use in teaching an elementary Ruby
> seminar. for the moment, I like to code examples inside a method that
> displays both the code and the result of the code's execution.
> I pasted both the code and the output presented by running the code
> under SciTE athttp://www.pastie.org/561156.
> My problem is the spurious final line of output from the show method:
> "1256921" from Example 4. I like to learn why that's generated so
> that I can eliminate it. I repeated the Example 4 code out of the
> "show" context, and it executed as I expected, i.e. no "1256921" ws
> generated.
this is because the return value of your eval() code is the last
statement executed, which is Array#each
I didn't know exactly which "puts" you thought to be problematic. But
after getting Gregory's response, my eyes were opened and my guess is
the puts before the eval is what you were referring to also.
Again thanks and best wishes,
Richard
···
On Jul 28, 9:32 am, RichardOnRails <RichardDummyMailbox58...@USComputerGurus.com> wrote:
On Jul 28, 2:24 am, Harry Kakueki <list.p...@gmail.com> wrote:
> > I don't know if this totally fixes your problem, but take a look at this.
> I do not use eval so I can not tell you much about it.
> And I don't have time to go through your code carefully right now.
> But, do you need #to_s ?