[squeak-dev] The Trunk: Tools-yo.406.mcz

Chris Muller asqueaker at gmail.com
Sat May 12 14:43:58 UTC 2012


Good one, thanks..

On Fri, May 11, 2012 at 1:53 PM,  <commits at source.squeak.org> wrote:
> Yoshiki Ohshima uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-yo.406.mcz
>
> ==================== Summary ====================
>
> Name: Tools-yo.406
> Author: yo
> Time: 11 May 2012, 11:52:55.047 am
> UUID: 73d5f657-0395-4324-96ad-3fbfbffb43ae
> Ancestors: Tools-yo.405, Tools-bf.405
>
> Allows to accept method definitions in the DependencyBrowser.  Works with class-side methods as well.
>
> =============== Diff against Tools-bf.405 ===============
>
> Item was added:
> + ----- Method: DependencyBrowser>>contents:notifying: (in category 'contents') -----
> + contents: input notifying: aController
> +       "The retrieved information has changed and its source must now be
> +        updated. The information can be a variety of things, depending on
> +        the list selections (such as templates for class or message definition,
> +        methods) or the user menu commands (such as definition, comment,
> +        hierarchy).  Answer the result of updating the source."
> +
> +       | aString aText theClass theMethodName |
> +       self changed: #annotation.
> +       aString := input asString.
> +       aText := input asText.
> +
> +       theClass := self selectedClassOrMetaClass.
> +       theMethodName := self selectedMessageName.
> +       (theClass notNil and: [theMethodName notNil]) ifTrue: [
> +               ^ self okayToAccept
> +                               ifFalse:
> +                                       [false]
> +                               ifTrue:
> +                                       [self defineMessageFrom: aText notifying: aController]].
> +       self error: 'unacceptable accept'
> + !
>
> Item was added:
> + ----- Method: DependencyBrowser>>defineMessageFrom:notifying: (in category 'contents') -----
> + defineMessageFrom: aString notifying: aController
> +       "Compile the expressions in aString. Notify aController if a syntax error occurs. Install the compiled method in the selected class classified under  the currently selected message category name. Answer the selector obtained if compilation succeeds, nil otherwise."
> +       | selectedMessageName selector category oldMessageList |
> +       selectedMessageName := self selectedMessageName.
> +       oldMessageList := self messageList.
> +       contents := nil.
> +       selector := (self selectedClassOrMetaClass newParser parseSelector: aString).
> +       selector := self selectedClassOrMetaClass
> +                               compile: aString
> +                               classified: (category := self selectedMessageCategoryName)
> +                               notifying: aController.
> +       selector == nil ifTrue: [^ false].
> +       contents := aString copy.
> +       ^ true
> + !
>
> Item was changed:
>  ----- Method: DependencyBrowser>>selectedClass (in category 'class list') -----
>  selectedClass
>        "Answer the class that is currently selected. Answer nil if no selection
>        exists."
>
> +       | name envt nonMetaClass nonMetaName |
> -       | name envt |
>        (name := self selectedClassName) ifNil: [^ nil].
>        (envt := self selectedEnvironment) ifNil: [^ nil].
> +       nonMetaName := (name endsWith: ' class') ifTrue: [name allButLast: 6] ifFalse: [name].
> +       nonMetaClass := envt at: nonMetaName asSymbol ifAbsent: [^ nil].
> +       ^ nonMetaName = name ifTrue: [nonMetaClass] ifFalse: [nonMetaClass class].
> + !
> -       ^ envt at: name ifAbsent: [nil]!
>
>


More information about the Squeak-dev mailing list