From 27b2af7a81d9dfa7a5a0e33461344d4caa5c04e4 Mon Sep 17 00:00:00 2001 From: OffrayLuna Date: Wed, 17 Feb 2016 11:48:56 +0000 Subject: [PATCH] First minimalist configuration of the project to ease installation for upcoming data week and beyond :-) --- .../ConfigurationOfGrafoscopio.class.st | 155 ++++++++++++++++++ src/ConfigurationOfGrafoscopio/package.st | 1 + 2 files changed, 156 insertions(+) create mode 100644 src/ConfigurationOfGrafoscopio/ConfigurationOfGrafoscopio.class.st create mode 100644 src/ConfigurationOfGrafoscopio/package.st diff --git a/src/ConfigurationOfGrafoscopio/ConfigurationOfGrafoscopio.class.st b/src/ConfigurationOfGrafoscopio/ConfigurationOfGrafoscopio.class.st new file mode 100644 index 0000000..840b40e --- /dev/null +++ b/src/ConfigurationOfGrafoscopio/ConfigurationOfGrafoscopio.class.st @@ -0,0 +1,155 @@ +Class { + #name : #ConfigurationOfGrafoscopio, + #superclass : #Object, + #instVars : [ + 'project' + ], + #classVars : [ + 'LastVersionLoad' + ], + #category : #ConfigurationOfGrafoscopio +} + +{ #category : #'development support' } +ConfigurationOfGrafoscopio class >> DevelopmentSupport [ + +"See the methods in the 'development support' category on the class-side of MetacelloBaseConfiguration. Decide what development support methods you would like to use and copy them the the class-side of your configuration." + + +] + +{ #category : #private } +ConfigurationOfGrafoscopio class >> baseConfigurationClassIfAbsent: aBlock [ + + ^Smalltalk + at: #MetacelloBaseConfiguration + ifAbsent: [ + self ensureMetacelloBaseConfiguration. + Smalltalk at: #MetacelloBaseConfiguration ifAbsent: aBlock ]. + +] + +{ #category : #private } +ConfigurationOfGrafoscopio class >> ensureMetacello [ + + (self baseConfigurationClassIfAbsent: []) ensureMetacello +] + +{ #category : #private } +ConfigurationOfGrafoscopio class >> ensureMetacelloBaseConfiguration [ + + Smalltalk + at: #MetacelloBaseConfiguration + ifAbsent: [ + | repository version | + repository := MCHttpRepository location: 'http://seaside.gemstone.com/ss/metacello' user: '' password: ''. + repository + versionReaderForFileNamed: 'Metacello-Base-DaleHenrichs.2.mcz' + do: [ :reader | + version := reader version. + version load. + version workingCopy repositoryGroup addRepository: repository ] ] +] + +{ #category : #'metacello tool support' } +ConfigurationOfGrafoscopio class >> isMetacelloConfig [ + "Answer true and the Metacello tools will operate on you" + + ^true +] + +{ #category : #loading } +ConfigurationOfGrafoscopio class >> load [ + "Load the #stable version defined for this platform. The #stable version is the version that is recommended to be used on this platform." + + "self load" + + + ^(self project version: #stable) load +] + +{ #category : #loading } +ConfigurationOfGrafoscopio class >> loadBleedingEdge [ + "Load the latest versions of the mcz files defined for this project. It is not likely that the #bleedingEdge has been tested." + + "self loadBleedingEdge" + + + ^(self project version: #bleedingEdge) load +] + +{ #category : #loading } +ConfigurationOfGrafoscopio class >> loadDevelopment [ + "Load the #development version defined for this platform. The #development version will change over time and is not expected to be stable." + + "self loadDevelopment" + + + ^(self project version: #development) load +] + +{ #category : #accessing } +ConfigurationOfGrafoscopio class >> project [ + + ^self new project +] + +{ #category : #'development support' } +ConfigurationOfGrafoscopio class >> validate [ + "Check the configuration for Errors, Critical Warnings, and Warnings (see class comment for MetacelloMCVersionValidator for more information). + Errors identify specification issues that will result in unexpected behaviour when you load the configuration. + Critical Warnings identify specification issues that may result in unexpected behavior when you load the configuration. + Warnings identify specification issues that are technically correct, but are worth take a look at." + + "self validate" + + + self ensureMetacello. + ^ ((Smalltalk at: #MetacelloToolBox) validateConfiguration: self debug: #() recurse: false) explore +] + +{ #category : #baselines } +ConfigurationOfGrafoscopio >> baseline01: spec [ + + + spec for: #'common' do: [ + spec blessing: #'baseline'. + spec repository: 'http://smalltalkhub.com/mc/Offray/Grafoscopio/main/'. + spec project: 'Ston' with: [ + spec + className: #ConfigurationOfSton; + versionString: #'stable'; + repository: 'http://ss3.gemstone.com/ss/STON' ]. + spec package: #Grafoscopio. + spec group: 'Core' with: #(#Grafoscopio ). ]. + +] + +{ #category : #accessing } +ConfigurationOfGrafoscopio >> customProjectAttributes [ + "Edit to return a collection of any custom attributes e.g. for conditional loading: Array with: #'Condition1' with: #'Condition2. + For more information see: http://code.google.com/p/metacello/wiki/CustomProjectAttrributes" + + ^ #(). +] + +{ #category : #'symbolic versions' } +ConfigurationOfGrafoscopio >> development: spec [ + + + spec for: #'common' version: '0.1-baseline'. + +] + +{ #category : #accessing } +ConfigurationOfGrafoscopio >> project [ + + ^ project ifNil: [ + "Bootstrap Metacello if it is not already loaded" + (self class baseConfigurationClassIfAbsent: []) ensureMetacello. + "Construct Metacello project" + project := MetacelloMCProject new projectAttributes: self customProjectAttributes. + (Smalltalk at: #MetacelloVersionConstructor) on: self project: project. + project loadType: #linear. "change to #atomic if desired" + project ] +] diff --git a/src/ConfigurationOfGrafoscopio/package.st b/src/ConfigurationOfGrafoscopio/package.st new file mode 100644 index 0000000..6f7fa7c --- /dev/null +++ b/src/ConfigurationOfGrafoscopio/package.st @@ -0,0 +1 @@ +Package { #name : #ConfigurationOfGrafoscopio }