약간 이상한 예제동작

http://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:6.5

이 부분을 진행하려고 상단에 있는 예제부터 입력시켜보고있는데….
희한하게 에러가 안나네요?….
(에러가 나야 디버거를 돌리고 검수를 하는데…T.T)

일단.. String 클래스에 시키는대로 method를 추가했습니다.

그리고 메소드를 저장하려고 하니 이런 에러가 나네요?

20130312_method_1

오호.. 이놈봐라? 해당되는 클래스가 없나보구나.. 라고 생각하고 그걸 다음과같이 처리했습니다.

20130312_method_2

물론 추천하는것중에 대략 비슷해보이는 FileDirectoryWrapper 클래스로 처리하기는 했는데….

workspace에 시킨대로 readme.txt 를 입력하고 mouse로 drag한다음

1. Print it > nil
2. Do it > 반응없음

이라는 결과가 나오네요.

Pharo 2.0에서 테스트해보고있습니다만….
뭔가….. spec이 바껴서 이런증상이 일어나는건지….
애매…합니다…-.-;

================================================

결국 해프닝으로 끝났습니다.

원문에서도 ‘readme.txt’ suffix 라고 이 부분만 font가 틀렸는데
번역문만을 보고 부주의하게 보고 말았네요.
번역본이 넘어온건 “readme.txt”의 접미사를 입력하고…라고 되어있어서
접미사를 .txt라고 생각하고 큰따옴표를 단순히 영문에 대한 강조구문이라고 생각했습니다….-.-;

정확한 해법(?)을 알려주신 한주영님 감사합니다.
Pharo 2.0에서도 전혀 이상없어요…T.T

시스템 브라우저의 squeak과 pharo의 차이

http://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:6.4

이 부분을 참고로 검수를 진행하면서 pharo를 보니 조금의 차이가 있더라구요…

object explorer about morph
object explorer about morph

squeak의 경우는 method list box가 PluggableListMorph인데
pharo의 경우는 PluggableIconListMorph 인겁니다.

아마도 별 차이는 없겠습니다만…아마도 pharo의 경우가 squeak의 Class를 기반으로 확장한게 아닌가 합니다.
(실제로 squeak의 system browser는 목록에 Icon이 같이 출력되지 않죠)

별얘기는 아닙니다만 혹시 진행하면서 헷갈리는분이 있을까봐
메모차원에서 적어놓습니다. 😀

SystemOrganization 딕셔너리에 대한 심화학습

이렇게 제목을 적으면 뭐 있을거같지만…없어요…-.-;

SystemOrganization 딕셔너리는 Smalltalk에서 Class들과 package등에 대한 구조를 담고있다고 합니다.

아 궁금하네요?

Inspect It 해봤죠.

SystemOrganization inspect
SystemOrganization inspect

 

어머? 뭔가 디게 많네요?……………………

http://trans.onionmixer.net/mediawiki/index.php?title=SqueakByExample:5.7#.EB.8B.A4.EB.A5.B8_.EC.9C.A0.EC.9A.A9.ED.95.9C_.EC.A0.84.EC.97.AD_.EB.B3.80.EC.88.98.EB.93.A4

이 부분을 보면 Magnitude가 어느 Collection에 속해있는지를 찾는법이 나옵니다.

아.. 궁금하네요 어떻게 찾는지?

 

SystemOrganization의 클래스를 찾으면 SystemOrganizer가 나오구요

여기서 method인 categoryOfElement: 를 찾으니깐 없네요? 그럼 누군가는 가지고 있겠죠… 자 그럼 부모클래스로 가보죠.

오호.. Categorizer 라는 클래스가 나오고 이 클래스의 셀렉터중에 categoryOfElement: 가 있습니다.

categoryOfElement: element
"Answer the category associated with the argument, element."

| index |
  index := self numberOfCategoryOfElement: element.
  index = 0
  ifTrue: [^nil]
  ifFalse: [^categoryArray at: index]

대략 이정도의 의미를 알 수가 있군요.

뭐.. 그럭저럭… 가지고 있는 categoryArray라는 인스턴스변수배역에서 관련된 값을 끄집어내는거같습니다.

변수를 본다고 제가 알 수 있는건 아니니.. 이쯤에서 pass욤 😀