Skip to content

Commit

Permalink
Merge pull request #27 from badetitou/add-spec2extension
Browse files Browse the repository at this point in the history
Add spec2extension
  • Loading branch information
badetitou authored Jun 2, 2021
2 parents 6e8414d + 2a262ea commit 8e390a5
Show file tree
Hide file tree
Showing 7 changed files with 174 additions and 24 deletions.
48 changes: 24 additions & 24 deletions src/BaselineOfFame/BaselineOfFame.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,33 @@ Class {

{ #category : #baseline }
BaselineOfFame >> baseline: spec [

<baseline>
spec
for: #common
do: [ "Dependencies"
self
hashtable: spec;
mocketry: spec;
pharoBackwardCompatibility: spec;
iterators: spec;
treeQuery: spec.
spec for: #common do: [ "Dependencies"
self
hashtable: spec;
mocketry: spec;
pharoBackwardCompatibility: spec;
iterators: spec;
treeQuery: spec.

"Packages"
spec
package: 'Fame-Core' with: [ spec requires: #('Hashtable' 'TreeQuery' 'Iterators' 'PharoBackwardCompatibility') ];
package: 'Fame-Rules';
package: 'Fame-ImportExport' with: [ spec requires: #('Fame-Core') ];
package: 'Fame-Example';
package: 'Fame-Tests' with: [ spec requires: #('Fame-Core' 'Fame-ImportExport' 'Fame-Example' 'Mocketry') ];
package: 'Fame-GT' with: [ spec requires: #('Fame-ImportExport') ];
package: 'Fame-Deprecated' with: [ spec requires: #('Fame-ImportExport') ].
"Packages"
spec
package: 'Fame-Core' with: [ spec requires: #( 'Hashtable' 'TreeQuery' 'Iterators' 'PharoBackwardCompatibility' ) ];
package: 'Fame-Rules';
package: 'Fame-ImportExport' with: [ spec requires: #( 'Fame-Core' ) ];
package: 'Fame-Example';
package: 'Fame-Tests' with: [ spec requires: #( 'Fame-Core' 'Fame-ImportExport' 'Fame-Example' 'Mocketry' ) ];
package: 'Fame-Deprecated' with: [ spec requires: #( 'Fame-ImportExport' ) ].

"Groups"
spec
group: 'Core' with: #('Fame-Core' 'Fame-ImportExport' 'Fame-Rules');
group: 'GT' with: #('Core' 'Fame-GT');
group: 'Deprecated' with: #('Core' 'Fame-Deprecated');
group: 'Tests' with: #('Fame-Tests') ]
spec for: #( #'pharo6.x' #'pharo7.x' #'pharo8.x' ) do: [ spec package: 'Fame-GT' with: [ spec requires: #( 'Fame-ImportExport' ) ] ].
spec for: #( #'pharo9.x' ) do: [ spec package: 'Fame-Spec2' ].

"Groups"
spec
group: 'Core' with: #( 'Fame-Core' 'Fame-ImportExport' 'Fame-Rules' );
group: 'Deprecated' with: #( 'Core' 'Fame-Deprecated' );
group: 'Tests' with: #( 'Fame-Tests' ) ]
]

{ #category : #dependencies }
Expand Down
30 changes: 30 additions & 0 deletions src/Fame-Spec2/FM3Class.extension.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Extension { #name : #FM3Class }

{ #category : #'*Fame-Spec2' }
FM3Class >> stFmInspectorProperties: aBuilder [

<inspectorPresentationOrder: 1 title: 'Properties'>
^ aBuilder newTable
addColumn: (SpStringTableColumn title: 'Name' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each fullName ]) beSortable;
addColumn: (SpStringTableColumn title: 'Type' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each stFmTypeString ]);
addColumn: (SpStringTableColumn title: 'Derived?' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each isDerived ]);
addColumn: (SpStringTableColumn title: 'Comment' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each comment ]);
items: self allPrimitiveProperties;
yourself
]

{ #category : #'*Fame-Spec2' }
FM3Class >> stFmInspectorRelations: aBuilder [

<inspectorPresentationOrder: 0 title: 'Relations'>
^ aBuilder newTable
addColumn: (SpStringTableColumn title: 'Name' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each fullName ]) beSortable;
addColumn: (SpStringTableColumn title: 'Type' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each stFmTypeString ]);
addColumn: (SpStringTableColumn title: 'Derived?' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each isDerived ]);
addColumn: (SpStringTableColumn title: 'Container?' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each isContainer ]);
addColumn: (SpStringTableColumn title: 'isTarget?' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each isTarget ]);
addColumn: (SpStringTableColumn title: 'isSource?' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each isSource ]);
addColumn: (SpStringTableColumn title: 'Comment' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each comment ]);
items: self allComplexProperties;
yourself
]
21 changes: 21 additions & 0 deletions src/Fame-Spec2/FM3Package.extension.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Extension { #name : #FM3Package }

{ #category : #'*Fame-Spec2' }
FM3Package >> stFmInspectorClasses: aBuilder [

<inspectorPresentationOrder: 0 title: 'Classes'>
^ aBuilder newTable
addColumn: (SpStringTableColumn title: 'Class' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each fullName ]) beSortable;
items: self classes asOrderedCollection ;
yourself
]

{ #category : #'*Fame-Spec2' }
FM3Package >> stFmInspectorExtensions: aBuilder [

<inspectorPresentationOrder: 0 title: 'Extensions'>
^ aBuilder newTable
addColumn: (SpStringTableColumn title: 'Extensions' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each fullName ]) beSortable;
items: self extensions asOrderedCollection;
yourself
]
10 changes: 10 additions & 0 deletions src/Fame-Spec2/FM3Property.extension.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Extension { #name : #FM3Property }

{ #category : #'*Fame-Spec2' }
FM3Property >> stFmTypeString [
^ String
streamContents: [ :s |
self type ifNotNil: [ :t | s nextPutAll: t name ].
self isMultivalued ifTrue: [ s nextPutAll: ' *' ].
self isDerived ifTrue: [ s nextPutAll: ' /' ] ]
]
30 changes: 30 additions & 0 deletions src/Fame-Spec2/FM3Trait.extension.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Extension { #name : #FM3Trait }

{ #category : #'*Fame-Spec2' }
FM3Trait >> stFmInspectorProperties: aBuilder [

<inspectorPresentationOrder: 1 title: 'Properties'>
^ aBuilder newTable
addColumn: (SpStringTableColumn title: 'Name' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each fullName ]) beSortable;
addColumn: (SpStringTableColumn title: 'Type' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each stFmTypeString ]);
addColumn: (SpStringTableColumn title: 'Derived?' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each isDerived ]);
addColumn: (SpStringTableColumn title: 'Comment' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each comment ]);
items: self allPrimitiveProperties;
yourself
]

{ #category : #'*Fame-Spec2' }
FM3Trait >> stFmInspectorRelations: aBuilder [

<inspectorPresentationOrder: 0 title: 'Relations'>
^ aBuilder newTable
addColumn: (SpStringTableColumn title: 'Name' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each fullName ]) beSortable;
addColumn: (SpStringTableColumn title: 'Type' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each stFmTypeString ]);
addColumn: (SpStringTableColumn title: 'Derived?' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each isDerived ]);
addColumn: (SpStringTableColumn title: 'Container?' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each isContainer ]);
addColumn: (SpStringTableColumn title: 'isTarget?' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each isTarget ]);
addColumn: (SpStringTableColumn title: 'isSource?' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each isSource ]);
addColumn: (SpStringTableColumn title: 'Comment' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each comment ]);
items: self allComplexProperties;
yourself
]
58 changes: 58 additions & 0 deletions src/Fame-Spec2/FMMetaModel.extension.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
Extension { #name : #FMMetaModel }

{ #category : #'*Fame-Spec2' }
FMMetaModel >> stFmInspectorClasses: aBuilder [

<inspectorPresentationOrder: 0 title: 'Classes'>
^ aBuilder newTable
addColumn: (SpStringTableColumn title: 'Class' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each fullName ]) beSortable;
items: self classes;
yourself
]

{ #category : #'*Fame-Spec2' }
FMMetaModel >> stFmInspectorHierarchies: aBuilder [

<inspectorPresentationOrder: 3 title: 'Hierarchies'>
^ aBuilder newTree
roots: (self classes select: [ :each | each superclass = FM3Object instance ]);
children: [ :c | c subclasses ];
display: [ :each |
each isAbstract
ifTrue: [ Text string: each fullName attribute: TextEmphasis italic ]
ifFalse: [ Text fromString: each fullName ] ];
yourself
]

{ #category : #'*Fame-Spec2' }
FMMetaModel >> stFmInspectorPackages: aBuilder [

<inspectorPresentationOrder: 2 title: 'Packages'>
^ aBuilder newTable
addColumn: (SpStringTableColumn title: 'Package' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each fullName ]) beSortable;
items: self packages;
yourself
]

{ #category : #'*Fame-Spec2' }
FMMetaModel >> stFmInspectorProperties: aBuilder [

<inspectorPresentationOrder: 5 title: 'Properties'>
^ aBuilder newTable
addColumn: (SpStringTableColumn title: 'Name' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each fullName ]) beSortable;
addColumn: (SpStringTableColumn title: 'Type' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each stFmTypeString ]);
addColumn: (SpStringTableColumn title: 'Derived?' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each isDerived ]);
addColumn: (SpStringTableColumn title: 'Comment' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each comment ]);
items: self properties;
yourself
]

{ #category : #'*Fame-Spec2' }
FMMetaModel >> stFmInspectorTraits: aBuilder [

<inspectorPresentationOrder: 1 title: 'Traits'>
^ aBuilder newTable
addColumn: (SpStringTableColumn title: 'Trait' evaluated: [ :each | StObjectPrinter asTruncatedTextFrom: each fullName ]) beSortable;
items: self traits;
yourself
]
1 change: 1 addition & 0 deletions src/Fame-Spec2/package.st
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Package { #name : #'Fame-Spec2' }

0 comments on commit 8e390a5

Please sign in to comment.