[squeak-dev] some quick and dirty sites

Chris Cunnington smalltalktelevision at gmail.com
Tue Sep 4 18:08:37 UTC 2012


On 12-09-04 10:56 AM, H. Hirzel wrote:
> Frank,
>
> It it correct to assume that you have released the code of your
> Altitude application example
>
>     Serving JSON at Altitude
>
>     http://www.lshift.net/blog/2012/07/31/serving-json-at-altitude
>
> under MIT?
>
> --Hannes
This is cool. I think it addresses my question of how do you get data 
from the model to the view. I should be looking at #withLocator:. I 
needed to change a few things to make it work for me.

http://ss3.gemstone.com/ss/Oakville/Reflect-Core-chc.1.mcz

I made some notes to help me try to puzzle things together. They are 
sort of a shed snake skin, but they may be useful.

Chris



1. This uses an older version of Altitude, as it has ALLocator. That was 
removed for ALAbstractLocator to switch from using subclassing to the 
Strategy pattern. The ALLocator is likely more comprehensible to me 
anyway. To use ALLocator regress the install of the package 
AL-Application back to AL-Application-cwp.17.mcz.

2. You don't need, with the newer Altitude, to add #initializeHandler in 
the ALApplication subclass. As a default it was moved up to ALApplication.

3. I'm guessing in ParamLocator>>resourceForPath: that this:

caseOf: {
                 ['senders-of'] ->
                     [(SendersOf reflecting: aPath second asSymbol) 
asResource].
             otherwise: [ALNotFound signal: aPath printString].

might actually be this:

caseOf: {
                 ['senders-of'] ->
                     [(SendersOf reflecting: aPath second asSymbol) 
asResource]}
             otherwise: [ALNotFound signal: aPath printString].

The period at the end of the #asResource block is stepping on the 
#caseOf:otherwise: selector. And a subsequent second $} is missing.

4. The SendersOf class definition needs an instvar #selector

5. Temporary variable not required in Workspace.

6. The destination URL is http://localhost:9090/implementors-of/today 
but in ParamLocator>>resourceForPath: we have 'senders-of' so perhaps 
the URL should be http://localhost:9090/senders-of/today.

7. ParamLocator>>resourceForPath invokes ALPath>>second, which does not 
exist. Added one:

ALPath>>second
     ^ self at: 2

8. #setName in SendersOf>>renderOn: suggests an instvar, but replace it 
with the string 'senders-of', which seems to do the trick.





More information about the Squeak-dev mailing list