Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.ruby > #6792

Re: RubyWart: Missing Name Errors (AGAIN!)

Path csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From Robert Klemme <shortcutter@googlemail.com>
Newsgroups comp.lang.ruby
Subject Re: RubyWart: Missing Name Errors (AGAIN!)
Date Wed, 01 May 2013 11:27:49 +0200
Lines 84
Message-ID <auc5glF4m42U1@mid.individual.net> (permalink)
References <178bbf18-32c2-4ecb-8318-972617bfb332@googlegroups.com>
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding quoted-printable
X-Trace individual.net eR3EZSqvQKBCHS7VPvpCIgV4EGPFa40usBBXMIUYaVsDdJMfo=
Cancel-Lock sha1:3fk8k8J98y2wgw8KzURaOj+4FCg=
User-Agent Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130329 Thunderbird/17.0.5
In-Reply-To <178bbf18-32c2-4ecb-8318-972617bfb332@googlegroups.com>
Xref csiph.com comp.lang.ruby:6792

Show key headers only | View raw


On 05/01/2013 07:15 AM, rantingrickjohnson@gmail.com wrote:
> Same bowel movement, different cess pool!
>
> Can someone please explain the logic of having undefined symbols default to random values instead of throwing a NameError? Because this is making me F'ING NUTS PEOPLE!!!!

They don't.  Also, this is not about an undefined Symbol but about an 
unassigned member variable.

> ============================================================
>   Code Sample
> ============================================================
> class Foo
>      def foo
>          $stdout.write("@poo = #{@poo}\n")
>      end
> end
>
>
> ============================================================
>   Interactive Session
> ============================================================
> rb> f = Foo.new
> #<Foo:0x79e6680>
> rb> f.foo
> @poo = 7

That output does not come from the code above:

irb(main):001:0> class Foo
irb(main):002:1>     def foo
irb(main):003:2>         $stdout.write("@poo = #{@poo}\n")
irb(main):004:2>     end
irb(main):005:1> end
=> nil
irb(main):006:0> f = Foo.new
=> #<Foo:0x8f8bb84>
irb(main):007:0> f.foo
@poo =
=> 8

What you probably did:

irb(main):001:0> class Foo
irb(main):002:1>     def foo
irb(main):003:2>         $stdout.write("@poo = #{@poo}")
irb(main):004:2>     end
irb(main):005:1> end
=> nil
irb(main):006:0> f = Foo.new
=> #<Foo:0x9285344>
irb(main):007:0> f.foo
@poo = => 7

Whatever interactive Ruby you used does not print "=> " in front of the 
inspect of the last value.  Now you also see why IRB does print this prefix.

> ============================================================
>   Resulting Emotional State
> ============================================================
> ಠ_ಠ

It may actually be the other way round.

Kind regards

	robert

Back to comp.lang.ruby | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

RubyWart: Missing Name Errors (AGAIN!) rantingrickjohnson@gmail.com - 2013-04-30 22:15 -0700
  Re: RubyWart: Missing Name Errors (AGAIN!) Robert Klemme <shortcutter@googlemail.com> - 2013-05-01 11:27 +0200

csiph-web