Skip to content
Merged

Dev #251

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 5 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ You can add plugins into Pyramid to extend the editor capacities or create [your
You can load a release version of Pyramid or the latest development version.
Beware that Pyramid is currently in alpha development. The API is subject to significant changes, and stability is not guaranteed. Projects created during the alpha version are not designed to be compatible with newer versions of Pyramid.

Pyramid is available with Bloc and Toplo as defaults. If you want to build UI without Toplo, you can choose to load Pyramid with only Bloc using the baseline option `load: 'BlocUI'`. Here's an example script below.
Pyramid is available with Bloc and Toplo as defaults.

To install a version of Pyramid, use one of the following scripts inside a playground.

Expand All @@ -41,38 +41,27 @@ To install a version of Pyramid, use one of the following scripts inside a playg
```st
Metacello new
baseline: 'Pyramid';
repository: 'github://OpenSmock/Pyramid:main/src';
repository: 'github://OpenSmock/Pyramid:main';
onConflictUseLoaded;
load
```

Only with Bloc (without Toplo features):

```st
Metacello new
baseline: 'Pyramid';
repository: 'github://OpenSmock/Pyramid:main/src';
onConflictUseLoaded;
load: 'BlocUI';
load
```

### Release version

We advise you to use dependencies committed at the date of the Pyramid release (Bloc, Bloc-Serialization, etc.) to ensure compatibility with a release of Pyramid.

```st
Metacello new
baseline: 'Pyramid';
repository: 'github://OpenSmock/Pyramid:alpha4';
repository: 'github://OpenSmock/Pyramid:alpha8';
onConflictUseLoaded;
load
```

### Add in your baseline

```st
spec baseline: 'Pyramid' with: [ spec repository: 'github://OpenSmock/Pyramid:main/src' ].
spec baseline: 'Pyramid' with: [ spec repository: 'github://OpenSmock/Pyramid:main' ].
```

## <img src="/assets/PyramidPinPtah.svg" width="75" height="75" align="bottom"> How to use Pyramid
Expand Down Expand Up @@ -147,8 +136,7 @@ https://github.com/OpenSmock/Pyramid/assets/49183340/0c66a3ac-7bea-48c1-b1e8-0b0
- [Toplo](https://github.com/pharo-graphics/Toplo) - a widget framework on top of Bloc.
- [STON](https://github.com/svenvc/ston) - serializer for Pharo objects to Smalltalk Object Notation format.
- [Stash](https://github.com/Nyan11/Stash) - serializer for Pharo objects to source code format.

**Pharo 12 compatibility:** On Pharo 12, [PharoBackwardCompatibility](https://github.com/jecisc/PharoBackwardCompatibility) is automatically loaded via the baseline to ensure compatibility.
- [PharoBackwardCompatibility](https://github.com/jecisc/PharoBackwardCompatibility) - Automatically ensure compatibility with old versions of Pharo.

## <img src="/assets/PyramidPinPtah.svg" width="75" height="75" align="bottom"> License

Expand Down
6 changes: 3 additions & 3 deletions src/BaselineOfPyramid/BaselineOfPyramid.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ BaselineOfPyramid >> baselineForCommon: spec [
"Pharo backward compatibility: to preserve running from previous versions of Pharo"
spec
baseline: 'PharoBackwardCompatibility'
with: [ spec repository: 'github://jecisc/PharoBackwardCompatibility:master/src' ].
with: [ spec repository: 'github://jecisc/PharoBackwardCompatibility:master' ].

"Dependencies"
self blocDependencies: spec.
Expand All @@ -45,7 +45,7 @@ BaselineOfPyramid >> blocDependencies: spec [
spec
baseline: 'BlocSerialization'
with: [
spec repository: 'github://OpenSmock/Bloc-Serialization:main/src' ]
spec repository: 'github://OpenSmock/Bloc-Serialization:main' ]
]

{ #category : #packages }
Expand Down Expand Up @@ -101,7 +101,7 @@ BaselineOfPyramid >> toploDependencies: spec [
spec
baseline: 'ToploSerialization'
with: [
spec repository: 'github://OpenSmock/Toplo-Serialization:main/src' ]
spec repository: 'github://OpenSmock/Toplo-Serialization:main' ]
]

{ #category : #packages }
Expand Down
38 changes: 38 additions & 0 deletions src/Pyramid-IDE-Tests/PyramidWorldTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,45 @@ A PyramidWorldTest is a test class for testing the behavior of PyramidWorld
Class {
#name : #PyramidWorldTest,
#superclass : #TestCase,
#classInstVars : [
'worldMenuItemCheck'
],
#category : #'Pyramid-IDE-Tests-menus'
}

{ #category : #accessing }
PyramidWorldTest class >> worldMenuItemCheck [

^ worldMenuItemCheck
]

{ #category : #accessing }
PyramidWorldTest class >> worldMenuItemCheck: anObject [

worldMenuItemCheck := anObject
]

{ #category : #'tests - menu' }
PyramidWorldTest class >> worldMenuItemTestMethod: anItem [
"This method check if the pragma mecanism to setup a menu item is working"
"Be aware to not inject behavior here because this is just a test method ant it is called when the menu is build!"

<worldMenuItem: #Pyramid>
worldMenuItemCheck := true.

anItem ifNil:[ Exception signal: 'Menu item should be not nil' ].
anItem item = (PyramidWorld menuKey) ifFalse:[ Exception signal: 'Menu item should be equals to ', PyramidWorld menuKey printString ].
]

{ #category : #running }
PyramidWorldTest >> setUp [

super setUp.

self class worldMenuItemCheck: false.
self deny: self class worldMenuItemCheck.
]

{ #category : #tests }
PyramidWorldTest >> testCleanUp [

Expand Down Expand Up @@ -59,4 +95,6 @@ PyramidWorldTest >> testWorldMenuBuilding [
menuMethods do:[ :p |
PyramidWorld perform: p with: menuBuilder.
].

self assert: self class worldMenuItemCheck.
]
2 changes: 1 addition & 1 deletion src/Pyramid-IDE/PyramidWorld.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -1057,7 +1057,7 @@ PyramidWorld class >> openAbout [

SpInformDialog new
title: ('About ', PyramidWindow aboutTitle);
icon: (self themeIcons iconNamed: #logotype512);
icon: ((self themeIcons iconNamed: #cartouche512) scaledToSize: 200 asPoint);
label: PyramidWindow aboutText;
acceptLabel: 'Close';
openDialog
Expand Down
Loading