Tried your install instructions but give me an error[1] about being unable
to resolve IconFactory , tries to look inside my package-cache of my image
(pharo 4 - 40591 -MACOSX 10).
Interesting tool, out of coincidence I am also working with icons but in my
cases its SVG icons using Bloc .
[1]
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
linearLoadPackageSpec: packageSpec gofer: gofer
MetacelloPlatform current
do: [
| references nearestReference cachedReference externalReference
mcVersion loadedVersionInfos |
"check to see if mcz file is already in cacheRepository"
cachedReference := self resolvePackageSpec: packageSpec
cachedGofer: self loaderPolicy cacheGofer.
(cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])
ifTrue: [
cachedReference name = packageSpec file
ifTrue: [
"exact match between packageSpec file and cache"
^ self scheduleFetchFor: packageSpec
cachedReference: cachedReference ] ]. "look up mcz file"
references := self retryingResolvePackageSpecReferences:
packageSpec gofer: gofer.
nearestReference := references last
asMetacelloCachingResolvedReference. "If the mcz is already in the
cacheRepository, no need to copy"
(cachedReference ~~ nil and: [ cachedReference name =
nearestReference name ])
ifTrue: [
"latest reference in repository matches cachedReference
... "
^ self scheduleFetchFor: packageSpec nearestReference:
nearestReference ]. "If the mcz is already loaded into the image, no
need to copy"
(self ignoreImage not and: [ (loadedVersionInfos := self
ancestorsFor: packageSpec) ~~ nil ])
ifTrue: [
loadedVersionInfos
do: [ :info |
info name = nearestReference name
ifTrue: [ ^ self ] ] ].
externalReference := (references select: [ :ref | ref name =
nearestReference name ]) first
asMetacelloCachingResolvedReference.
self repositoryMap at: externalReference name put:
externalReference repository.
(self
resolveDependencies: externalReference
nearest: nearestReference
into: (OrderedCollection with: nearestReference))
do: [ :reference |
| pSpec l |
mcVersion := reference version.
(l := (GoferVersionReference name: reference name)
resolveAllWith: self loaderPolicy cacheGofer) isEmpty
ifTrue: [
self cacheRepository storeVersion: mcVersion.
reference == nearestReference
ifTrue: [ pSpec := packageSpec ]
ifFalse: [
pSpec := packageSpec project
packageSpec.
pSpec name: mcVersion package name ].
self loadData
addVersion: mcVersion
versionInfo: mcVersion info
resolvedReference: reference
packageSpec: pSpec ] ].
self scheduleFetchFor: packageSpec externalReference:
externalReference ]
displaying: 'Fetching ' , packageSpec file in
MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer: in Block:
linearLoadPackageSpec: packageSpec gofer: gofer...
MetacelloPharo30Platform(MetacelloPlatform)>>do:displaying:
MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer:
MetacelloPackageSpec>>loadUsing:gofer:
[ :pkg | pkg loadUsing: self gofer: gofer ] in
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories:
in Block: [ :pkg | pkg loadUsing: self gofer: gofer ]
OrderedCollection>>do:
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories:
[ super linearLoadPackageSpecs: packageSpecs repositories: repositories ]
in MetacelloFetchingMCSpecLoader>>linearLoadPackageSpecs:repositories: in
Block: [ super linearLoadPackageSpecs: packageSpecs repos...etc...
BlockClosure>>ensure:
MetacelloLoaderPolicy>>pushLoadDirective:during:
MetacelloLoaderPolicy>>pushLinearLoadDirectivesDuring:for:
MetacelloFetchingMCSpecLoader>>linearLoadPackageSpecs:repositories:
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>load
MetacelloMCVersionSpecLoader>>load
MetacelloMCVersion>>executeLoadFromArray:
[ :dict | ^ self executeLoadFromArray: anArray ] in [
self versionSpec loader: newLoader.
MetacelloPlatform current
useStackCacheDuring: [ :dict | ^ self executeLoadFromArray: anArray ]
defaultDictionary: Dictionary new ] in [
[
self versionSpec loader: newLoader.
MetacelloPlatform current
useStackCacheDuring: [ :dict | ^ self executeLoadFromArray: anArray ]
defaultDictionary: Dictionary new ]
ensure: [ self versionSpec loader: originalLoader ] ] in
MetacelloMCVersion>>fetchRequiredFromArray: in Block: [ :dict | ^ self
executeLoadFromArray: anArray ]
[ ^ aBlock value: dict ] in
MetacelloPharo30Platform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary:
in Block: [ ^ aBlock value: dict ]
BlockClosure>>on:do:
MetacelloPharo30Platform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary:
[
self versionSpec loader: newLoader.
MetacelloPlatform current
useStackCacheDuring: [ :dict | ^ self executeLoadFromArray: anArray ]
defaultDictionary: Dictionary new ] in [
[
self versionSpec loader: newLoader.
MetacelloPlatform current
useStackCacheDuring: [ :dict | ^ self executeLoadFromArray: anArray ]
defaultDictionary: Dictionary new ]
ensure: [ self versionSpec loader: originalLoader ] ] in
MetacelloMCVersion>>fetchRequiredFromArray: in Block: [ ...
BlockClosure>>ensure:
[
[
self versionSpec loader: newLoader.
MetacelloPlatform current
useStackCacheDuring: [ :dict | ^ self executeLoadFromArray: anArray ]
defaultDictionary: Dictionary new ]
ensure: [ self versionSpec loader: originalLoader ] ] in
MetacelloMCVersion>>fetchRequiredFromArray: in Block: [ ...
MetacelloPharo30Platform(MetacelloPlatform)>>do:displaying:
MetacelloMCVersion>>fetchRequiredFromArray:
[
| fetchLoader |
fetchLoader := self fetchRequiredFromArray: (self
defaultPackageNamesToLoad: anArray).
MetacelloPlatform current do: [ fetchLoader doLoad ] displaying: 'Loading '
, displayString.
Transcript
cr;
show: '...finished ' , self versionNumber printString.
^ fetchLoader ] in MetacelloMCVersion>>doLoadRequiredFromArray: in Block: [
...
BlockClosure>>ensure:
MetacelloMCVersion>>doLoadRequiredFromArray:
MetacelloMCVersion>>load
GoferMetacelloLoad>>loadConfiguration
On Sat, Apr 4, 2015 at 2:50 PM, Peter Uhnák <[email protected]> wrote:
> Hi,
>
> since I've been making new icons lately for my project I was frustrated
> with constantly copying code and methods around... so I've made a small
> utility for it
>
> http://smalltalkhub.com/#!/~peteruhnak/IconFactory
>
>
>
>
> on top of creating the icons it can add extra stuff like GTInspector
> support.
>
> Any feedback appreciated.
>
> Peter
>