On Thu, Jun 19, 2008 at 12:39:01PM -0400, John Wells wrote:
> I've read the NKS cover to cover, but think I might be misunderstanding scope.
>
> For example, in the lastest (git pull; rake) version of shoes, this code:
> #############################
> class MyApp < Shoes
> url "/", :index
> url "/next", :next
>
> def index
> @x = edit_line
> para(link("next", :click=>"/next"))
> end
>
> def next
> begin
> alert (@x.text)
> rescue Exception=>e
> puts e
> end
> end
> end
>
> Shoes::app
> #############################
>
> Outputs "undefined method `text' for nil:NilClass" on the console. So
> @x is nil. However, if I read NKS correctly, especially page 36, @x
> should still exist and the text should be accessible.
Since @x is created at the "/" URL, you can't access it from the
"/next" URL. It's actually not a matter of scoping, it's that there
are two objects here.
"/" => MyApp.new.index
"/next" => MyApp.new.next
Perhaps it would be better to have one object. I'll have to think
about this a bit further.
_why