Question 1.  Should that be #asDictionary?
Question 2.  If not, what's a Dictonary?
Question 3.  I see you are using self-encapsulation,
             with a getter 'self robot'
             and a setter 'self robot: something'.
             Of course that means that outside code
             can freely smash your "robot" property,
             unless #robot: checks that its argument
             makes sense.  Does it?
Question 4.  What kind of thing *is* "robot".
             Have you checked that 'Robot directionLooking: ...'
             returns an instance of Robot?  If you accidentally
             omitted '^' it might return the Robot class itself.
Question 5.  Are you sure that 'self robot' returns
             what you think it does?  Have you checked?
Question 6.  Does Robot have an #asDictionary method?
             Does Robot have an #asDictonary method?
Question 7.  Why is "aCollection" not used in this method?
Question 8.  Why are you using 'yourself'?
Question 9.  Why does the caller want a dictionary instead of
             a Robot?  What should be in that dictionary?

There are more questions but those will do to be going on with.
If your #robot: method began like
    robot: aRobot
      (aRobot isKindOf: Robot)
        ifFalse: [aRobot error: 'not an instance of Robot'].
you would have caught what I suspect is your problem.
Check question 4.



On Sun, 31 Mar 2019 at 07:19, Roelof Wobben <r.wob...@home.nl> wrote:

> Hello,
>
> Im busy with a new challenge from exercism.
> Where I have to keep track of a robot , where it facing and on that
> coordinate the robot is.
>
> so I made this function what the test wanted
>
> createDirection: aString position: aCollection
>      self robot: (Robot directionLooking: aString) yourself.
>      ^ self robot asDictonary
>
> I can see that on the first part a new robot is made with the right data.
> but the test wants the data back as a Dictonary
> that is why I made the self robot asDictonary line
>
> but to my suprise the compiler wants it be a class method where I expect
> it to be a instance method.
>
> Can someone explain to my why this is ?
>
> Roelof
>
>
>

Reply via email to