From 87dbbe7ee7fbc2a9f79a60e73818e1263fd35f17 Mon Sep 17 00:00:00 2001 From: Sven Van Caekenberghe Date: Sat, 28 Apr 2012 21:17:08 +0200 Subject: [PATCH] checking in latest versions from SS3 Name: Ston-Core-SvenVanCaekenberghe.29 Author: SvenVanCaekenberghe Time: 27 April 2012, 8:48:21 pm UUID: da09472b-ff70-46e4-9896-a661d0c3e7a0 Ancestors: Ston-Core-SvenVanCaekenberghe.28 Name: Ston-Tests-SvenVanCaekenberghe.28 Author: SvenVanCaekenberghe Time: 27 April 2012, 2:25:30 pm UUID: f1afbac1-b9b5-4042-99b6-eceb9444dd8f Ancestors: Ston-Tests-SvenVanCaekenberghe.27 --- README.md | 4 + license.txt | 10 ++ repository/.filetree | 1 + repository/Ston-Core.package/.filetree | 4 + .../Boolean.extension/instance/stonOn..st | 3 + .../instance/stonProcessSubObjects..st | 2 + .../Boolean.extension/properties.json | 2 + .../ByteArray.extension/class/fromSton..st | 3 + .../ByteArray.extension/instance/stonOn..st | 5 + .../instance/stonProcessSubObjects..st | 2 + .../ByteArray.extension/properties.json | 2 + .../Character.extension/class/fromSton..st | 3 + .../Character.extension/instance/stonOn..st | 3 + .../Character.extension/properties.json | 2 + .../Class.extension/instance/stonName.st | 5 + .../Class.extension/properties.json | 2 + .../Collection.extension/class/fromSton..st | 7 ++ .../Collection.extension/instance/stonOn..st | 4 + .../Collection.extension/properties.json | 2 + .../Date.extension/class/fromSton..st | 3 + .../Date.extension/instance/stonOn..st | 5 + .../instance/stonProcessSubObjects..st | 2 + .../Date.extension/properties.json | 2 + .../DateAndTime.extension/class/fromSton..st | 3 + .../DateAndTime.extension/instance/stonOn..st | 7 ++ .../instance/stonProcessSubObjects..st | 2 + .../DateAndTime.extension/properties.json | 2 + .../Dictionary.extension/class/fromSton..st | 10 ++ .../Dictionary.extension/instance/stonOn..st | 12 +++ .../Dictionary.extension/properties.json | 2 + .../Integer.extension/instance/stonOn..st | 3 + .../Integer.extension/properties.json | 2 + .../Number.extension/instance/stonOn..st | 3 + .../instance/stonProcessSubObjects..st | 2 + .../Number.extension/properties.json | 2 + .../Object.extension/class/fromSton..st | 8 ++ .../Object.extension/instance/fromSton..st | 11 +++ .../instance/isStonReference.st | 3 + .../Object.extension/instance/stonOn..st | 12 +++ .../instance/stonProcessSubObjects..st | 8 ++ .../Object.extension/properties.json | 2 + .../Point.extension/instance/fromSton..st | 5 + .../Point.extension/instance/stonOn..st | 4 + .../Point.extension/properties.json | 2 + .../Ston-Core.package/STON.class/README.md | 93 +++++++++++++++++++ .../STON.class/class/fromStream..st | 3 + .../STON.class/class/fromString..st | 3 + .../STON.class/class/listClass.st | 3 + .../STON.class/class/mapClass.st | 3 + .../STON.class/class/put.onStream..st | 3 + .../STON.class/class/put.onStreamPretty..st | 5 + .../STON.class/class/reader.st | 3 + .../STON.class/class/toString..st | 4 + .../STON.class/class/toStringPretty..st | 4 + .../STON.class/class/writer.st | 3 + .../STON.class/properties.json | 16 ++++ .../STONListWriter.class/README.md | 1 + .../STONListWriter.class/instance/add..st | 4 + .../STONListWriter.class/properties.json | 16 ++++ .../STONMapWriter.class/README.md | 1 + .../STONMapWriter.class/instance/at.put..st | 4 + .../STONMapWriter.class/properties.json | 16 ++++ .../STONReader.class/README.md | 1 + .../STONReader.class/class/on..st | 5 + .../STONReader.class/instance/close.st | 5 + .../instance/consumeWhitespace.st | 6 ++ .../STONReader.class/instance/error..st | 3 + .../STONReader.class/instance/expect..st | 5 + .../STONReader.class/instance/initialize.st | 6 ++ .../STONReader.class/instance/isClassChar..st | 3 + .../instance/isClassStartChar..st | 3 + .../instance/isSimpleSymbolChar..st | 3 + .../STONReader.class/instance/lookupClass..st | 12 +++ .../STONReader.class/instance/match..st | 12 +++ .../STONReader.class/instance/newReference.st | 7 ++ .../STONReader.class/instance/next.st | 8 ++ .../STONReader.class/instance/on..st | 3 + .../instance/parseCharacter.st | 20 ++++ .../instance/parseCharacterHex.st | 6 ++ .../instance/parseCharacterHexDigit.st | 12 +++ .../STONReader.class/instance/parseClass.st | 9 ++ .../STONReader.class/instance/parseList.st | 8 ++ .../STONReader.class/instance/parseListDo..st | 14 +++ .../instance/parseListSingleton.st | 7 ++ .../STONReader.class/instance/parseMap.st | 8 ++ .../STONReader.class/instance/parseMapDo..st | 16 ++++ .../STONReader.class/instance/parseNumber.st | 15 +++ .../instance/parseNumberExponent.st | 10 ++ .../instance/parseNumberFraction.st | 9 ++ .../instance/parseNumberInteger.st | 7 ++ .../STONReader.class/instance/parseObject.st | 8 ++ .../instance/parseReference.st | 10 ++ .../STONReader.class/instance/parseString.st | 3 + .../instance/parseStringInternal.st | 13 +++ .../STONReader.class/instance/parseSymbol.st | 14 +++ .../STONReader.class/instance/parseValue.st | 25 +++++ .../instance/processSubObjectsOf..st | 9 ++ .../instance/resolveReference..st | 3 + .../instance/resolveReferenceIndex..st | 3 + .../instance/setReference.to..st | 3 + .../instance/storeReference..st | 6 ++ .../instance/stringStreamContents..st | 7 ++ .../STONReader.class/properties.json | 20 ++++ .../STONReaderError.class/README.md | 1 + .../STONReaderError.class/properties.json | 16 ++++ .../STONReference.class/README.md | 1 + .../STONReference.class/class/index..st | 5 + .../STONReference.class/instance/^equals.st | 3 + .../STONReference.class/instance/hash.st | 3 + .../STONReference.class/instance/index..st | 3 + .../STONReference.class/instance/index.st | 3 + .../instance/isStonReference.st | 3 + .../STONReference.class/properties.json | 16 ++++ .../STONShortListWriter.class/README.md | 1 + .../instance/add..st | 4 + .../STONShortListWriter.class/properties.json | 16 ++++ .../STONStreamWriter.class/README.md | 2 + .../STONStreamWriter.class/class/on..st | 5 + .../instance/initialize.st | 4 + .../STONStreamWriter.class/instance/on..st | 3 + .../STONStreamWriter.class/properties.json | 17 ++++ .../STONWriter.class/README.md | 18 ++++ .../STONWriter.class/class/initialize.st | 4 + .../class/initializeSTONCharacters.st | 12 +++ .../initializeSTONSimpleSymbolCharacters.st | 11 +++ .../class/isSimpleSymbolChar..st | 3 + .../STONWriter.class/class/on..st | 5 + .../STONWriter.class/instance/close.st | 5 + .../instance/encodeCharacter..st | 11 +++ .../instance/encodeKey.value..st | 7 ++ .../STONWriter.class/instance/encodeList..st | 10 ++ .../STONWriter.class/instance/encodeMap..st | 14 +++ .../instance/encodeString..st | 6 ++ .../STONWriter.class/instance/indentedDo..st | 5 + .../STONWriter.class/instance/initialize.st | 8 ++ .../instance/isSimpleSymbol..st | 6 ++ .../STONWriter.class/instance/jsonMode..st | 3 + .../instance/listElementSeparator.st | 4 + .../instance/mapElementSeparator.st | 4 + .../instance/newlineIndent.st | 5 + .../STONWriter.class/instance/nextPut..st | 3 + .../STONWriter.class/instance/on..st | 3 + .../STONWriter.class/instance/prettyPrint..st | 3 + .../instance/prettyPrintSpace.st | 3 + .../instance/referencePolicy..st | 4 + .../STONWriter.class/instance/reset.st | 3 + .../instance/shortListElementSeparator.st | 4 + .../STONWriter.class/instance/with.do..st | 14 +++ .../instance/writeBoolean..st | 3 + .../STONWriter.class/instance/writeFloat..st | 3 + .../instance/writeInteger..st | 3 + .../STONWriter.class/instance/writeList..st | 4 + .../STONWriter.class/instance/writeMap..st | 4 + .../STONWriter.class/instance/writeNull.st | 5 + .../instance/writeObject.do..st | 8 ++ .../instance/writeObject.listSingleton..st | 9 ++ .../instance/writeObject.streamList..st | 10 ++ .../instance/writeObject.streamMap..st | 10 ++ .../instance/writeObject.streamShortList..st | 10 ++ .../instance/writeReference..st | 5 + .../STONWriter.class/instance/writeString..st | 3 + .../STONWriter.class/instance/writeSymbol..st | 12 +++ .../STONWriter.class/properties.json | 22 +++++ .../STONWriterError.class/README.md | 1 + .../STONWriterError.class/properties.json | 16 ++++ .../class/fromSton..st | 5 + .../instance/stonOn..st | 5 + .../properties.json | 2 + .../String.extension/instance/stonOn..st | 3 + .../instance/stonProcessSubObjects..st | 2 + .../String.extension/properties.json | 2 + .../Symbol.extension/instance/stonOn..st | 3 + .../Symbol.extension/properties.json | 2 + .../Time.extension/class/fromSton..st | 3 + .../Time.extension/instance/stonOn..st | 7 ++ .../instance/stonProcessSubObjects..st | 2 + .../Time.extension/properties.json | 2 + .../TimeStamp.extension/class/fromSton..st | 5 + .../TimeStamp.extension/properties.json | 2 + .../instance/stonOn..st | 3 + .../instance/stonProcessSubObjects..st | 2 + .../UndefinedObject.extension/properties.json | 2 + .../monticello.meta/categories.st | 1 + .../monticello.meta/initializers.st | 0 .../Ston-Core.package/monticello.meta/package | 1 + .../Ston-Core.package/monticello.meta/version | 1 + repository/Ston-Core.package/properties.json | 2 + repository/Ston-Tests.package/.filetree | 4 + .../STONReaderTests.class/README.md | 1 + .../instance/materialize..st | 3 + .../instance/testBoolean.st | 4 + .../instance/testByteArray.st | 3 + .../instance/testCharacter.st | 3 + .../instance/testDate.st | 5 + .../instance/testDateAndTime.st | 5 + .../instance/testError.st | 9 ++ .../instance/testFloat.st | 10 ++ .../instance/testInteger.st | 7 ++ .../instance/testJsonString.st | 12 +++ .../instance/testList.st | 5 + .../STONReaderTests.class/instance/testMap.st | 5 + .../instance/testNewSymbol.st | 11 +++ .../STONReaderTests.class/instance/testNil.st | 3 + .../instance/testNull.st | 3 + .../instance/testObject.st | 4 + .../instance/testOrderedCollection.st | 6 ++ .../instance/testPoint.st | 3 + .../instance/testReferenceCycle.st | 8 ++ .../instance/testReferenceSharing.st | 8 ++ .../instance/testString.st | 10 ++ .../instance/testSymbol.st | 5 + .../instance/testTime.st | 7 ++ .../instance/testTimeStamp.st | 5 + .../instance/testUser.st | 7 ++ .../instance/testUser2.st | 7 ++ .../STONReaderTests.class/properties.json | 16 ++++ .../STONTestDomainObject.class/README.md | 12 +++ .../STONTestDomainObject.class/class/dummy.st | 11 +++ .../class/stonName.st | 3 + .../instance/^equals.st | 18 ++++ .../instance/boolean..st | 3 + .../instance/boolean.st | 3 + .../instance/bytes..st | 3 + .../instance/bytes.st | 3 + .../instance/color..st | 3 + .../instance/color.st | 3 + .../instance/created..st | 3 + .../instance/created.st | 3 + .../instance/description..st | 3 + .../instance/description.st | 3 + .../instance/float..st | 3 + .../instance/float.st | 3 + .../instance/hash.st | 12 +++ .../instance/initialize.st | 3 + .../instance/integer..st | 3 + .../instance/integer.st | 3 + .../instance/modified..st | 3 + .../instance/modified.st | 3 + .../instance/tags..st | 3 + .../instance/tags.st | 3 + .../properties.json | 24 +++++ .../STONTestUser.class/README.md | 6 ++ .../STONTestUser.class/class/dummy.st | 13 +++ .../STONTestUser.class/class/stonName.st | 3 + .../STONTestUser.class/instance/^equals.st | 9 ++ .../STONTestUser.class/instance/enabled..st | 3 + .../STONTestUser.class/instance/enabled.st | 3 + .../STONTestUser.class/instance/hash.st | 5 + .../STONTestUser.class/instance/initialize.st | 4 + .../STONTestUser.class/instance/password..st | 3 + .../STONTestUser.class/instance/password.st | 3 + .../STONTestUser.class/instance/username..st | 3 + .../STONTestUser.class/instance/username.st | 3 + .../STONTestUser.class/properties.json | 18 ++++ .../STONTestUser2.class/README.md | 1 + .../STONTestUser2.class/class/stonName.st | 3 + .../STONTestUser2.class/instance/fromSton..st | 7 ++ .../STONTestUser2.class/instance/stonOn..st | 7 ++ .../STONTestUser2.class/properties.json | 16 ++++ .../STONTests.class/README.md | 1 + .../instance/testFromString.st | 5 + .../instance/testPrettyPrinting.st | 7 ++ .../STONTests.class/instance/testToString.st | 5 + .../STONTests.class/properties.json | 16 ++++ .../README.md | 1 + .../instance/serializeAndMaterialize..st | 10 ++ .../properties.json | 16 ++++ .../STONWriteReadTests.class/README.md | 1 + .../instance/serializeAndMaterialize..st | 8 ++ .../serializeAndMaterializeJsonMode..st | 10 ++ .../instance/testAssociations.st | 7 ++ .../instance/testCharacters.st | 5 + .../instance/testCollections.st | 14 +++ .../instance/testDatesAndTimes.st | 5 + .../instance/testDomainObject.st | 13 +++ .../instance/testEmpty.st | 7 ++ .../instance/testFloats.st | 5 + .../instance/testJsonMode.st | 15 +++ .../instance/testPrimitives.st | 5 + .../instance/testSmallIntegers.st | 5 + .../instance/testStrings.st | 5 + .../instance/testSymbols.st | 6 ++ .../instance/testUser.st | 13 +++ .../instance/testUser2.st | 13 +++ .../STONWriteReadTests.class/properties.json | 16 ++++ .../STONWriterTests.class/README.md | 1 + .../instance/serialize..st | 4 + .../instance/testBoolean.st | 4 + .../instance/testByteArray.st | 3 + .../instance/testDate.st | 5 + .../instance/testDateAndTime.st | 5 + .../instance/testDoubleQuotedString.st | 15 +++ .../instance/testFloat.st | 10 ++ .../instance/testInteger.st | 7 ++ .../instance/testIsSimpleSymbol.st | 13 +++ .../instance/testList.st | 5 + .../STONWriterTests.class/instance/testMap.st | 15 +++ .../STONWriterTests.class/instance/testNil.st | 3 + .../instance/testNull.st | 9 ++ .../instance/testOrderedCollection.st | 6 ++ .../instance/testPoint.st | 3 + .../instance/testReferenceCycle.st | 6 ++ .../instance/testReferenceSharing.st | 6 ++ .../instance/testReferenceSharingError.st | 13 +++ .../instance/testReferenceSharingIgnore.st | 11 +++ .../testRestrictedClassesInJsonMode.st | 10 ++ .../instance/testString.st | 10 ++ .../instance/testSymbol.st | 11 +++ .../instance/testSymbolAsString.st | 10 ++ .../instance/testTime.st | 7 ++ .../instance/testTimeStamp.st | 5 + .../instance/testUser.st | 7 ++ .../instance/testUser2.st | 7 ++ .../STONWriterTests.class/properties.json | 16 ++++ .../monticello.meta/categories.st | 1 + .../monticello.meta/initializers.st | 0 .../monticello.meta/package | 1 + .../monticello.meta/version | 1 + repository/Ston-Tests.package/properties.json | 2 + 319 files changed, 2056 insertions(+) create mode 100644 README.md create mode 100644 license.txt create mode 100644 repository/.filetree create mode 100644 repository/Ston-Core.package/.filetree create mode 100644 repository/Ston-Core.package/Boolean.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/Boolean.extension/instance/stonProcessSubObjects..st create mode 100644 repository/Ston-Core.package/Boolean.extension/properties.json create mode 100644 repository/Ston-Core.package/ByteArray.extension/class/fromSton..st create mode 100644 repository/Ston-Core.package/ByteArray.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/ByteArray.extension/instance/stonProcessSubObjects..st create mode 100644 repository/Ston-Core.package/ByteArray.extension/properties.json create mode 100644 repository/Ston-Core.package/Character.extension/class/fromSton..st create mode 100644 repository/Ston-Core.package/Character.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/Character.extension/properties.json create mode 100644 repository/Ston-Core.package/Class.extension/instance/stonName.st create mode 100644 repository/Ston-Core.package/Class.extension/properties.json create mode 100644 repository/Ston-Core.package/Collection.extension/class/fromSton..st create mode 100644 repository/Ston-Core.package/Collection.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/Collection.extension/properties.json create mode 100644 repository/Ston-Core.package/Date.extension/class/fromSton..st create mode 100644 repository/Ston-Core.package/Date.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/Date.extension/instance/stonProcessSubObjects..st create mode 100644 repository/Ston-Core.package/Date.extension/properties.json create mode 100644 repository/Ston-Core.package/DateAndTime.extension/class/fromSton..st create mode 100644 repository/Ston-Core.package/DateAndTime.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/DateAndTime.extension/instance/stonProcessSubObjects..st create mode 100644 repository/Ston-Core.package/DateAndTime.extension/properties.json create mode 100644 repository/Ston-Core.package/Dictionary.extension/class/fromSton..st create mode 100644 repository/Ston-Core.package/Dictionary.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/Dictionary.extension/properties.json create mode 100644 repository/Ston-Core.package/Integer.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/Integer.extension/properties.json create mode 100644 repository/Ston-Core.package/Number.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/Number.extension/instance/stonProcessSubObjects..st create mode 100644 repository/Ston-Core.package/Number.extension/properties.json create mode 100644 repository/Ston-Core.package/Object.extension/class/fromSton..st create mode 100644 repository/Ston-Core.package/Object.extension/instance/fromSton..st create mode 100644 repository/Ston-Core.package/Object.extension/instance/isStonReference.st create mode 100644 repository/Ston-Core.package/Object.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/Object.extension/instance/stonProcessSubObjects..st create mode 100644 repository/Ston-Core.package/Object.extension/properties.json create mode 100644 repository/Ston-Core.package/Point.extension/instance/fromSton..st create mode 100644 repository/Ston-Core.package/Point.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/Point.extension/properties.json create mode 100644 repository/Ston-Core.package/STON.class/README.md create mode 100644 repository/Ston-Core.package/STON.class/class/fromStream..st create mode 100644 repository/Ston-Core.package/STON.class/class/fromString..st create mode 100644 repository/Ston-Core.package/STON.class/class/listClass.st create mode 100644 repository/Ston-Core.package/STON.class/class/mapClass.st create mode 100644 repository/Ston-Core.package/STON.class/class/put.onStream..st create mode 100644 repository/Ston-Core.package/STON.class/class/put.onStreamPretty..st create mode 100644 repository/Ston-Core.package/STON.class/class/reader.st create mode 100644 repository/Ston-Core.package/STON.class/class/toString..st create mode 100644 repository/Ston-Core.package/STON.class/class/toStringPretty..st create mode 100644 repository/Ston-Core.package/STON.class/class/writer.st create mode 100644 repository/Ston-Core.package/STON.class/properties.json create mode 100644 repository/Ston-Core.package/STONListWriter.class/README.md create mode 100644 repository/Ston-Core.package/STONListWriter.class/instance/add..st create mode 100644 repository/Ston-Core.package/STONListWriter.class/properties.json create mode 100644 repository/Ston-Core.package/STONMapWriter.class/README.md create mode 100644 repository/Ston-Core.package/STONMapWriter.class/instance/at.put..st create mode 100644 repository/Ston-Core.package/STONMapWriter.class/properties.json create mode 100644 repository/Ston-Core.package/STONReader.class/README.md create mode 100644 repository/Ston-Core.package/STONReader.class/class/on..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/close.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/consumeWhitespace.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/error..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/expect..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/initialize.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/isClassChar..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/isClassStartChar..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/isSimpleSymbolChar..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/lookupClass..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/match..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/newReference.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/next.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/on..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseCharacter.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseCharacterHex.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseCharacterHexDigit.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseClass.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseList.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseListDo..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseListSingleton.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseMap.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseMapDo..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseNumber.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseNumberExponent.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseNumberFraction.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseNumberInteger.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseObject.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseReference.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseString.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseStringInternal.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseSymbol.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/parseValue.st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/processSubObjectsOf..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/resolveReference..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/resolveReferenceIndex..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/setReference.to..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/storeReference..st create mode 100644 repository/Ston-Core.package/STONReader.class/instance/stringStreamContents..st create mode 100644 repository/Ston-Core.package/STONReader.class/properties.json create mode 100644 repository/Ston-Core.package/STONReaderError.class/README.md create mode 100644 repository/Ston-Core.package/STONReaderError.class/properties.json create mode 100644 repository/Ston-Core.package/STONReference.class/README.md create mode 100644 repository/Ston-Core.package/STONReference.class/class/index..st create mode 100644 repository/Ston-Core.package/STONReference.class/instance/^equals.st create mode 100644 repository/Ston-Core.package/STONReference.class/instance/hash.st create mode 100644 repository/Ston-Core.package/STONReference.class/instance/index..st create mode 100644 repository/Ston-Core.package/STONReference.class/instance/index.st create mode 100644 repository/Ston-Core.package/STONReference.class/instance/isStonReference.st create mode 100644 repository/Ston-Core.package/STONReference.class/properties.json create mode 100644 repository/Ston-Core.package/STONShortListWriter.class/README.md create mode 100644 repository/Ston-Core.package/STONShortListWriter.class/instance/add..st create mode 100644 repository/Ston-Core.package/STONShortListWriter.class/properties.json create mode 100644 repository/Ston-Core.package/STONStreamWriter.class/README.md create mode 100644 repository/Ston-Core.package/STONStreamWriter.class/class/on..st create mode 100644 repository/Ston-Core.package/STONStreamWriter.class/instance/initialize.st create mode 100644 repository/Ston-Core.package/STONStreamWriter.class/instance/on..st create mode 100644 repository/Ston-Core.package/STONStreamWriter.class/properties.json create mode 100644 repository/Ston-Core.package/STONWriter.class/README.md create mode 100644 repository/Ston-Core.package/STONWriter.class/class/initialize.st create mode 100644 repository/Ston-Core.package/STONWriter.class/class/initializeSTONCharacters.st create mode 100644 repository/Ston-Core.package/STONWriter.class/class/initializeSTONSimpleSymbolCharacters.st create mode 100644 repository/Ston-Core.package/STONWriter.class/class/isSimpleSymbolChar..st create mode 100644 repository/Ston-Core.package/STONWriter.class/class/on..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/close.st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/encodeCharacter..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/encodeKey.value..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/encodeList..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/encodeMap..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/encodeString..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/indentedDo..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/initialize.st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/isSimpleSymbol..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/jsonMode..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/listElementSeparator.st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/mapElementSeparator.st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/newlineIndent.st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/nextPut..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/on..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/prettyPrint..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/prettyPrintSpace.st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/referencePolicy..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/reset.st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/shortListElementSeparator.st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/with.do..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeBoolean..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeFloat..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeInteger..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeList..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeMap..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeNull.st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeObject.do..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeObject.listSingleton..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamList..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamMap..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamShortList..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeReference..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeString..st create mode 100644 repository/Ston-Core.package/STONWriter.class/instance/writeSymbol..st create mode 100644 repository/Ston-Core.package/STONWriter.class/properties.json create mode 100644 repository/Ston-Core.package/STONWriterError.class/README.md create mode 100644 repository/Ston-Core.package/STONWriterError.class/properties.json create mode 100644 repository/Ston-Core.package/SequenceableCollection.extension/class/fromSton..st create mode 100644 repository/Ston-Core.package/SequenceableCollection.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/SequenceableCollection.extension/properties.json create mode 100644 repository/Ston-Core.package/String.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/String.extension/instance/stonProcessSubObjects..st create mode 100644 repository/Ston-Core.package/String.extension/properties.json create mode 100644 repository/Ston-Core.package/Symbol.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/Symbol.extension/properties.json create mode 100644 repository/Ston-Core.package/Time.extension/class/fromSton..st create mode 100644 repository/Ston-Core.package/Time.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/Time.extension/instance/stonProcessSubObjects..st create mode 100644 repository/Ston-Core.package/Time.extension/properties.json create mode 100644 repository/Ston-Core.package/TimeStamp.extension/class/fromSton..st create mode 100644 repository/Ston-Core.package/TimeStamp.extension/properties.json create mode 100644 repository/Ston-Core.package/UndefinedObject.extension/instance/stonOn..st create mode 100644 repository/Ston-Core.package/UndefinedObject.extension/instance/stonProcessSubObjects..st create mode 100644 repository/Ston-Core.package/UndefinedObject.extension/properties.json create mode 100644 repository/Ston-Core.package/monticello.meta/categories.st create mode 100644 repository/Ston-Core.package/monticello.meta/initializers.st create mode 100644 repository/Ston-Core.package/monticello.meta/package create mode 100644 repository/Ston-Core.package/monticello.meta/version create mode 100644 repository/Ston-Core.package/properties.json create mode 100644 repository/Ston-Tests.package/.filetree create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/README.md create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/materialize..st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testBoolean.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testByteArray.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testCharacter.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testDate.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testDateAndTime.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testError.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testFloat.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testInteger.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testJsonString.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testList.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testMap.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testNewSymbol.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testNil.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testNull.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testObject.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testOrderedCollection.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testPoint.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testReferenceCycle.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testReferenceSharing.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testString.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testSymbol.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testTime.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testTimeStamp.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testUser.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/instance/testUser2.st create mode 100644 repository/Ston-Tests.package/STONReaderTests.class/properties.json create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/README.md create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/class/dummy.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/class/stonName.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/^equals.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/boolean..st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/boolean.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/bytes..st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/bytes.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/color..st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/color.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/created..st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/created.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/description..st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/description.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/float..st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/float.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/hash.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/initialize.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/integer..st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/integer.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/modified..st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/modified.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/tags..st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/instance/tags.st create mode 100644 repository/Ston-Tests.package/STONTestDomainObject.class/properties.json create mode 100644 repository/Ston-Tests.package/STONTestUser.class/README.md create mode 100644 repository/Ston-Tests.package/STONTestUser.class/class/dummy.st create mode 100644 repository/Ston-Tests.package/STONTestUser.class/class/stonName.st create mode 100644 repository/Ston-Tests.package/STONTestUser.class/instance/^equals.st create mode 100644 repository/Ston-Tests.package/STONTestUser.class/instance/enabled..st create mode 100644 repository/Ston-Tests.package/STONTestUser.class/instance/enabled.st create mode 100644 repository/Ston-Tests.package/STONTestUser.class/instance/hash.st create mode 100644 repository/Ston-Tests.package/STONTestUser.class/instance/initialize.st create mode 100644 repository/Ston-Tests.package/STONTestUser.class/instance/password..st create mode 100644 repository/Ston-Tests.package/STONTestUser.class/instance/password.st create mode 100644 repository/Ston-Tests.package/STONTestUser.class/instance/username..st create mode 100644 repository/Ston-Tests.package/STONTestUser.class/instance/username.st create mode 100644 repository/Ston-Tests.package/STONTestUser.class/properties.json create mode 100644 repository/Ston-Tests.package/STONTestUser2.class/README.md create mode 100644 repository/Ston-Tests.package/STONTestUser2.class/class/stonName.st create mode 100644 repository/Ston-Tests.package/STONTestUser2.class/instance/fromSton..st create mode 100644 repository/Ston-Tests.package/STONTestUser2.class/instance/stonOn..st create mode 100644 repository/Ston-Tests.package/STONTestUser2.class/properties.json create mode 100644 repository/Ston-Tests.package/STONTests.class/README.md create mode 100644 repository/Ston-Tests.package/STONTests.class/instance/testFromString.st create mode 100644 repository/Ston-Tests.package/STONTests.class/instance/testPrettyPrinting.st create mode 100644 repository/Ston-Tests.package/STONTests.class/instance/testToString.st create mode 100644 repository/Ston-Tests.package/STONTests.class/properties.json create mode 100644 repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/README.md create mode 100644 repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/instance/serializeAndMaterialize..st create mode 100644 repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/properties.json create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/README.md create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/serializeAndMaterialize..st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/serializeAndMaterializeJsonMode..st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testAssociations.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testCharacters.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testCollections.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testDatesAndTimes.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testDomainObject.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testEmpty.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testFloats.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testJsonMode.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testPrimitives.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testSmallIntegers.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testStrings.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testSymbols.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testUser.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/instance/testUser2.st create mode 100644 repository/Ston-Tests.package/STONWriteReadTests.class/properties.json create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/README.md create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/serialize..st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testBoolean.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testByteArray.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testDate.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testDateAndTime.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testDoubleQuotedString.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testFloat.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testInteger.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testIsSimpleSymbol.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testList.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testMap.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testNil.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testNull.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testOrderedCollection.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testPoint.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceCycle.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharing.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharingError.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharingIgnore.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testRestrictedClassesInJsonMode.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testString.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testSymbol.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testSymbolAsString.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testTime.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testTimeStamp.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testUser.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/instance/testUser2.st create mode 100644 repository/Ston-Tests.package/STONWriterTests.class/properties.json create mode 100644 repository/Ston-Tests.package/monticello.meta/categories.st create mode 100644 repository/Ston-Tests.package/monticello.meta/initializers.st create mode 100644 repository/Ston-Tests.package/monticello.meta/package create mode 100644 repository/Ston-Tests.package/monticello.meta/version create mode 100644 repository/Ston-Tests.package/properties.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..96702be --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +STON - Smalltalk Object Notation + +A lightweight text-based, human-readable data interchange format +for class-based object-oriented languages like Smalltalk. diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..052e0b3 --- /dev/null +++ b/license.txt @@ -0,0 +1,10 @@ +MIT License + +Copyright (C) 2012 Sven Van Caekenberghe + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/repository/.filetree b/repository/.filetree new file mode 100644 index 0000000..febe4a5 --- /dev/null +++ b/repository/.filetree @@ -0,0 +1 @@ +{ "packageExtension" : ".package" } diff --git a/repository/Ston-Core.package/.filetree b/repository/Ston-Core.package/.filetree new file mode 100644 index 0000000..8998102 --- /dev/null +++ b/repository/Ston-Core.package/.filetree @@ -0,0 +1,4 @@ +{ + "noMethodMetaData" : true, + "separateMethodMetaAndSource" : false, + "useCypressPropertiesFile" : true } diff --git a/repository/Ston-Core.package/Boolean.extension/instance/stonOn..st b/repository/Ston-Core.package/Boolean.extension/instance/stonOn..st new file mode 100644 index 0000000..893a2c3 --- /dev/null +++ b/repository/Ston-Core.package/Boolean.extension/instance/stonOn..st @@ -0,0 +1,3 @@ +*ston-core +stonOn: stonWriter + stonWriter writeBoolean: self \ No newline at end of file diff --git a/repository/Ston-Core.package/Boolean.extension/instance/stonProcessSubObjects..st b/repository/Ston-Core.package/Boolean.extension/instance/stonProcessSubObjects..st new file mode 100644 index 0000000..e291dc9 --- /dev/null +++ b/repository/Ston-Core.package/Boolean.extension/instance/stonProcessSubObjects..st @@ -0,0 +1,2 @@ +*ston-core +stonProcessSubObjects: block \ No newline at end of file diff --git a/repository/Ston-Core.package/Boolean.extension/properties.json b/repository/Ston-Core.package/Boolean.extension/properties.json new file mode 100644 index 0000000..c15542b --- /dev/null +++ b/repository/Ston-Core.package/Boolean.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Boolean" } diff --git a/repository/Ston-Core.package/ByteArray.extension/class/fromSton..st b/repository/Ston-Core.package/ByteArray.extension/class/fromSton..st new file mode 100644 index 0000000..e17c2da --- /dev/null +++ b/repository/Ston-Core.package/ByteArray.extension/class/fromSton..st @@ -0,0 +1,3 @@ +*ston-core +fromSton: stonReader + ^ self readHexFrom: stonReader parseListSingleton \ No newline at end of file diff --git a/repository/Ston-Core.package/ByteArray.extension/instance/stonOn..st b/repository/Ston-Core.package/ByteArray.extension/instance/stonOn..st new file mode 100644 index 0000000..5594238 --- /dev/null +++ b/repository/Ston-Core.package/ByteArray.extension/instance/stonOn..st @@ -0,0 +1,5 @@ +*ston-core +stonOn: stonWriter + "Use a hex representation" + + stonWriter writeObject: self listSingleton: self hex \ No newline at end of file diff --git a/repository/Ston-Core.package/ByteArray.extension/instance/stonProcessSubObjects..st b/repository/Ston-Core.package/ByteArray.extension/instance/stonProcessSubObjects..st new file mode 100644 index 0000000..e291dc9 --- /dev/null +++ b/repository/Ston-Core.package/ByteArray.extension/instance/stonProcessSubObjects..st @@ -0,0 +1,2 @@ +*ston-core +stonProcessSubObjects: block \ No newline at end of file diff --git a/repository/Ston-Core.package/ByteArray.extension/properties.json b/repository/Ston-Core.package/ByteArray.extension/properties.json new file mode 100644 index 0000000..191a2ec --- /dev/null +++ b/repository/Ston-Core.package/ByteArray.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "ByteArray" } diff --git a/repository/Ston-Core.package/Character.extension/class/fromSton..st b/repository/Ston-Core.package/Character.extension/class/fromSton..st new file mode 100644 index 0000000..cf12503 --- /dev/null +++ b/repository/Ston-Core.package/Character.extension/class/fromSton..st @@ -0,0 +1,3 @@ +*ston-core +fromSton: stonReader + ^ stonReader parseListSingleton first \ No newline at end of file diff --git a/repository/Ston-Core.package/Character.extension/instance/stonOn..st b/repository/Ston-Core.package/Character.extension/instance/stonOn..st new file mode 100644 index 0000000..e8ffb5c --- /dev/null +++ b/repository/Ston-Core.package/Character.extension/instance/stonOn..st @@ -0,0 +1,3 @@ +*ston-core +stonOn: stonWriter + stonWriter writeObject: self listSingleton: self asString \ No newline at end of file diff --git a/repository/Ston-Core.package/Character.extension/properties.json b/repository/Ston-Core.package/Character.extension/properties.json new file mode 100644 index 0000000..7532e33 --- /dev/null +++ b/repository/Ston-Core.package/Character.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Character" } diff --git a/repository/Ston-Core.package/Class.extension/instance/stonName.st b/repository/Ston-Core.package/Class.extension/instance/stonName.st new file mode 100644 index 0000000..4f9184e --- /dev/null +++ b/repository/Ston-Core.package/Class.extension/instance/stonName.st @@ -0,0 +1,5 @@ +*ston-core +stonName + "Override to encode my instances using a different class name." + + ^ self name \ No newline at end of file diff --git a/repository/Ston-Core.package/Class.extension/properties.json b/repository/Ston-Core.package/Class.extension/properties.json new file mode 100644 index 0000000..239813a --- /dev/null +++ b/repository/Ston-Core.package/Class.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Class" } diff --git a/repository/Ston-Core.package/Collection.extension/class/fromSton..st b/repository/Ston-Core.package/Collection.extension/class/fromSton..st new file mode 100644 index 0000000..1115b70 --- /dev/null +++ b/repository/Ston-Core.package/Collection.extension/class/fromSton..st @@ -0,0 +1,7 @@ +*ston-core +fromSton: stonReader + | collection | + collection := self new. + stonReader parseListDo: [ :each | + collection add: each ]. + ^ collection \ No newline at end of file diff --git a/repository/Ston-Core.package/Collection.extension/instance/stonOn..st b/repository/Ston-Core.package/Collection.extension/instance/stonOn..st new file mode 100644 index 0000000..5d7f58d --- /dev/null +++ b/repository/Ston-Core.package/Collection.extension/instance/stonOn..st @@ -0,0 +1,4 @@ +*ston-core +stonOn: stonWriter + stonWriter writeObject: self do: [ + stonWriter encodeList: self ] \ No newline at end of file diff --git a/repository/Ston-Core.package/Collection.extension/properties.json b/repository/Ston-Core.package/Collection.extension/properties.json new file mode 100644 index 0000000..93b0dc3 --- /dev/null +++ b/repository/Ston-Core.package/Collection.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Collection" } diff --git a/repository/Ston-Core.package/Date.extension/class/fromSton..st b/repository/Ston-Core.package/Date.extension/class/fromSton..st new file mode 100644 index 0000000..87f37a9 --- /dev/null +++ b/repository/Ston-Core.package/Date.extension/class/fromSton..st @@ -0,0 +1,3 @@ +*ston-core +fromSton: stonReader + ^ self readFrom: stonReader parseListSingleton readStream \ No newline at end of file diff --git a/repository/Ston-Core.package/Date.extension/instance/stonOn..st b/repository/Ston-Core.package/Date.extension/instance/stonOn..st new file mode 100644 index 0000000..e13c0be --- /dev/null +++ b/repository/Ston-Core.package/Date.extension/instance/stonOn..st @@ -0,0 +1,5 @@ +*ston-core +stonOn: stonWriter + "Use an ISO style YYYYMMDD representation" + + stonWriter writeObject: self listSingleton: self yyyymmdd \ No newline at end of file diff --git a/repository/Ston-Core.package/Date.extension/instance/stonProcessSubObjects..st b/repository/Ston-Core.package/Date.extension/instance/stonProcessSubObjects..st new file mode 100644 index 0000000..e291dc9 --- /dev/null +++ b/repository/Ston-Core.package/Date.extension/instance/stonProcessSubObjects..st @@ -0,0 +1,2 @@ +*ston-core +stonProcessSubObjects: block \ No newline at end of file diff --git a/repository/Ston-Core.package/Date.extension/properties.json b/repository/Ston-Core.package/Date.extension/properties.json new file mode 100644 index 0000000..190900c --- /dev/null +++ b/repository/Ston-Core.package/Date.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Date" } diff --git a/repository/Ston-Core.package/DateAndTime.extension/class/fromSton..st b/repository/Ston-Core.package/DateAndTime.extension/class/fromSton..st new file mode 100644 index 0000000..431738b --- /dev/null +++ b/repository/Ston-Core.package/DateAndTime.extension/class/fromSton..st @@ -0,0 +1,3 @@ +*ston-core +fromSton: stonReader + ^ DateAndTime readFrom: stonReader parseListSingleton readStream \ No newline at end of file diff --git a/repository/Ston-Core.package/DateAndTime.extension/instance/stonOn..st b/repository/Ston-Core.package/DateAndTime.extension/instance/stonOn..st new file mode 100644 index 0000000..eb3aa78 --- /dev/null +++ b/repository/Ston-Core.package/DateAndTime.extension/instance/stonOn..st @@ -0,0 +1,7 @@ +*ston-core +stonOn: stonWriter + "Use an ISO representation with all details" + + stonWriter writeObject: self listSingleton: + (String streamContents: [ :stream | + self printOn: stream withLeadingSpace: false ]) \ No newline at end of file diff --git a/repository/Ston-Core.package/DateAndTime.extension/instance/stonProcessSubObjects..st b/repository/Ston-Core.package/DateAndTime.extension/instance/stonProcessSubObjects..st new file mode 100644 index 0000000..e291dc9 --- /dev/null +++ b/repository/Ston-Core.package/DateAndTime.extension/instance/stonProcessSubObjects..st @@ -0,0 +1,2 @@ +*ston-core +stonProcessSubObjects: block \ No newline at end of file diff --git a/repository/Ston-Core.package/DateAndTime.extension/properties.json b/repository/Ston-Core.package/DateAndTime.extension/properties.json new file mode 100644 index 0000000..43b042d --- /dev/null +++ b/repository/Ston-Core.package/DateAndTime.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "DateAndTime" } diff --git a/repository/Ston-Core.package/Dictionary.extension/class/fromSton..st b/repository/Ston-Core.package/Dictionary.extension/class/fromSton..st new file mode 100644 index 0000000..663e12c --- /dev/null +++ b/repository/Ston-Core.package/Dictionary.extension/class/fromSton..st @@ -0,0 +1,10 @@ +*ston-core +fromSton: stonReader + "Instances of STON mapClass will be read directly and won't arrive here. + Other (sub)classes will use this method." + + | dictionary | + dictionary := self new. + stonReader parseMapDo: [ :key :value | + dictionary at: key put: value ]. + ^ dictionary \ No newline at end of file diff --git a/repository/Ston-Core.package/Dictionary.extension/instance/stonOn..st b/repository/Ston-Core.package/Dictionary.extension/instance/stonOn..st new file mode 100644 index 0000000..b7cf1d5 --- /dev/null +++ b/repository/Ston-Core.package/Dictionary.extension/instance/stonOn..st @@ -0,0 +1,12 @@ +*ston-core +stonOn: stonWriter + "Instances of STON mapClass will be encoded directly, without a class tag. + Other (sub)classes will be encoded with a class tag and will use a map representation. " + + self class == STON mapClass + ifTrue: [ + stonWriter writeMap: self ] + ifFalse: [ + stonWriter + writeObject: self + do: [ stonWriter encodeMap: self ] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/Dictionary.extension/properties.json b/repository/Ston-Core.package/Dictionary.extension/properties.json new file mode 100644 index 0000000..cb1bf50 --- /dev/null +++ b/repository/Ston-Core.package/Dictionary.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Dictionary" } diff --git a/repository/Ston-Core.package/Integer.extension/instance/stonOn..st b/repository/Ston-Core.package/Integer.extension/instance/stonOn..st new file mode 100644 index 0000000..83af355 --- /dev/null +++ b/repository/Ston-Core.package/Integer.extension/instance/stonOn..st @@ -0,0 +1,3 @@ +*ston-core +stonOn: stonWriter + stonWriter writeInteger: self \ No newline at end of file diff --git a/repository/Ston-Core.package/Integer.extension/properties.json b/repository/Ston-Core.package/Integer.extension/properties.json new file mode 100644 index 0000000..d27420b --- /dev/null +++ b/repository/Ston-Core.package/Integer.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Integer" } diff --git a/repository/Ston-Core.package/Number.extension/instance/stonOn..st b/repository/Ston-Core.package/Number.extension/instance/stonOn..st new file mode 100644 index 0000000..ee5c796 --- /dev/null +++ b/repository/Ston-Core.package/Number.extension/instance/stonOn..st @@ -0,0 +1,3 @@ +*ston-core +stonOn: stonWriter + stonWriter writeFloat: self asFloat \ No newline at end of file diff --git a/repository/Ston-Core.package/Number.extension/instance/stonProcessSubObjects..st b/repository/Ston-Core.package/Number.extension/instance/stonProcessSubObjects..st new file mode 100644 index 0000000..e291dc9 --- /dev/null +++ b/repository/Ston-Core.package/Number.extension/instance/stonProcessSubObjects..st @@ -0,0 +1,2 @@ +*ston-core +stonProcessSubObjects: block \ No newline at end of file diff --git a/repository/Ston-Core.package/Number.extension/properties.json b/repository/Ston-Core.package/Number.extension/properties.json new file mode 100644 index 0000000..1d2c94d --- /dev/null +++ b/repository/Ston-Core.package/Number.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Number" } diff --git a/repository/Ston-Core.package/Object.extension/class/fromSton..st b/repository/Ston-Core.package/Object.extension/class/fromSton..st new file mode 100644 index 0000000..6d024ee --- /dev/null +++ b/repository/Ston-Core.package/Object.extension/class/fromSton..st @@ -0,0 +1,8 @@ +*ston-core +fromSton: stonReader + "Create a new instance and delegate decoding to instance side. + Override only when new instance should be created directly (see implementors). " + + ^ self new + fromSton: stonReader; + yourself \ No newline at end of file diff --git a/repository/Ston-Core.package/Object.extension/instance/fromSton..st b/repository/Ston-Core.package/Object.extension/instance/fromSton..st new file mode 100644 index 0000000..2d33174 --- /dev/null +++ b/repository/Ston-Core.package/Object.extension/instance/fromSton..st @@ -0,0 +1,11 @@ +*ston-core +fromSton: stonReader + "Decode non-variable classes from a map of their instance variables and values. + Override to customize and add a mathcing #toSton: (see implementors)." + + self class isVariable + ifTrue: [ + self subclassResponsibility ] + ifFalse: [ + stonReader parseMapDo: [ :instVarName :value | + self instVarNamed: instVarName put: value ] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/Object.extension/instance/isStonReference.st b/repository/Ston-Core.package/Object.extension/instance/isStonReference.st new file mode 100644 index 0000000..8ce4fc9 --- /dev/null +++ b/repository/Ston-Core.package/Object.extension/instance/isStonReference.st @@ -0,0 +1,3 @@ +*ston-core +isStonReference + ^ false \ No newline at end of file diff --git a/repository/Ston-Core.package/Object.extension/instance/stonOn..st b/repository/Ston-Core.package/Object.extension/instance/stonOn..st new file mode 100644 index 0000000..6cabd86 --- /dev/null +++ b/repository/Ston-Core.package/Object.extension/instance/stonOn..st @@ -0,0 +1,12 @@ +*ston-core +stonOn: stonWriter + "Encode non-variable classes with a map of their instance variable and values. + Override to customize and add a matching #fromSton: (see implementors)." + + self class isVariable + ifTrue: [ + self subclassResponsibility ] + ifFalse: [ + stonWriter writeObject: self streamMap: [ :dictionary | + self class allInstVarNames do: [ :each | + dictionary at: each asSymbol put: (self instVarNamed: each) ] ] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/Object.extension/instance/stonProcessSubObjects..st b/repository/Ston-Core.package/Object.extension/instance/stonProcessSubObjects..st new file mode 100644 index 0000000..29e127a --- /dev/null +++ b/repository/Ston-Core.package/Object.extension/instance/stonProcessSubObjects..st @@ -0,0 +1,8 @@ +*ston-core +stonProcessSubObjects: block + 1 to: self class instSize do: [ :each | + self instVarAt: each put: (block value: (self instVarAt: each)) ]. + (self class isVariable and: [ self class isBytes not ]) + ifTrue: [ + 1 to: self basicSize do: [ :each | + self basicAt: each put: (block value: (self basicAt: each)) ] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/Object.extension/properties.json b/repository/Ston-Core.package/Object.extension/properties.json new file mode 100644 index 0000000..3d3b9ec --- /dev/null +++ b/repository/Ston-Core.package/Object.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Object" } diff --git a/repository/Ston-Core.package/Point.extension/instance/fromSton..st b/repository/Ston-Core.package/Point.extension/instance/fromSton..st new file mode 100644 index 0000000..f3bd5bc --- /dev/null +++ b/repository/Ston-Core.package/Point.extension/instance/fromSton..st @@ -0,0 +1,5 @@ +*ston-core +fromSton: stonReader + stonReader parseListDo: [ :each :index | + index = 1 ifTrue: [ x := each ]. + index = 2 ifTrue: [ y := each ] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/Point.extension/instance/stonOn..st b/repository/Ston-Core.package/Point.extension/instance/stonOn..st new file mode 100644 index 0000000..4761446 --- /dev/null +++ b/repository/Ston-Core.package/Point.extension/instance/stonOn..st @@ -0,0 +1,4 @@ +*ston-core +stonOn: stonWriter + stonWriter writeObject: self streamShortList: [ :array | + array add: x; add: y ] \ No newline at end of file diff --git a/repository/Ston-Core.package/Point.extension/properties.json b/repository/Ston-Core.package/Point.extension/properties.json new file mode 100644 index 0000000..3ae71f0 --- /dev/null +++ b/repository/Ston-Core.package/Point.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Point" } diff --git a/repository/Ston-Core.package/STON.class/README.md b/repository/Ston-Core.package/STON.class/README.md new file mode 100644 index 0000000..f2189a3 --- /dev/null +++ b/repository/Ston-Core.package/STON.class/README.md @@ -0,0 +1,93 @@ +STON implements serialization and materialization using the Smalltalk Object Notation format. + +S y n t a x + +value + primitive-value + object-value + reference + nil +primitive-value + number + true + false + symbol + string +object-value + object + map + list +object + classname map + classname list +reference + @ int-index-previous-object-value +map + {} + { members } +members + pair + pair , members +pair + string : value + symbol : value + number : value +list + [] + [ elements ] +elements + value + value , elements +string + '' + ' chars ' +chars + char + char chars +char + any-printable-ASCII-character- + except-'-"-or-\ + \' + \" + \\ + \/ + \b + \f + \n + \r + \t + \u four-hex-digits +symbol + # chars-limited + # ' chars ' +chars-limited + char-limited + char-limited chars-limited +char-limited + a-z A-Z 0-9 - _ . / +classname + uppercase-alpha-char alphanumeric-char +number + int + int frac + int exp + int frac exp +int + digit + digit1-9 digits + - digit + - digit1-9 digits +frac + . digits +exp + e digits +digits + digit + digit digits +e + e + e+ + e- + E + E+ + E- diff --git a/repository/Ston-Core.package/STON.class/class/fromStream..st b/repository/Ston-Core.package/STON.class/class/fromStream..st new file mode 100644 index 0000000..aa2b93e --- /dev/null +++ b/repository/Ston-Core.package/STON.class/class/fromStream..st @@ -0,0 +1,3 @@ +convencience +fromStream: readStream + ^ (self reader on: readStream) next \ No newline at end of file diff --git a/repository/Ston-Core.package/STON.class/class/fromString..st b/repository/Ston-Core.package/STON.class/class/fromString..st new file mode 100644 index 0000000..8f5f9ad --- /dev/null +++ b/repository/Ston-Core.package/STON.class/class/fromString..st @@ -0,0 +1,3 @@ +convencience +fromString: string + ^ self fromStream: string readStream \ No newline at end of file diff --git a/repository/Ston-Core.package/STON.class/class/listClass.st b/repository/Ston-Core.package/STON.class/class/listClass.st new file mode 100644 index 0000000..0f99edf --- /dev/null +++ b/repository/Ston-Core.package/STON.class/class/listClass.st @@ -0,0 +1,3 @@ +accessing +listClass + ^ Array \ No newline at end of file diff --git a/repository/Ston-Core.package/STON.class/class/mapClass.st b/repository/Ston-Core.package/STON.class/class/mapClass.st new file mode 100644 index 0000000..ae896f3 --- /dev/null +++ b/repository/Ston-Core.package/STON.class/class/mapClass.st @@ -0,0 +1,3 @@ +accessing +mapClass + ^ Dictionary \ No newline at end of file diff --git a/repository/Ston-Core.package/STON.class/class/put.onStream..st b/repository/Ston-Core.package/STON.class/class/put.onStream..st new file mode 100644 index 0000000..4b3f964 --- /dev/null +++ b/repository/Ston-Core.package/STON.class/class/put.onStream..st @@ -0,0 +1,3 @@ +convencience +put: object onStream: stream + (self writer on: stream) nextPut: object \ No newline at end of file diff --git a/repository/Ston-Core.package/STON.class/class/put.onStreamPretty..st b/repository/Ston-Core.package/STON.class/class/put.onStreamPretty..st new file mode 100644 index 0000000..f8f16b1 --- /dev/null +++ b/repository/Ston-Core.package/STON.class/class/put.onStreamPretty..st @@ -0,0 +1,5 @@ +convencience +put: object onStreamPretty: stream + (self writer on: stream) + prettyPrint: true; + nextPut: object \ No newline at end of file diff --git a/repository/Ston-Core.package/STON.class/class/reader.st b/repository/Ston-Core.package/STON.class/class/reader.st new file mode 100644 index 0000000..63a876a --- /dev/null +++ b/repository/Ston-Core.package/STON.class/class/reader.st @@ -0,0 +1,3 @@ +accessing +reader + ^ STONReader new \ No newline at end of file diff --git a/repository/Ston-Core.package/STON.class/class/toString..st b/repository/Ston-Core.package/STON.class/class/toString..st new file mode 100644 index 0000000..f798f18 --- /dev/null +++ b/repository/Ston-Core.package/STON.class/class/toString..st @@ -0,0 +1,4 @@ +convencience +toString: object + ^ String streamContents: [ :stream | + self put: object onStream: stream ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STON.class/class/toStringPretty..st b/repository/Ston-Core.package/STON.class/class/toStringPretty..st new file mode 100644 index 0000000..13e7e74 --- /dev/null +++ b/repository/Ston-Core.package/STON.class/class/toStringPretty..st @@ -0,0 +1,4 @@ +convencience +toStringPretty: object + ^ String streamContents: [ :stream | + self put: object onStreamPretty: stream ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STON.class/class/writer.st b/repository/Ston-Core.package/STON.class/class/writer.st new file mode 100644 index 0000000..d812f5d --- /dev/null +++ b/repository/Ston-Core.package/STON.class/class/writer.st @@ -0,0 +1,3 @@ +accessing +writer + ^ STONWriter new \ No newline at end of file diff --git a/repository/Ston-Core.package/STON.class/properties.json b/repository/Ston-Core.package/STON.class/properties.json new file mode 100644 index 0000000..4bae655 --- /dev/null +++ b/repository/Ston-Core.package/STON.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Core", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "SvenVanCaekenberghe 4/24/2012 21:53", + "instvars" : [ + ], + "name" : "STON", + "pools" : [ + ], + "super" : "Object", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Core.package/STONListWriter.class/README.md b/repository/Ston-Core.package/STONListWriter.class/README.md new file mode 100644 index 0000000..2d277ac --- /dev/null +++ b/repository/Ston-Core.package/STONListWriter.class/README.md @@ -0,0 +1 @@ +STONArrayWriter helps in writing array based STON representations. diff --git a/repository/Ston-Core.package/STONListWriter.class/instance/add..st b/repository/Ston-Core.package/STONListWriter.class/instance/add..st new file mode 100644 index 0000000..23dcbaf --- /dev/null +++ b/repository/Ston-Core.package/STONListWriter.class/instance/add..st @@ -0,0 +1,4 @@ +accessing +add: anObject + first ifTrue: [ first := false ] ifFalse: [ writer listElementSeparator ]. + writer nextPut: anObject \ No newline at end of file diff --git a/repository/Ston-Core.package/STONListWriter.class/properties.json b/repository/Ston-Core.package/STONListWriter.class/properties.json new file mode 100644 index 0000000..fa5e05c --- /dev/null +++ b/repository/Ston-Core.package/STONListWriter.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Core", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "STONListWriter", + "pools" : [ + ], + "super" : "STONStreamWriter", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Core.package/STONMapWriter.class/README.md b/repository/Ston-Core.package/STONMapWriter.class/README.md new file mode 100644 index 0000000..10fc11e --- /dev/null +++ b/repository/Ston-Core.package/STONMapWriter.class/README.md @@ -0,0 +1 @@ +STONDictionaryWriter helps in writing dictionary based STON representations. \ No newline at end of file diff --git a/repository/Ston-Core.package/STONMapWriter.class/instance/at.put..st b/repository/Ston-Core.package/STONMapWriter.class/instance/at.put..st new file mode 100644 index 0000000..6a15cfc --- /dev/null +++ b/repository/Ston-Core.package/STONMapWriter.class/instance/at.put..st @@ -0,0 +1,4 @@ +accessing +at: key put: value + first ifTrue: [ first := false ] ifFalse: [ writer mapElementSeparator ]. + writer encodeKey: key value: value \ No newline at end of file diff --git a/repository/Ston-Core.package/STONMapWriter.class/properties.json b/repository/Ston-Core.package/STONMapWriter.class/properties.json new file mode 100644 index 0000000..90bb4d0 --- /dev/null +++ b/repository/Ston-Core.package/STONMapWriter.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Core", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "STONMapWriter", + "pools" : [ + ], + "super" : "STONStreamWriter", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Core.package/STONReader.class/README.md b/repository/Ston-Core.package/STONReader.class/README.md new file mode 100644 index 0000000..2c9d4e8 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/README.md @@ -0,0 +1 @@ +STONReader materializes objects using the Smalltalk Object Notation format. \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/class/on..st b/repository/Ston-Core.package/STONReader.class/class/on..st new file mode 100644 index 0000000..a869774 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/class/on..st @@ -0,0 +1,5 @@ +instance creation +on: readStream + ^ self new + on: readStream; + yourself \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/close.st b/repository/Ston-Core.package/STONReader.class/instance/close.st new file mode 100644 index 0000000..0b2225f --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/close.st @@ -0,0 +1,5 @@ +initialize-release +close + readStream ifNotNil: [ + readStream close. + readStream := nil ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/consumeWhitespace.st b/repository/Ston-Core.package/STONReader.class/instance/consumeWhitespace.st new file mode 100644 index 0000000..f9079a7 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/consumeWhitespace.st @@ -0,0 +1,6 @@ +private +consumeWhitespace + "Strip whitespaces from the input stream." + + [ readStream atEnd not and: [ readStream peek isSeparator ] ] + whileTrue: [ readStream next ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/error..st b/repository/Ston-Core.package/STONReader.class/instance/error..st new file mode 100644 index 0000000..096932f --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/error..st @@ -0,0 +1,3 @@ +error handling +error: aString + ^ STONReaderError signal: aString \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/expect..st b/repository/Ston-Core.package/STONReader.class/instance/expect..st new file mode 100644 index 0000000..cb8276c --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/expect..st @@ -0,0 +1,5 @@ +private +expect: aString + "Expects aString and consume input, throw an error otherwise." + + (self match: aString) ifFalse: [ self error: aString, ' expected' ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/initialize.st b/repository/Ston-Core.package/STONReader.class/instance/initialize.st new file mode 100644 index 0000000..5a1b65f --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/initialize.st @@ -0,0 +1,6 @@ +initialize-release +initialize + super initialize. + objects := IdentityDictionary new. + classes := IdentityDictionary new. + unresolvedReferences := 0 \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/isClassChar..st b/repository/Ston-Core.package/STONReader.class/instance/isClassChar..st new file mode 100644 index 0000000..c35ac39 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/isClassChar..st @@ -0,0 +1,3 @@ +private +isClassChar: char + ^ 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' includes: char \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/isClassStartChar..st b/repository/Ston-Core.package/STONReader.class/instance/isClassStartChar..st new file mode 100644 index 0000000..f6634b4 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/isClassStartChar..st @@ -0,0 +1,3 @@ +private +isClassStartChar: char + ^ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' includes: char \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/isSimpleSymbolChar..st b/repository/Ston-Core.package/STONReader.class/instance/isSimpleSymbolChar..st new file mode 100644 index 0000000..12d141c --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/isSimpleSymbolChar..st @@ -0,0 +1,3 @@ +private +isSimpleSymbolChar: char + ^ 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_./' includes: char \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/lookupClass..st b/repository/Ston-Core.package/STONReader.class/instance/lookupClass..st new file mode 100644 index 0000000..de816eb --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/lookupClass..st @@ -0,0 +1,12 @@ +private +lookupClass: name + Smalltalk globals + at: name + ifPresent: [ :class | ^ class ]. + ^ classes + at: name + ifAbsentPut: [ + Object allSubclasses + detect: [ :class | class stonName == name ] + ifNone: [ self error: 'Cannot resolve class named ', name printString ] ] + \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/match..st b/repository/Ston-Core.package/STONReader.class/instance/match..st new file mode 100644 index 0000000..3c13cc0 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/match..st @@ -0,0 +1,12 @@ +private +match: aString + "Tries to match aString, consume input and answer true if successful." + + | position | + position := readStream position. + aString do: [ :each | + (readStream atEnd or: [ readStream next ~= each ]) ifTrue: [ + readStream position: position. + ^ false ] ]. + self consumeWhitespace. + ^ true \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/newReference.st b/repository/Ston-Core.package/STONReader.class/instance/newReference.st new file mode 100644 index 0000000..e9974c9 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/newReference.st @@ -0,0 +1,7 @@ +private +newReference + | index reference | + index := objects size + 1. + reference := STONReference index: index. + objects at: index put: reference. + ^ reference \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/next.st b/repository/Ston-Core.package/STONReader.class/instance/next.st new file mode 100644 index 0000000..9eafc49 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/next.st @@ -0,0 +1,8 @@ +public +next + | object | + self consumeWhitespace. + object := self parseValue. + unresolvedReferences > 0 + ifTrue: [ self processSubObjectsOf: object ]. + ^ object \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/on..st b/repository/Ston-Core.package/STONReader.class/instance/on..st new file mode 100644 index 0000000..3a40387 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/on..st @@ -0,0 +1,3 @@ +initialize-release +on: aReadStream + readStream := aReadStream \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseCharacter.st b/repository/Ston-Core.package/STONReader.class/instance/parseCharacter.st new file mode 100644 index 0000000..4eaa999 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseCharacter.st @@ -0,0 +1,20 @@ +parsing-internal +parseCharacter + | char | + (char := readStream next) = $\ + ifFalse: [ ^ char ]. + (#( $' $" $/ $\) includes: (char := readStream next)) + ifTrue: [ ^ char ]. + char = $b + ifTrue: [ ^ Character backspace ]. + char = $f + ifTrue: [ ^ Character newPage ]. + char = $n + ifTrue: [ ^ Character lf ]. + char = $r + ifTrue: [ ^ Character cr ]. + char = $t + ifTrue: [ ^ Character tab ]. + char = $u + ifTrue: [ ^ self parseCharacterHex ]. + self error: 'invalid escape character \' , (String with: char) \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseCharacterHex.st b/repository/Ston-Core.package/STONReader.class/instance/parseCharacterHex.st new file mode 100644 index 0000000..c13d803 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseCharacterHex.st @@ -0,0 +1,6 @@ +parsing-internal +parseCharacterHex + | value | + value := self parseCharacterHexDigit. + 3 timesRepeat: [ value := (value << 4) + self parseCharacterHexDigit ]. + ^ Character codePoint: value \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseCharacterHexDigit.st b/repository/Ston-Core.package/STONReader.class/instance/parseCharacterHexDigit.st new file mode 100644 index 0000000..80a3ea2 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseCharacterHexDigit.st @@ -0,0 +1,12 @@ +parsing-internal +parseCharacterHexDigit + | digit | + readStream atEnd ifFalse: [ + digit := readStream next asInteger. + (digit between: "$0" 48 and: "$9" 57) + ifTrue: [ ^ digit - 48 ]. + (digit between: "$A" 65 and: "$F" 70) + ifTrue: [ ^ digit - 55 ]. + (digit between: "$a" 97 and: "$f" 102) + ifTrue: [ ^ digit - 87 ] ]. + self error: 'hex-digit expected' \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseClass.st b/repository/Ston-Core.package/STONReader.class/instance/parseClass.st new file mode 100644 index 0000000..1727436 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseClass.st @@ -0,0 +1,9 @@ +parsing-internal +parseClass + | className | + className := self stringStreamContents: [ :stream | + [ readStream atEnd not and: [ self isClassChar: readStream peek ] ] + whileTrue: [ stream nextPut: readStream next ] ]. + self consumeWhitespace. + ^ self lookupClass: className asSymbol + \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseList.st b/repository/Ston-Core.package/STONReader.class/instance/parseList.st new file mode 100644 index 0000000..91b1fb9 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseList.st @@ -0,0 +1,8 @@ +parsing +parseList + | reference array | + reference := self newReference. + array := STON listClass streamContents: [ :stream | + self parseListDo: [ :each | stream nextPut: each ] ]. + self setReference: reference to: array. + ^ array \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseListDo..st b/repository/Ston-Core.package/STONReader.class/instance/parseListDo..st new file mode 100644 index 0000000..a34e7ef --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseListDo..st @@ -0,0 +1,14 @@ +parsing +parseListDo: block + | index | + self expect: '['. + (self match: ']') + ifTrue: [ ^ self ]. + index := 1. + [ readStream atEnd ] whileFalse: [ + block cull: self parseValue cull: index. + (self match: ']') + ifTrue: [ ^ self ]. + index := index + 1. + self expect: ',' ]. + self error: 'end of list expected' \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseListSingleton.st b/repository/Ston-Core.package/STONReader.class/instance/parseListSingleton.st new file mode 100644 index 0000000..04b12a9 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseListSingleton.st @@ -0,0 +1,7 @@ +parsing +parseListSingleton + | value | + value := nil. + self parseListDo: [ :each :index | + index = 1 ifTrue: [ value := each ] ]. + ^ value \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseMap.st b/repository/Ston-Core.package/STONReader.class/instance/parseMap.st new file mode 100644 index 0000000..15e7c2f --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseMap.st @@ -0,0 +1,8 @@ +parsing +parseMap + | map | + map := STON mapClass new. + self storeReference: map. + self parseMapDo: [ :key :value | + map at: key put: value ]. + ^ map \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseMapDo..st b/repository/Ston-Core.package/STONReader.class/instance/parseMapDo..st new file mode 100644 index 0000000..ae242cf --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseMapDo..st @@ -0,0 +1,16 @@ +parsing +parseMapDo: block + self expect: '{'. + (self match: '}') + ifTrue: [ ^ self ]. + [ readStream atEnd ] whileFalse: [ | name value | + name := self parseValue. + (name isString or: [ name isNumber ]) + ifFalse: [ self error: 'unexpected property name type' ]. + self consumeWhitespace; expect: ':'. + value := self parseValue. + block value: name value: value. + (self match: '}') + ifTrue: [ ^ self ]. + self expect: ',' ]. + self error: 'end of map expected' \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseNumber.st b/repository/Ston-Core.package/STONReader.class/instance/parseNumber.st new file mode 100644 index 0000000..214d3fa --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseNumber.st @@ -0,0 +1,15 @@ +parsing-internal +parseNumber + | negated number | + negated := readStream peek = $-. + negated ifTrue: [ readStream next ]. + number := self parseNumberInteger. + (readStream peek = $.) ifTrue: [ + readStream next. + number := number + self parseNumberFraction ]. + (readStream peek = $e or: [ readStream peek = $E ]) ifTrue: [ + readStream next. + number := number * self parseNumberExponent ]. + negated ifTrue: [ number := number negated ]. + self consumeWhitespace. + ^ number \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseNumberExponent.st b/repository/Ston-Core.package/STONReader.class/instance/parseNumberExponent.st new file mode 100644 index 0000000..bc0b978 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseNumberExponent.st @@ -0,0 +1,10 @@ +parsing-internal +parseNumberExponent + | number negated | + number := 0. + negated := readStream peek = $-. + (negated or: [ readStream peek = $+ ]) ifTrue: [ readStream next ]. + [ readStream atEnd not and: [ readStream peek isDigit ] ] + whileTrue: [ number := 10 * number + readStream next digitValue ]. + negated ifTrue: [ number := number negated ]. + ^ 10 raisedTo: number \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseNumberFraction.st b/repository/Ston-Core.package/STONReader.class/instance/parseNumberFraction.st new file mode 100644 index 0000000..bfc0aaf --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseNumberFraction.st @@ -0,0 +1,9 @@ +parsing-internal +parseNumberFraction + | number power | + number := 0. + power := 1.0. + [ readStream atEnd not and: [ readStream peek isDigit ] ] whileTrue: [ + number := 10 * number + readStream next digitValue. + power := power * 10.0 ]. + ^ number / power \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseNumberInteger.st b/repository/Ston-Core.package/STONReader.class/instance/parseNumberInteger.st new file mode 100644 index 0000000..e572f64 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseNumberInteger.st @@ -0,0 +1,7 @@ +parsing-internal +parseNumberInteger + | number | + number := 0. + [ readStream atEnd not and: [ readStream peek isDigit ] ] + whileTrue: [ number := 10 * number + readStream next digitValue ]. + ^ number \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseObject.st b/repository/Ston-Core.package/STONReader.class/instance/parseObject.st new file mode 100644 index 0000000..6065339 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseObject.st @@ -0,0 +1,8 @@ +parsing +parseObject + | targetClass reference object | + targetClass := self parseClass. + reference := self newReference. + object := targetClass fromSton: self. + self setReference: reference to: object. + ^ object \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseReference.st b/repository/Ston-Core.package/STONReader.class/instance/parseReference.st new file mode 100644 index 0000000..a76aac1 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseReference.st @@ -0,0 +1,10 @@ +parsing-internal +parseReference + | index object | + self expect: '@'. + index := self parseNumberInteger. + self consumeWhitespace. + object := self resolveReferenceIndex: index. + object isStonReference + ifTrue: [ unresolvedReferences := unresolvedReferences + 1 ]. + ^ object \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseString.st b/repository/Ston-Core.package/STONReader.class/instance/parseString.st new file mode 100644 index 0000000..08ad4e7 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseString.st @@ -0,0 +1,3 @@ +parsing-internal +parseString + ^ self parseStringInternal \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseStringInternal.st b/repository/Ston-Core.package/STONReader.class/instance/parseStringInternal.st new file mode 100644 index 0000000..ce91267 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseStringInternal.st @@ -0,0 +1,13 @@ +parsing-internal +parseStringInternal + | result delimiter | + delimiter := readStream next. + (delimiter = $' or: [ delimiter = $" ]) + ifFalse: [ self error: ''' or " expected' ]. + result := self stringStreamContents: [ :stream | + [ readStream atEnd or: [ readStream peek = delimiter ] ] + whileFalse: [ stream nextPut: self parseCharacter ] ]. + readStream next = delimiter + ifFalse: [ self error: delimiter asString, ' expected' ]. + self consumeWhitespace. + ^ result \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseSymbol.st b/repository/Ston-Core.package/STONReader.class/instance/parseSymbol.st new file mode 100644 index 0000000..21f0646 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseSymbol.st @@ -0,0 +1,14 @@ +parsing-internal +parseSymbol + | string | + self expect: '#'. + readStream peek = $' + ifTrue: [ ^ self parseStringInternal asSymbol ]. + string := self stringStreamContents: [ :stream | + [ readStream atEnd not and: [ self isSimpleSymbolChar: readStream peek ] ] whileTrue: [ + stream nextPut: readStream next ] ]. + string isEmpty + ifFalse: [ + self consumeWhitespace. + ^ string asSymbol ]. + self error: 'unexpected input' \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/parseValue.st b/repository/Ston-Core.package/STONReader.class/instance/parseValue.st new file mode 100644 index 0000000..3954d4d --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/parseValue.st @@ -0,0 +1,25 @@ +parsing +parseValue + | char | + readStream atEnd ifFalse: [ + (self isClassStartChar: (char := readStream peek)) + ifTrue: [ ^ self parseObject ]. + char = ${ + ifTrue: [ ^ self parseMap ]. + char = $[ + ifTrue: [ ^ self parseList ]. + (char = $' or: [ char = $" ]) + ifTrue: [ ^ self parseString ]. + char = $# + ifTrue: [ ^ self parseSymbol ]. + char = $@ + ifTrue: [ ^ self parseReference ]. + (char = $- or: [ char isDigit ]) + ifTrue: [ ^ self parseNumber ]. + (self match: 'true') + ifTrue: [ ^ true ]. + (self match: 'false') + ifTrue: [ ^ false ]. + ((self match: 'nil') or: [ self match: 'null' ]) + ifTrue: [ ^ nil ] ]. + self error: 'invalid input' \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/processSubObjectsOf..st b/repository/Ston-Core.package/STONReader.class/instance/processSubObjectsOf..st new file mode 100644 index 0000000..8eda200 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/processSubObjectsOf..st @@ -0,0 +1,9 @@ +private +processSubObjectsOf: object + object stonProcessSubObjects: [ :each | + each isStonReference + ifTrue: [ + self resolveReference: each ] + ifFalse: [ + self processSubObjectsOf: each. + each ] ] diff --git a/repository/Ston-Core.package/STONReader.class/instance/resolveReference..st b/repository/Ston-Core.package/STONReader.class/instance/resolveReference..st new file mode 100644 index 0000000..f5ef0cf --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/resolveReference..st @@ -0,0 +1,3 @@ +private +resolveReference: reference + ^ self resolveReferenceIndex: reference index \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/resolveReferenceIndex..st b/repository/Ston-Core.package/STONReader.class/instance/resolveReferenceIndex..st new file mode 100644 index 0000000..1ccc655 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/resolveReferenceIndex..st @@ -0,0 +1,3 @@ +private +resolveReferenceIndex: index + ^ objects at: index \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/setReference.to..st b/repository/Ston-Core.package/STONReader.class/instance/setReference.to..st new file mode 100644 index 0000000..6e5dd74 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/setReference.to..st @@ -0,0 +1,3 @@ +private +setReference: reference to: object + objects at: reference index put: object \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/storeReference..st b/repository/Ston-Core.package/STONReader.class/instance/storeReference..st new file mode 100644 index 0000000..b8d3350 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/storeReference..st @@ -0,0 +1,6 @@ +private +storeReference: object + | index | + index := objects size + 1. + objects at: index put: object. + ^ index \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/instance/stringStreamContents..st b/repository/Ston-Core.package/STONReader.class/instance/stringStreamContents..st new file mode 100644 index 0000000..985379c --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/instance/stringStreamContents..st @@ -0,0 +1,7 @@ +private +stringStreamContents: block + stringStream ifNil: [ + stringStream := (String new: 32) writeStream ]. + stringStream reset. + block value: stringStream. + ^ stringStream contents \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReader.class/properties.json b/repository/Ston-Core.package/STONReader.class/properties.json new file mode 100644 index 0000000..e242659 --- /dev/null +++ b/repository/Ston-Core.package/STONReader.class/properties.json @@ -0,0 +1,20 @@ +{ + "category" : "STON-Core", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "SvenVanCaekenberghe 1/14/2012 20:25", + "instvars" : [ + "readStream", + "objects", + "classes", + "unresolvedReferences", + "stringStream" ], + "name" : "STONReader", + "pools" : [ + ], + "super" : "Object", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Core.package/STONReaderError.class/README.md b/repository/Ston-Core.package/STONReaderError.class/README.md new file mode 100644 index 0000000..7bae84e --- /dev/null +++ b/repository/Ston-Core.package/STONReaderError.class/README.md @@ -0,0 +1 @@ +STONReaderError is the error/exception signalled by STONReader when illegal/incorrect input is seen. diff --git a/repository/Ston-Core.package/STONReaderError.class/properties.json b/repository/Ston-Core.package/STONReaderError.class/properties.json new file mode 100644 index 0000000..81b878f --- /dev/null +++ b/repository/Ston-Core.package/STONReaderError.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Core", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "STONReaderError", + "pools" : [ + ], + "super" : "Error", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Core.package/STONReference.class/README.md b/repository/Ston-Core.package/STONReference.class/README.md new file mode 100644 index 0000000..611d68e --- /dev/null +++ b/repository/Ston-Core.package/STONReference.class/README.md @@ -0,0 +1 @@ +STONReference holds a forward reference to another object during materialization. diff --git a/repository/Ston-Core.package/STONReference.class/class/index..st b/repository/Ston-Core.package/STONReference.class/class/index..st new file mode 100644 index 0000000..db32b3a --- /dev/null +++ b/repository/Ston-Core.package/STONReference.class/class/index..st @@ -0,0 +1,5 @@ +instance creation +index: integer + ^ self new + index: integer; + yourself \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReference.class/instance/^equals.st b/repository/Ston-Core.package/STONReference.class/instance/^equals.st new file mode 100644 index 0000000..e4b9912 --- /dev/null +++ b/repository/Ston-Core.package/STONReference.class/instance/^equals.st @@ -0,0 +1,3 @@ +comparing += anObject + ^ self class == anObject class and: [ self index = anObject index ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReference.class/instance/hash.st b/repository/Ston-Core.package/STONReference.class/instance/hash.st new file mode 100644 index 0000000..4bcde97 --- /dev/null +++ b/repository/Ston-Core.package/STONReference.class/instance/hash.st @@ -0,0 +1,3 @@ +comparing +hash + ^ index hash \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReference.class/instance/index..st b/repository/Ston-Core.package/STONReference.class/instance/index..st new file mode 100644 index 0000000..5a29286 --- /dev/null +++ b/repository/Ston-Core.package/STONReference.class/instance/index..st @@ -0,0 +1,3 @@ +accessing +index: integer + index := integer \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReference.class/instance/index.st b/repository/Ston-Core.package/STONReference.class/instance/index.st new file mode 100644 index 0000000..ad7d30a --- /dev/null +++ b/repository/Ston-Core.package/STONReference.class/instance/index.st @@ -0,0 +1,3 @@ +accessing +index + ^ index \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReference.class/instance/isStonReference.st b/repository/Ston-Core.package/STONReference.class/instance/isStonReference.st new file mode 100644 index 0000000..a7b660b --- /dev/null +++ b/repository/Ston-Core.package/STONReference.class/instance/isStonReference.st @@ -0,0 +1,3 @@ +testing +isStonReference + ^ true \ No newline at end of file diff --git a/repository/Ston-Core.package/STONReference.class/properties.json b/repository/Ston-Core.package/STONReference.class/properties.json new file mode 100644 index 0000000..aab71f6 --- /dev/null +++ b/repository/Ston-Core.package/STONReference.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Core", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "SvenVanCaekenberghe 1/22/2012 20:13", + "instvars" : [ + "index" ], + "name" : "STONReference", + "pools" : [ + ], + "super" : "Object", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Core.package/STONShortListWriter.class/README.md b/repository/Ston-Core.package/STONShortListWriter.class/README.md new file mode 100644 index 0000000..bef8856 --- /dev/null +++ b/repository/Ston-Core.package/STONShortListWriter.class/README.md @@ -0,0 +1 @@ +STONShortArrayWriter helps in writing short array based STON representations. diff --git a/repository/Ston-Core.package/STONShortListWriter.class/instance/add..st b/repository/Ston-Core.package/STONShortListWriter.class/instance/add..st new file mode 100644 index 0000000..8a1fa7e --- /dev/null +++ b/repository/Ston-Core.package/STONShortListWriter.class/instance/add..st @@ -0,0 +1,4 @@ +accessing +add: anObject + first ifTrue: [ first := false ] ifFalse: [ writer shortListElementSeparator ]. + writer nextPut: anObject \ No newline at end of file diff --git a/repository/Ston-Core.package/STONShortListWriter.class/properties.json b/repository/Ston-Core.package/STONShortListWriter.class/properties.json new file mode 100644 index 0000000..b1bf3fe --- /dev/null +++ b/repository/Ston-Core.package/STONShortListWriter.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Core", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "STONShortListWriter", + "pools" : [ + ], + "super" : "STONListWriter", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Core.package/STONStreamWriter.class/README.md b/repository/Ston-Core.package/STONStreamWriter.class/README.md new file mode 100644 index 0000000..591d977 --- /dev/null +++ b/repository/Ston-Core.package/STONStreamWriter.class/README.md @@ -0,0 +1,2 @@ +STONStreamWriter helps in streaming writing STON representations. +This is an abstract class. \ No newline at end of file diff --git a/repository/Ston-Core.package/STONStreamWriter.class/class/on..st b/repository/Ston-Core.package/STONStreamWriter.class/class/on..st new file mode 100644 index 0000000..ea5cd10 --- /dev/null +++ b/repository/Ston-Core.package/STONStreamWriter.class/class/on..st @@ -0,0 +1,5 @@ +instance creation +on: stonWriter + ^ self new + on: stonWriter; + yourself \ No newline at end of file diff --git a/repository/Ston-Core.package/STONStreamWriter.class/instance/initialize.st b/repository/Ston-Core.package/STONStreamWriter.class/instance/initialize.st new file mode 100644 index 0000000..a0c1206 --- /dev/null +++ b/repository/Ston-Core.package/STONStreamWriter.class/instance/initialize.st @@ -0,0 +1,4 @@ +initialize-release +initialize + super initialize. + first := true \ No newline at end of file diff --git a/repository/Ston-Core.package/STONStreamWriter.class/instance/on..st b/repository/Ston-Core.package/STONStreamWriter.class/instance/on..st new file mode 100644 index 0000000..eaf945d --- /dev/null +++ b/repository/Ston-Core.package/STONStreamWriter.class/instance/on..st @@ -0,0 +1,3 @@ +initialize-release +on: stonWriter + writer := stonWriter \ No newline at end of file diff --git a/repository/Ston-Core.package/STONStreamWriter.class/properties.json b/repository/Ston-Core.package/STONStreamWriter.class/properties.json new file mode 100644 index 0000000..31f6c2c --- /dev/null +++ b/repository/Ston-Core.package/STONStreamWriter.class/properties.json @@ -0,0 +1,17 @@ +{ + "category" : "STON-Core", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "writer", + "first" ], + "name" : "STONStreamWriter", + "pools" : [ + ], + "super" : "Object", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Core.package/STONWriter.class/README.md b/repository/Ston-Core.package/STONWriter.class/README.md new file mode 100644 index 0000000..d8739a2 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/README.md @@ -0,0 +1,18 @@ +STONWriter serializes objects using the Smalltalk Object Notation format. + +Customization options are: + +- prettyPrint default is false + if true, produce pretty printed output +- jsonMode default is false + if true, the follow changes occur + - strings are delimited with double quotes + - nil is encoded as null + - symbols are treated as strings + - only STON listClass and STON mapClass instances are allowed as composite objects + it is wise to also use either #error or #ignore as referencePolicy to avoid references +- referencePolicy <#normal|#ignore|#error> default is #normal + if #normal, track and count object references and use references to implement sharing and break cycles + if #error, track object references and signal STONWriterError when a shared reference is encountered + if #ignore, don't track object references which might loop forever on cycles + \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/class/initialize.st b/repository/Ston-Core.package/STONWriter.class/class/initialize.st new file mode 100644 index 0000000..298ce37 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/class/initialize.st @@ -0,0 +1,4 @@ +class initialization +initialize + self initializeSTONCharacters. + self initializeSTONSimpleSymbolCharacters \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/class/initializeSTONCharacters.st b/repository/Ston-Core.package/STONWriter.class/class/initializeSTONCharacters.st new file mode 100644 index 0000000..6e8fe3b --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/class/initializeSTONCharacters.st @@ -0,0 +1,12 @@ +class initialization +initializeSTONCharacters + | escapes | + STONCharacters := Array new: 127. + 32 to: 126 do: [ :each | + STONCharacters at: each + 1 put: #pass ]. + escapes := #( 8 '\b' 9 '\t' 10 '\n' 12 '\f' 13 '\r' 34 '\"' 39 '\''' 92 '\\' ). + 1 to: escapes size - 1 by: 2 do: [ :index | + STONCharacters + at: (escapes at: index) + 1 + put: (escapes at: index + 1) ] + \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/class/initializeSTONSimpleSymbolCharacters.st b/repository/Ston-Core.package/STONWriter.class/class/initializeSTONSimpleSymbolCharacters.st new file mode 100644 index 0000000..280ceb8 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/class/initializeSTONSimpleSymbolCharacters.st @@ -0,0 +1,11 @@ +class initialization +initializeSTONSimpleSymbolCharacters + "STONSimpleSymbolCharacters asArray collectWithIndex: [ :each :index | + each isZero ifTrue: [ (index - 1) asCharacter ] ]." + + STONSimpleSymbolCharacters := ByteArray new: 256 withAll: 1. + 1 to: 256 do: [ :each | | char | + char := (each - 1) asCharacter. + (self isSimpleSymbolChar: char) + ifTrue: [ + STONSimpleSymbolCharacters at: each put: 0 ] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/class/isSimpleSymbolChar..st b/repository/Ston-Core.package/STONWriter.class/class/isSimpleSymbolChar..st new file mode 100644 index 0000000..12d141c --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/class/isSimpleSymbolChar..st @@ -0,0 +1,3 @@ +private +isSimpleSymbolChar: char + ^ 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_./' includes: char \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/class/on..st b/repository/Ston-Core.package/STONWriter.class/class/on..st new file mode 100644 index 0000000..b6cdd63 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/class/on..st @@ -0,0 +1,5 @@ +instance creation +on: writeStream + ^ self new + on: writeStream; + yourself \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/close.st b/repository/Ston-Core.package/STONWriter.class/instance/close.st new file mode 100644 index 0000000..2754652 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/close.st @@ -0,0 +1,5 @@ +initialize-release +close + writeStream ifNotNil: [ + writeStream close. + writeStream := nil ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/encodeCharacter..st b/repository/Ston-Core.package/STONWriter.class/instance/encodeCharacter..st new file mode 100644 index 0000000..a36667b --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/encodeCharacter..st @@ -0,0 +1,11 @@ +private +encodeCharacter: char + | code encoding | + ((code := char codePoint) < 127 and: [ (encoding := STONCharacters at: code + 1) notNil ]) + ifTrue: [ + encoding = #pass + ifTrue: [ writeStream nextPut: char ] + ifFalse: [ writeStream nextPutAll: encoding ] ] + ifFalse: [ + writeStream nextPutAll: '\u'. + code printOn: writeStream base: 16 nDigits: 4 ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/encodeKey.value..st b/repository/Ston-Core.package/STONWriter.class/instance/encodeKey.value..st new file mode 100644 index 0000000..c758a10 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/encodeKey.value..st @@ -0,0 +1,7 @@ +private +encodeKey: key value: value + self nextPut: key. + self prettyPrintSpace. + writeStream nextPut: $:. + self prettyPrintSpace. + self nextPut: value \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/encodeList..st b/repository/Ston-Core.package/STONWriter.class/instance/encodeList..st new file mode 100644 index 0000000..6cceca2 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/encodeList..st @@ -0,0 +1,10 @@ +writing +encodeList: elements + writeStream nextPut: $[. + self indentedDo: [ + self newlineIndent. + elements + do: [ :each | self nextPut: each ] + separatedBy: [ self listElementSeparator ] ]. + self newlineIndent. + writeStream nextPut: $] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/encodeMap..st b/repository/Ston-Core.package/STONWriter.class/instance/encodeMap..st new file mode 100644 index 0000000..2454da7 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/encodeMap..st @@ -0,0 +1,14 @@ +writing +encodeMap: pairs + | first | + first := true. + writeStream nextPut: ${. + self indentedDo: [ + self newlineIndent. + pairs keysAndValuesDo: [ :key :value | + first + ifTrue: [ first := false ] + ifFalse: [ self mapElementSeparator ]. + self encodeKey: key value: value ] ]. + self newlineIndent. + writeStream nextPut: $} \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/encodeString..st b/repository/Ston-Core.package/STONWriter.class/instance/encodeString..st new file mode 100644 index 0000000..84ee2f4 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/encodeString..st @@ -0,0 +1,6 @@ +private +encodeString: string + writeStream nextPut: (jsonMode ifTrue: [ $" ] ifFalse: [ $' ]). + string do: [ :each | + self encodeCharacter: each ]. + writeStream nextPut: (jsonMode ifTrue: [ $" ] ifFalse: [ $' ]). \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/indentedDo..st b/repository/Ston-Core.package/STONWriter.class/instance/indentedDo..st new file mode 100644 index 0000000..c1d5260 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/indentedDo..st @@ -0,0 +1,5 @@ +private +indentedDo: block + level := level + 1. + block value. + level := level - 1 \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/initialize.st b/repository/Ston-Core.package/STONWriter.class/instance/initialize.st new file mode 100644 index 0000000..2ec3d0b --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/initialize.st @@ -0,0 +1,8 @@ +initialize-release +initialize + super initialize. + prettyPrint := false. + level := 0. + referencePolicy := #normal. + jsonMode := false. + objects := IdentityDictionary new \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/isSimpleSymbol..st b/repository/Ston-Core.package/STONWriter.class/instance/isSimpleSymbol..st new file mode 100644 index 0000000..210c539 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/isSimpleSymbol..st @@ -0,0 +1,6 @@ +private +isSimpleSymbol: symbol + ^ (symbol class + findFirstInString: symbol + inSet: STONSimpleSymbolCharacters + startingAt: 1) = 0 \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/jsonMode..st b/repository/Ston-Core.package/STONWriter.class/instance/jsonMode..st new file mode 100644 index 0000000..c9f5e8f --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/jsonMode..st @@ -0,0 +1,3 @@ +initialize-release +jsonMode: boolean + jsonMode := boolean \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/listElementSeparator.st b/repository/Ston-Core.package/STONWriter.class/instance/listElementSeparator.st new file mode 100644 index 0000000..dc535f9 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/listElementSeparator.st @@ -0,0 +1,4 @@ +private +listElementSeparator + writeStream nextPut: $,. + self newlineIndent \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/mapElementSeparator.st b/repository/Ston-Core.package/STONWriter.class/instance/mapElementSeparator.st new file mode 100644 index 0000000..9ecf82a --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/mapElementSeparator.st @@ -0,0 +1,4 @@ +private +mapElementSeparator + writeStream nextPut: $,. + self newlineIndent \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/newlineIndent.st b/repository/Ston-Core.package/STONWriter.class/instance/newlineIndent.st new file mode 100644 index 0000000..c9eee26 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/newlineIndent.st @@ -0,0 +1,5 @@ +private +newlineIndent + prettyPrint ifTrue: [ + writeStream nextPut: Character cr. + level timesRepeat: [ writeStream tab ] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/nextPut..st b/repository/Ston-Core.package/STONWriter.class/instance/nextPut..st new file mode 100644 index 0000000..0c54d65 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/nextPut..st @@ -0,0 +1,3 @@ +public +nextPut: anObject + anObject stonOn: self \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/on..st b/repository/Ston-Core.package/STONWriter.class/instance/on..st new file mode 100644 index 0000000..33fed00 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/on..st @@ -0,0 +1,3 @@ +initialize-release +on: aWriteStream + writeStream := aWriteStream \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/prettyPrint..st b/repository/Ston-Core.package/STONWriter.class/instance/prettyPrint..st new file mode 100644 index 0000000..413ae6e --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/prettyPrint..st @@ -0,0 +1,3 @@ +initialize-release +prettyPrint: boolean + prettyPrint := boolean \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/prettyPrintSpace.st b/repository/Ston-Core.package/STONWriter.class/instance/prettyPrintSpace.st new file mode 100644 index 0000000..2337d16 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/prettyPrintSpace.st @@ -0,0 +1,3 @@ +private +prettyPrintSpace + prettyPrint ifTrue: [ writeStream space ] diff --git a/repository/Ston-Core.package/STONWriter.class/instance/referencePolicy..st b/repository/Ston-Core.package/STONWriter.class/instance/referencePolicy..st new file mode 100644 index 0000000..4b6fd79 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/referencePolicy..st @@ -0,0 +1,4 @@ +initialize-release +referencePolicy: policy + self assert: ( #(normal ignore error) includes: policy ). + referencePolicy := policy \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/reset.st b/repository/Ston-Core.package/STONWriter.class/instance/reset.st new file mode 100644 index 0000000..4e60388 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/reset.st @@ -0,0 +1,3 @@ +initialize-release +reset + objects removeAll \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/shortListElementSeparator.st b/repository/Ston-Core.package/STONWriter.class/instance/shortListElementSeparator.st new file mode 100644 index 0000000..087df60 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/shortListElementSeparator.st @@ -0,0 +1,4 @@ +private +shortListElementSeparator + writeStream nextPut: $,. + self prettyPrintSpace \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/with.do..st b/repository/Ston-Core.package/STONWriter.class/instance/with.do..st new file mode 100644 index 0000000..3b8942a --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/with.do..st @@ -0,0 +1,14 @@ +private +with: object do: block + | index | + referencePolicy = #ignore + ifTrue: [ ^ block value ]. + (index := objects at: object ifAbsent: [ nil ]) notNil + ifTrue: [ + referencePolicy = #error + ifTrue: [ ^ STONWriterError signal: 'Shared reference detected' ]. + self writeReference: index ] + ifFalse: [ + index := objects size + 1. + objects at: object put: index. + block value ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeBoolean..st b/repository/Ston-Core.package/STONWriter.class/instance/writeBoolean..st new file mode 100644 index 0000000..ad9527e --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeBoolean..st @@ -0,0 +1,3 @@ +writing +writeBoolean: boolean + writeStream print: boolean \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeFloat..st b/repository/Ston-Core.package/STONWriter.class/instance/writeFloat..st new file mode 100644 index 0000000..34864d5 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeFloat..st @@ -0,0 +1,3 @@ +writing +writeFloat: float + writeStream print: float \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeInteger..st b/repository/Ston-Core.package/STONWriter.class/instance/writeInteger..st new file mode 100644 index 0000000..cefdfbe --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeInteger..st @@ -0,0 +1,3 @@ +writing +writeInteger: integer + writeStream print: integer \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeList..st b/repository/Ston-Core.package/STONWriter.class/instance/writeList..st new file mode 100644 index 0000000..8641642 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeList..st @@ -0,0 +1,4 @@ +writing +writeList: collection + self with: collection do: [ + self encodeList: collection ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeMap..st b/repository/Ston-Core.package/STONWriter.class/instance/writeMap..st new file mode 100644 index 0000000..d3d0d6f --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeMap..st @@ -0,0 +1,4 @@ +writing +writeMap: hashedCollection + self with: hashedCollection do: [ + self encodeMap: hashedCollection ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeNull.st b/repository/Ston-Core.package/STONWriter.class/instance/writeNull.st new file mode 100644 index 0000000..1c70433 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeNull.st @@ -0,0 +1,5 @@ +writing +writeNull + jsonMode + ifTrue: [ writeStream nextPutAll: 'null' ] + ifFalse: [ writeStream print: nil ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeObject.do..st b/repository/Ston-Core.package/STONWriter.class/instance/writeObject.do..st new file mode 100644 index 0000000..205e0b7 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeObject.do..st @@ -0,0 +1,8 @@ +writing +writeObject: anObject do: block + (jsonMode and: [ anObject class ~= STON listClass and: [ anObject class ~= STON mapClass ] ]) + ifTrue: [ STONWriterError signal: 'Wrong object class for JSON mode' ]. + self with: anObject do: [ + writeStream nextPutAll: anObject class stonName. + self prettyPrintSpace. + block value ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeObject.listSingleton..st b/repository/Ston-Core.package/STONWriter.class/instance/writeObject.listSingleton..st new file mode 100644 index 0000000..067dfd8 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeObject.listSingleton..st @@ -0,0 +1,9 @@ +writing +writeObject: object listSingleton: element + self writeObject: object do: [ + writeStream nextPut: $[. + self + prettyPrintSpace; + nextPut: element; + prettyPrintSpace. + writeStream nextPut: $] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamList..st b/repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamList..st new file mode 100644 index 0000000..8daccd4 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamList..st @@ -0,0 +1,10 @@ +writing +writeObject: object streamList: block + self writeObject: object do: [ | listWriter | + listWriter := STONListWriter on: self. + writeStream nextPut: $[. + self indentedDo: [ + self newlineIndent. + block value: listWriter ]. + self newlineIndent. + writeStream nextPut: $] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamMap..st b/repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamMap..st new file mode 100644 index 0000000..db26d04 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamMap..st @@ -0,0 +1,10 @@ +writing +writeObject: object streamMap: block + self writeObject: object do: [ | mapWriter | + mapWriter := STONMapWriter on: self. + writeStream nextPut: ${. + self indentedDo: [ + self newlineIndent. + block value: mapWriter ]. + self newlineIndent. + writeStream nextPut: $} ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamShortList..st b/repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamShortList..st new file mode 100644 index 0000000..2df9fef --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeObject.streamShortList..st @@ -0,0 +1,10 @@ +writing +writeObject: object streamShortList: block + self writeObject: object do: [ | listWriter | + listWriter := STONShortListWriter on: self. + writeStream nextPut: $[. + self indentedDo: [ + self prettyPrintSpace. + block value: listWriter ]. + self prettyPrintSpace. + writeStream nextPut: $] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeReference..st b/repository/Ston-Core.package/STONWriter.class/instance/writeReference..st new file mode 100644 index 0000000..0c950a4 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeReference..st @@ -0,0 +1,5 @@ +writing +writeReference: index + writeStream + nextPut: $@; + print: index \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeString..st b/repository/Ston-Core.package/STONWriter.class/instance/writeString..st new file mode 100644 index 0000000..e0ad891 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeString..st @@ -0,0 +1,3 @@ +writing +writeString: string + self encodeString: string \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/instance/writeSymbol..st b/repository/Ston-Core.package/STONWriter.class/instance/writeSymbol..st new file mode 100644 index 0000000..f9a1a0c --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/instance/writeSymbol..st @@ -0,0 +1,12 @@ +writing +writeSymbol: symbol + jsonMode + ifTrue: [ + self writeString: symbol ] + ifFalse: [ + writeStream nextPut: $#. + (self isSimpleSymbol: symbol) + ifTrue: [ + writeStream nextPutAll: symbol ] + ifFalse: [ + self encodeString: symbol ] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriter.class/properties.json b/repository/Ston-Core.package/STONWriter.class/properties.json new file mode 100644 index 0000000..cfb02e7 --- /dev/null +++ b/repository/Ston-Core.package/STONWriter.class/properties.json @@ -0,0 +1,22 @@ +{ + "category" : "STON-Core", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + "STONCharacters", + "STONSimpleSymbolCharacters" ], + "commentStamp" : "SvenVanCaekenberghe 4/27/2012 14:08", + "instvars" : [ + "writeStream", + "prettyPrint", + "jsonMode", + "referencePolicy", + "level", + "objects" ], + "name" : "STONWriter", + "pools" : [ + ], + "super" : "Object", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Core.package/STONWriterError.class/README.md b/repository/Ston-Core.package/STONWriterError.class/README.md new file mode 100644 index 0000000..b920c00 --- /dev/null +++ b/repository/Ston-Core.package/STONWriterError.class/README.md @@ -0,0 +1 @@ +STONWriterError is the error/exception signalled by STONWriter when illegal/incorrect input is seen. \ No newline at end of file diff --git a/repository/Ston-Core.package/STONWriterError.class/properties.json b/repository/Ston-Core.package/STONWriterError.class/properties.json new file mode 100644 index 0000000..c363943 --- /dev/null +++ b/repository/Ston-Core.package/STONWriterError.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Core", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "SvenVanCaekenberghe 4/26/2012 17:17", + "instvars" : [ + ], + "name" : "STONWriterError", + "pools" : [ + ], + "super" : "Error", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Core.package/SequenceableCollection.extension/class/fromSton..st b/repository/Ston-Core.package/SequenceableCollection.extension/class/fromSton..st new file mode 100644 index 0000000..034e0a2 --- /dev/null +++ b/repository/Ston-Core.package/SequenceableCollection.extension/class/fromSton..st @@ -0,0 +1,5 @@ +*ston-core +fromSton: stonReader + ^ self streamContents: [ :stream | + stonReader parseListDo: [ :each | + stream nextPut: each ] ] \ No newline at end of file diff --git a/repository/Ston-Core.package/SequenceableCollection.extension/instance/stonOn..st b/repository/Ston-Core.package/SequenceableCollection.extension/instance/stonOn..st new file mode 100644 index 0000000..4f3b1b8 --- /dev/null +++ b/repository/Ston-Core.package/SequenceableCollection.extension/instance/stonOn..st @@ -0,0 +1,5 @@ +*ston-core +stonOn: stonWriter + self class == STON listClass + ifTrue: [ stonWriter writeList: self ] + ifFalse: [ super stonOn: stonWriter ] \ No newline at end of file diff --git a/repository/Ston-Core.package/SequenceableCollection.extension/properties.json b/repository/Ston-Core.package/SequenceableCollection.extension/properties.json new file mode 100644 index 0000000..3b2523c --- /dev/null +++ b/repository/Ston-Core.package/SequenceableCollection.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "SequenceableCollection" } diff --git a/repository/Ston-Core.package/String.extension/instance/stonOn..st b/repository/Ston-Core.package/String.extension/instance/stonOn..st new file mode 100644 index 0000000..b731441 --- /dev/null +++ b/repository/Ston-Core.package/String.extension/instance/stonOn..st @@ -0,0 +1,3 @@ +*ston-core +stonOn: stonWriter + stonWriter writeString: self \ No newline at end of file diff --git a/repository/Ston-Core.package/String.extension/instance/stonProcessSubObjects..st b/repository/Ston-Core.package/String.extension/instance/stonProcessSubObjects..st new file mode 100644 index 0000000..e291dc9 --- /dev/null +++ b/repository/Ston-Core.package/String.extension/instance/stonProcessSubObjects..st @@ -0,0 +1,2 @@ +*ston-core +stonProcessSubObjects: block \ No newline at end of file diff --git a/repository/Ston-Core.package/String.extension/properties.json b/repository/Ston-Core.package/String.extension/properties.json new file mode 100644 index 0000000..c213850 --- /dev/null +++ b/repository/Ston-Core.package/String.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "String" } diff --git a/repository/Ston-Core.package/Symbol.extension/instance/stonOn..st b/repository/Ston-Core.package/Symbol.extension/instance/stonOn..st new file mode 100644 index 0000000..bc6e1a7 --- /dev/null +++ b/repository/Ston-Core.package/Symbol.extension/instance/stonOn..st @@ -0,0 +1,3 @@ +*ston-core +stonOn: stonWriter + stonWriter writeSymbol: self \ No newline at end of file diff --git a/repository/Ston-Core.package/Symbol.extension/properties.json b/repository/Ston-Core.package/Symbol.extension/properties.json new file mode 100644 index 0000000..565e67b --- /dev/null +++ b/repository/Ston-Core.package/Symbol.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Symbol" } diff --git a/repository/Ston-Core.package/Time.extension/class/fromSton..st b/repository/Ston-Core.package/Time.extension/class/fromSton..st new file mode 100644 index 0000000..87f37a9 --- /dev/null +++ b/repository/Ston-Core.package/Time.extension/class/fromSton..st @@ -0,0 +1,3 @@ +*ston-core +fromSton: stonReader + ^ self readFrom: stonReader parseListSingleton readStream \ No newline at end of file diff --git a/repository/Ston-Core.package/Time.extension/instance/stonOn..st b/repository/Ston-Core.package/Time.extension/instance/stonOn..st new file mode 100644 index 0000000..400a19a --- /dev/null +++ b/repository/Ston-Core.package/Time.extension/instance/stonOn..st @@ -0,0 +1,7 @@ +*ston-core +stonOn: stonWriter + "Use an ISO style HH:MM:SS representation" + + stonWriter writeObject: self listSingleton: + (String streamContents: [ :stream | + self print24: true on: stream ]) \ No newline at end of file diff --git a/repository/Ston-Core.package/Time.extension/instance/stonProcessSubObjects..st b/repository/Ston-Core.package/Time.extension/instance/stonProcessSubObjects..st new file mode 100644 index 0000000..e291dc9 --- /dev/null +++ b/repository/Ston-Core.package/Time.extension/instance/stonProcessSubObjects..st @@ -0,0 +1,2 @@ +*ston-core +stonProcessSubObjects: block \ No newline at end of file diff --git a/repository/Ston-Core.package/Time.extension/properties.json b/repository/Ston-Core.package/Time.extension/properties.json new file mode 100644 index 0000000..7f76e6f --- /dev/null +++ b/repository/Ston-Core.package/Time.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Time" } diff --git a/repository/Ston-Core.package/TimeStamp.extension/class/fromSton..st b/repository/Ston-Core.package/TimeStamp.extension/class/fromSton..st new file mode 100644 index 0000000..f521d71 --- /dev/null +++ b/repository/Ston-Core.package/TimeStamp.extension/class/fromSton..st @@ -0,0 +1,5 @@ +*ston-core +fromSton: stonReader + "We use a representation from DateAndTime" + + ^ (super fromSton: stonReader) asTimeStamp \ No newline at end of file diff --git a/repository/Ston-Core.package/TimeStamp.extension/properties.json b/repository/Ston-Core.package/TimeStamp.extension/properties.json new file mode 100644 index 0000000..f04cbf2 --- /dev/null +++ b/repository/Ston-Core.package/TimeStamp.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "TimeStamp" } diff --git a/repository/Ston-Core.package/UndefinedObject.extension/instance/stonOn..st b/repository/Ston-Core.package/UndefinedObject.extension/instance/stonOn..st new file mode 100644 index 0000000..a2bcc47 --- /dev/null +++ b/repository/Ston-Core.package/UndefinedObject.extension/instance/stonOn..st @@ -0,0 +1,3 @@ +*ston-core +stonOn: stonWriter + stonWriter writeNull \ No newline at end of file diff --git a/repository/Ston-Core.package/UndefinedObject.extension/instance/stonProcessSubObjects..st b/repository/Ston-Core.package/UndefinedObject.extension/instance/stonProcessSubObjects..st new file mode 100644 index 0000000..e291dc9 --- /dev/null +++ b/repository/Ston-Core.package/UndefinedObject.extension/instance/stonProcessSubObjects..st @@ -0,0 +1,2 @@ +*ston-core +stonProcessSubObjects: block \ No newline at end of file diff --git a/repository/Ston-Core.package/UndefinedObject.extension/properties.json b/repository/Ston-Core.package/UndefinedObject.extension/properties.json new file mode 100644 index 0000000..508a24a --- /dev/null +++ b/repository/Ston-Core.package/UndefinedObject.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "UndefinedObject" } diff --git a/repository/Ston-Core.package/monticello.meta/categories.st b/repository/Ston-Core.package/monticello.meta/categories.st new file mode 100644 index 0000000..ca39fc1 --- /dev/null +++ b/repository/Ston-Core.package/monticello.meta/categories.st @@ -0,0 +1 @@ +SystemOrganization addCategory: #'STON-Core'! diff --git a/repository/Ston-Core.package/monticello.meta/initializers.st b/repository/Ston-Core.package/monticello.meta/initializers.st new file mode 100644 index 0000000..e69de29 diff --git a/repository/Ston-Core.package/monticello.meta/package b/repository/Ston-Core.package/monticello.meta/package new file mode 100644 index 0000000..293271e --- /dev/null +++ b/repository/Ston-Core.package/monticello.meta/package @@ -0,0 +1 @@ +(name 'Ston-Core') \ No newline at end of file diff --git a/repository/Ston-Core.package/monticello.meta/version b/repository/Ston-Core.package/monticello.meta/version new file mode 100644 index 0000000..f8601a1 --- /dev/null +++ b/repository/Ston-Core.package/monticello.meta/version @@ -0,0 +1 @@ +(name 'Ston-Core-SvenVanCaekenberghe.29' message 'added an internal optimalization to STONReader: by tracking unresolved references while parsing, it should be possible to avoid processing all subobjects after parsing' id 'da09472b-ff70-46e4-9896-a661d0c3e7a0' date '27 April 2012' time '8:48:21 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.28' message 'improved JSON backwards compatibility: - STONReader>>parseValue now accepts null as well as nil - STONWriter now has a jsonMode switch as well as referencePolicy' id '30ef0a69-9fcb-4405-bf1e-8896eaad0a92' date '27 April 2012' time '2:24:51 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.27' message 'extended the parser to allow either single or double quotes as String delimiters which gives us JSON backward compatibilty ! (thanks Dale Henrichs for this great idea).' id 'dd7c16b2-950c-4246-bf60-130de447cddf' date '24 April 2012' time '10:13:07 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.26' message 'changed String from being treated as regular shareable objects to primitive non-shareable objecst (like symbols)' id '625ef901-63d3-45e4-aae8-0e6e45d0a17a' date '29 February 2012' time '9:55 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.25' message 'fixed a bug with simple symbol encoding' id '44044c81-1442-4b76-a859-dad8d1a20e89' date '14 February 2012' time '5:54:32 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.24' message 'small patch to #parseReference' id 'b34aa232-b13d-4229-900f-11299f7e4b2f' date '13 February 2012' time '10:19:58 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.23' message 'added comments to key methods at Object and Class level introduced STONWriter>>#writeObject:listSingleton:' id 'af63b9b7-b353-4ee5-8051-2b8a9c3c7470' date '12 February 2012' time '8:10:17 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.22' message 'various refactoring & cleanup' id 'dc815ef3-cd2e-4902-997d-b0cff2de3d4e' date '12 February 2012' time '7:32:13 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.21' message 'listening to code critics' id '1f2538e9-bca1-4664-8829-fda4b88d1f13' date '12 February 2012' time '4:02:53 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.20' message 'refactored #fromSton: to accept an STONReader instance as argument and call either #parseListDo: or #parseMapDo: added new shortcut #parseListSingleton moved code from HashedCollection back to Dictionary, implemented map encoding for all Dictionary subclasses, added #fromSton: to Dictionary to accept map now using #streamContents: for all SequenceableCollection subclasses' id '31c9ddcb-7917-4eac-98d7-31a4f565f778' date '12 February 2012' time '3:32:50 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.19' message 'added a mechanism to allow renaming classes, see #stonClass' id 'aea34a58-1174-479c-9db0-fb3310927967' date '12 February 2012' time '10:24:02 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.18' message 'first optimizations: faster character classification, reusable string stream while reading strings, symbols and class names' id 'c959398b-8d4c-49e5-a1e0-43b3d158e305' date '10 February 2012' time '8:38:45 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.17' message 'implemented generic Collection serialization' id '7189db52-c5ba-472a-8e74-3b2eb1970d69' date '8 February 2012' time '9:09:15 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.16' message 'added support for Character' id '8ad36126-e4bc-42da-bfa5-520550a3f2d8' date '8 February 2012' time '3:10:24 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.15' message 'fixed Object>>#stonOn: to use #allInstVarNames; refactored STONWriter>>#encodeString: with extracted #encodeCharacter:' id '7f3d2584-b397-411b-9886-1a1ea135a261' date '8 February 2012' time '2:53:23 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.14' message 'implemented generic #stonProcessSubObjects: at the Object level; implemented generic #toSton: and #fromSton: at the Object level; added generic Object class>>#fromSton: and simplified #parseObject' id '077fc63e-e5fe-4645-a40c-564cd5d48f4f' date '8 February 2012' time '9:08:16 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.13' message 'introduced STONReaderError' id '51cabecf-e854-4e39-9140-fc9f64b77c61' date '24 January 2012' time '10:49:51 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.12' message 'introduction of STON class; renamed array -> list and dictionary -> map' id '09f81db8-0261-4aef-a239-783035e6364b' date '24 January 2012' time '10:13:34 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.11' message 'introduced streaming encoding with STONWriter>>#writeObject:stream[ShortArray|Array|Dictionary]:' id 'e2c79a6e-96d5-4038-8e48-da0153a61cfa' date '23 January 2012' time '5:02:15 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.10' message 'moved some methods on STONTestUser from Ston-Core to Ston-Tests' id '37790927-a6b6-4758-80f7-b312b5efd1e7' date '23 January 2012' time '2:32:21 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.9' message 'debugged pretty printed output parsing; added support for OrderedCollection; changed pretty printing to write closing tags on a new line' id '51db4eb5-a0e4-407c-84d7-f1c9077cdc69' date '23 January 2012' time '12:33:48 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.8' message 'added pretty printing to STONWriter; introduced STONWriter>>#encodeShortArray:' id 'fe506e59-3842-4214-ba53-27e58d4d062a' date '23 January 2012' time '11:54 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.7' message 'added Time and Date support' id '66bf47c8-270b-4108-9b4f-d4c06245a701' date '23 January 2012' time '9:54:09 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.6' message 'all unit tests pass; added ByteArray and DateAndTime/TimeStamp serialization/materialization' id '7622b8d5-65c9-4f70-bbd1-dc747e20b9b0' date '19 January 2012' time '10:52:07 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.5' message 'first working version, except ByteArray materialize' id 'fac82cee-be20-4e6f-95fc-40fc92efcc92' date '18 January 2012' time '9:56:11 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.4' message 'tmp checkin; start with STONReference' id '44703435-d1fe-4074-9817-8f6197da073f' date '18 January 2012' time '7:57:26 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.3' message 'first implementation of Objects and shared references; problems with cycle references' id 'f78218b6-334d-4603-9ac9-3d412410ce1c' date '17 January 2012' time '10:17:47 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.2' message 'some minor cleanup' id 'e627ecd0-cb85-4c8e-9558-51ceb8ae7e28' date '17 January 2012' time '7:35:56 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Core-SvenVanCaekenberghe.1' message 'basic code working, except full objects and references' id '2980ed1b-f650-4b9d-b180-9cdee7bbf21a' date '16 January 2012' time '1:46:59 pm' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/Ston-Core.package/properties.json b/repository/Ston-Core.package/properties.json new file mode 100644 index 0000000..f037444 --- /dev/null +++ b/repository/Ston-Core.package/properties.json @@ -0,0 +1,2 @@ +{ + } diff --git a/repository/Ston-Tests.package/.filetree b/repository/Ston-Tests.package/.filetree new file mode 100644 index 0000000..8998102 --- /dev/null +++ b/repository/Ston-Tests.package/.filetree @@ -0,0 +1,4 @@ +{ + "noMethodMetaData" : true, + "separateMethodMetaAndSource" : false, + "useCypressPropertiesFile" : true } diff --git a/repository/Ston-Tests.package/STONReaderTests.class/README.md b/repository/Ston-Tests.package/STONReaderTests.class/README.md new file mode 100644 index 0000000..56e3864 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/README.md @@ -0,0 +1 @@ +STONReaderTests test materialization. diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/materialize..st b/repository/Ston-Tests.package/STONReaderTests.class/instance/materialize..st new file mode 100644 index 0000000..0b367f1 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/materialize..st @@ -0,0 +1,3 @@ +private +materialize: string + ^ (STONReader on: string readStream) next \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testBoolean.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testBoolean.st new file mode 100644 index 0000000..7b9fc38 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testBoolean.st @@ -0,0 +1,4 @@ +tests +testBoolean + self assert: (self materialize: 'true') = true. + self assert: (self materialize: 'false') = false \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testByteArray.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testByteArray.st new file mode 100644 index 0000000..a9448e7 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testByteArray.st @@ -0,0 +1,3 @@ +tests +testByteArray + self assert: (self materialize: 'ByteArray[''010203'']') = #[1 2 3] \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testCharacter.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testCharacter.st new file mode 100644 index 0000000..5160d4a --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testCharacter.st @@ -0,0 +1,3 @@ +tests +testCharacter + self assert: (self materialize: 'Character[''A'']') == $A. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testDate.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testDate.st new file mode 100644 index 0000000..5e387b2 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testDate.st @@ -0,0 +1,5 @@ +tests +testDate + | date | + date := Date year: 2012 month: 1 day: 1. + self assert: (self materialize: 'Date[''2012-01-01'']') = date \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testDateAndTime.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testDateAndTime.st new file mode 100644 index 0000000..2f3ff9f --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testDateAndTime.st @@ -0,0 +1,5 @@ +tests +testDateAndTime + | dateAndTime | + dateAndTime := DateAndTime year: 2012 month: 1 day: 1 hour: 6 minute: 30 second: 15 offset: 1 hour. + self assert: (self materialize: 'DateAndTime[''2012-01-01T06:30:15+01:00'']') = dateAndTime \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testError.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testError.st new file mode 100644 index 0000000..9a55b8d --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testError.st @@ -0,0 +1,9 @@ +tests +testError + self should: [ STON fromString: 'foo' ] raise: STONReaderError. + self should: [ STON fromString: '{foo:}' ] raise: STONReaderError. + self should: [ STON fromString: '{foo,}' ] raise: STONReaderError. + self should: [ STON fromString: '[1,]' ] raise: STONReaderError. + self should: [ STON fromString: '+1' ] raise: STONReaderError. + self should: [ STON fromString: ']' ] raise: STONReaderError. + self should: [ STON fromString: '#' ] raise: STONReaderError \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testFloat.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testFloat.st new file mode 100644 index 0000000..59a79ed --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testFloat.st @@ -0,0 +1,10 @@ +tests +testFloat + self assert: (self materialize: '1.5') = 1.5. + self assert: (self materialize: '-1.5') = -1.5. + self assert: (self materialize: '0.0') = 0.0. + self assert: (Float pi closeTo: (self materialize: '3.14149')). + self assert: (1/3 closeTo: (self materialize: '0.333333')). + self assert: (self materialize: '1.0e100') = (10 raisedTo: 100) asFloat. + self assert: (self materialize: '1.0e-100') = (10 raisedTo: -100) asFloat. + self assert: (self materialize: '-1.0e-100') = (10 raisedTo: -100) asFloat negated. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testInteger.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testInteger.st new file mode 100644 index 0000000..2c35095 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testInteger.st @@ -0,0 +1,7 @@ +tests +testInteger + self assert: (self materialize: '1') = 1. + self assert: (self materialize: '-1') = -1. + self assert: (self materialize: '0') = 0. + self assert: (self materialize: '1234567890') = 1234567890. + self assert: (self materialize: '-1234567890') = -1234567890 \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testJsonString.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testJsonString.st new file mode 100644 index 0000000..5c01318 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testJsonString.st @@ -0,0 +1,12 @@ +tests +testJsonString + "Allow double quotes for backwards JSON compatibility" + + | string | + self assert: (self materialize: '"foo"') = 'foo'. + self assert: (self materialize: '"FOO"') = 'FOO'. + self assert: (self materialize: '"\u00E9l\u00E8ve en Fran\u00E7ais"') = 'élève en Français'. + self assert: (self materialize: '"foo\rbar"') = 'foo\bar' withCRs. + string := String withAll: { + $". $'. $\. Character tab. Character cr. Character lf. Character newPage. Character backspace }. + self assert: (self materialize: '"\"\''\\\t\r\n\f\b"') = string. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testList.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testList.st new file mode 100644 index 0000000..617da80 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testList.st @@ -0,0 +1,5 @@ +tests +testList + | string | + self assert: (self materialize: '[1,2,3]') = #(1 2 3). + self assert: (self materialize: '[]') = #() \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testMap.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testMap.st new file mode 100644 index 0000000..abd3226 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testMap.st @@ -0,0 +1,5 @@ +tests +testMap + | string | + self assert: (self materialize: '{#foo:1}') = (Dictionary new at: #foo put: 1; yourself). + self assert: (self materialize: '{}') = Dictionary new \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testNewSymbol.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testNewSymbol.st new file mode 100644 index 0000000..e6b1c95 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testNewSymbol.st @@ -0,0 +1,11 @@ +tests +testNewSymbol + | n notASymbol shouldBeSymbol | + + "Find a name that has not yet been interned" + n := 0. + [ Symbol hasInterned: (notASymbol := 'notASymbol', n printString) ifTrue: [ :symbol | symbol ] ] + whileTrue: [ n := n + 1 ]. + "Parsing the new, not yet interned name should create a new Symbol" + shouldBeSymbol := self materialize: '#', notASymbol. + self assert: (shouldBeSymbol isSymbol and: [ notASymbol = shouldBeSymbol ]) diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testNil.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testNil.st new file mode 100644 index 0000000..1e77866 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testNil.st @@ -0,0 +1,3 @@ +tests +testNil + self assert: (self materialize: 'nil') = nil \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testNull.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testNull.st new file mode 100644 index 0000000..a953f51 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testNull.st @@ -0,0 +1,3 @@ +tests +testNull + self assert: (self materialize: 'null') = nil \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testObject.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testObject.st new file mode 100644 index 0000000..e8e5be2 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testObject.st @@ -0,0 +1,4 @@ +tests +testObject + self assert: (self materialize: 'Point[1,2]') = (1@2). + self assert: (self materialize: 'Point[1.5,-0.5]') = (1.5 @ -0.5). \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testOrderedCollection.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testOrderedCollection.st new file mode 100644 index 0000000..679727d --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testOrderedCollection.st @@ -0,0 +1,6 @@ +tests +testOrderedCollection + | collection | + collection := OrderedCollection with: 1 with: 2 with: 3. + self assert: (self materialize: 'OrderedCollection[1,2,3]') = collection. + self assert: (self materialize: 'OrderedCollection[]') = OrderedCollection new. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testPoint.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testPoint.st new file mode 100644 index 0000000..23f72e3 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testPoint.st @@ -0,0 +1,3 @@ +tests +testPoint + self assert: (self materialize: 'Point[1,2]') = (1@2) \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testReferenceCycle.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testReferenceCycle.st new file mode 100644 index 0000000..ad5d406 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testReferenceCycle.st @@ -0,0 +1,8 @@ +tests +testReferenceCycle + | array | + array := (self materialize: '[1,@1]'). + self assert: array isArray. + self assert: array size = 2. + self assert: array first = 1. + self assert: array second == array \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testReferenceSharing.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testReferenceSharing.st new file mode 100644 index 0000000..d8b9fa4 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testReferenceSharing.st @@ -0,0 +1,8 @@ +tests +testReferenceSharing + | one array | + one := { #one }. + array := (self materialize: '[[#one],@2,@2]'). + self assert: array = { one. one. one }. + self assert: array first == array second. + self assert: array first == array third \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testString.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testString.st new file mode 100644 index 0000000..cde8b47 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testString.st @@ -0,0 +1,10 @@ +tests +testString + | string | + self assert: (self materialize: '''foo''') = 'foo'. + self assert: (self materialize: '''FOO''') = 'FOO'. + self assert: (self materialize: '''\u00E9l\u00E8ve en Fran\u00E7ais''') = 'élève en Français'. + self assert: (self materialize: '''foo\rbar''') = 'foo\bar' withCRs. + string := String withAll: { + $". $'. $\. Character tab. Character cr. Character lf. Character newPage. Character backspace }. + self assert: (self materialize: '''\"\''\\\t\r\n\f\b''') = string. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testSymbol.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testSymbol.st new file mode 100644 index 0000000..3aabdc9 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testSymbol.st @@ -0,0 +1,5 @@ +tests +testSymbol + | string | + self assert: (self materialize: '#''foo''') = #foo. + self assert: (self materialize: '#foo') = #foo \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testTime.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testTime.st new file mode 100644 index 0000000..ff8fe0c --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testTime.st @@ -0,0 +1,7 @@ +tests +testTime + | time | + time := Time hour: 6 minute: 30 second: 15. + self assert: (self materialize: 'Time[''06:30:15'']') = time. + time := Time hour: 6 minute: 30 second: 15 nanoSecond: 1. + self assert: (self materialize: 'Time[''06:30:15.000000001'']') = time \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testTimeStamp.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testTimeStamp.st new file mode 100644 index 0000000..8e70d15 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testTimeStamp.st @@ -0,0 +1,5 @@ +tests +testTimeStamp + | timeStamp | + timeStamp := TimeStamp year: 2012 month: 1 day: 1 hour: 6 minute: 30 second: 15 offset: 1 hour. + self assert: (self materialize: 'TimeStamp[''2012-01-01T06:30:15+01:00'']') = timeStamp \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testUser.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testUser.st new file mode 100644 index 0000000..10c2bf9 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testUser.st @@ -0,0 +1,7 @@ +tests +testUser + | user | + (user := STONTestUser new) + username: 'john@foo.com'; + password: 'secret1'. + self assert: (self materialize: 'STONTestUser{#username:''john@foo.com'',#password:''secret1'',#enabled:true}') = user \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/instance/testUser2.st b/repository/Ston-Tests.package/STONReaderTests.class/instance/testUser2.st new file mode 100644 index 0000000..6357130 --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/instance/testUser2.st @@ -0,0 +1,7 @@ +tests +testUser2 + | user | + (user := STONTestUser2 new) + username: 'john@foo.com'; + password: 'secret1'. + self assert: (self materialize: 'STONTestUser2{#username:''john@foo.com'',#password:''secret1'',#enabled:true}') = user \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONReaderTests.class/properties.json b/repository/Ston-Tests.package/STONReaderTests.class/properties.json new file mode 100644 index 0000000..1f5419f --- /dev/null +++ b/repository/Ston-Tests.package/STONReaderTests.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Tests", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "SvenVanCaekenberghe 1/22/2012 20:14", + "instvars" : [ + ], + "name" : "STONReaderTests", + "pools" : [ + ], + "super" : "TestCase", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/README.md b/repository/Ston-Tests.package/STONTestDomainObject.class/README.md new file mode 100644 index 0000000..517de56 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/README.md @@ -0,0 +1,12 @@ +STONTestDomainObject is used to support unit tests. + +Instance Variables + boolean: + bytes: + color: + created: + description: + float: + integer: + modified: + tags: \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/class/dummy.st b/repository/Ston-Tests.package/STONTestDomainObject.class/class/dummy.st new file mode 100644 index 0000000..ce83232 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/class/dummy.st @@ -0,0 +1,11 @@ +instance creation +dummy + ^ self new + integer: 999999 atRandom; + float: 999 atRandom / Float pi; + boolean: #(true false) atRandom; + bytes: (ByteArray streamContents: [ :out | 32 timesRepeat: [ out nextPut: 255 atRandom ] ]); + description: (String streamContents: [ :out | 16 atRandom timesRepeat: [ out nextPutAll: 'Blah' ] ]); + color: #(red green blue) atRandom; + tags: { #(one two three) atRandom. #(alpha beta gamma) atRandom. #(low medium high) atRandom. }; + yourself diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/class/stonName.st b/repository/Ston-Tests.package/STONTestDomainObject.class/class/stonName.st new file mode 100644 index 0000000..a1f4482 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/class/stonName.st @@ -0,0 +1,3 @@ +ston-core +stonName + ^ #TestDomainObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/^equals.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/^equals.st new file mode 100644 index 0000000..56e43d0 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/^equals.st @@ -0,0 +1,18 @@ +comparing += anObject + "Answer whether the receiver and anObject represent the same object." + + self == anObject + ifTrue: [ ^ true ]. + self class = anObject class + ifFalse: [ ^ false ]. + ^ color = anObject color + and: [ + modified = anObject modified + and: [ + created = anObject created + and: [ + description = anObject description + and: [ + boolean = anObject boolean + and: [ float = anObject float and: [ bytes = anObject bytes and: [ integer = anObject integer and: [ tags = anObject tags ] ] ] ] ] ] ] ] \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/boolean..st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/boolean..st new file mode 100644 index 0000000..399e58c --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/boolean..st @@ -0,0 +1,3 @@ +accessing +boolean: anObject + boolean := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/boolean.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/boolean.st new file mode 100644 index 0000000..11f724e --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/boolean.st @@ -0,0 +1,3 @@ +accessing +boolean + ^ boolean \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/bytes..st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/bytes..st new file mode 100644 index 0000000..f826f34 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/bytes..st @@ -0,0 +1,3 @@ +accessing +bytes: anObject + bytes := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/bytes.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/bytes.st new file mode 100644 index 0000000..85d9bfa --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/bytes.st @@ -0,0 +1,3 @@ +accessing +bytes + ^ bytes \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/color..st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/color..st new file mode 100644 index 0000000..5030631 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/color..st @@ -0,0 +1,3 @@ +accessing +color: anObject + color := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/color.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/color.st new file mode 100644 index 0000000..b4464aa --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/color.st @@ -0,0 +1,3 @@ +accessing +color + ^ color \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/created..st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/created..st new file mode 100644 index 0000000..4a1b51f --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/created..st @@ -0,0 +1,3 @@ +accessing +created: anObject + created := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/created.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/created.st new file mode 100644 index 0000000..dd73b5c --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/created.st @@ -0,0 +1,3 @@ +accessing +created + ^ created \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/description..st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/description..st new file mode 100644 index 0000000..24c97be --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/description..st @@ -0,0 +1,3 @@ +accessing +description: anObject + description := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/description.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/description.st new file mode 100644 index 0000000..c5ddede --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/description.st @@ -0,0 +1,3 @@ +accessing +description + ^ description \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/float..st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/float..st new file mode 100644 index 0000000..bccc2b2 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/float..st @@ -0,0 +1,3 @@ +accessing +float: anObject + float := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/float.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/float.st new file mode 100644 index 0000000..df8857e --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/float.st @@ -0,0 +1,3 @@ +accessing +float + ^ float \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/hash.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/hash.st new file mode 100644 index 0000000..f818cd7 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/hash.st @@ -0,0 +1,12 @@ +comparing +hash + "Answer an integer value that is related to the identity of the receiver." + + ^ color hash + bitXor: + (modified hash + bitXor: + (created hash + bitXor: + (description hash + bitXor: (boolean hash bitXor: (float hash bitXor: (bytes hash bitXor: (integer hash bitXor: tags hash))))))) \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/initialize.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/initialize.st new file mode 100644 index 0000000..41a5493 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/initialize.st @@ -0,0 +1,3 @@ +initialize-release +initialize + created := modified := DateAndTime now. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/integer..st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/integer..st new file mode 100644 index 0000000..27ce006 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/integer..st @@ -0,0 +1,3 @@ +accessing +integer: anObject + integer := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/integer.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/integer.st new file mode 100644 index 0000000..6565ca6 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/integer.st @@ -0,0 +1,3 @@ +accessing +integer + ^ integer \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/modified..st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/modified..st new file mode 100644 index 0000000..5a444c4 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/modified..st @@ -0,0 +1,3 @@ +accessing +modified: anObject + modified := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/modified.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/modified.st new file mode 100644 index 0000000..03bca2b --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/modified.st @@ -0,0 +1,3 @@ +accessing +modified + ^ modified \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/tags..st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/tags..st new file mode 100644 index 0000000..99e5e2e --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/tags..st @@ -0,0 +1,3 @@ +accessing +tags: anObject + tags := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/instance/tags.st b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/tags.st new file mode 100644 index 0000000..f57c23b --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/instance/tags.st @@ -0,0 +1,3 @@ +accessing +tags + ^ tags \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestDomainObject.class/properties.json b/repository/Ston-Tests.package/STONTestDomainObject.class/properties.json new file mode 100644 index 0000000..2648080 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestDomainObject.class/properties.json @@ -0,0 +1,24 @@ +{ + "category" : "STON-Tests", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "SvenVanCaekenberghe 2/10/2012 20:25", + "instvars" : [ + "created", + "modified", + "integer", + "float", + "description", + "color", + "tags", + "bytes", + "boolean" ], + "name" : "STONTestDomainObject", + "pools" : [ + ], + "super" : "Object", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Tests.package/STONTestUser.class/README.md b/repository/Ston-Tests.package/STONTestUser.class/README.md new file mode 100644 index 0000000..4036d2f --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/README.md @@ -0,0 +1,6 @@ +STONTestUser is used to support unit tests. + +Instance Variables + enabled: + password: + username: diff --git a/repository/Ston-Tests.package/STONTestUser.class/class/dummy.st b/repository/Ston-Tests.package/STONTestUser.class/class/dummy.st new file mode 100644 index 0000000..39928b0 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/class/dummy.st @@ -0,0 +1,13 @@ +instance creation +dummy + "self dummy" + + | username password | + username := String streamContents: [ :stream | + stream << 'user'; print: 999 atRandom; << '@company'; print: 99 atRandom; << '.com' ]. + password := String streamContents: [ :stream | + stream << 'secret'; print: 999 atRandom ]. + ^ self new + username: username; + password: password; + yourself \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser.class/class/stonName.st b/repository/Ston-Tests.package/STONTestUser.class/class/stonName.st new file mode 100644 index 0000000..1a5b535 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/class/stonName.st @@ -0,0 +1,3 @@ +ston-core +stonName + ^ #TestUser \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser.class/instance/^equals.st b/repository/Ston-Tests.package/STONTestUser.class/instance/^equals.st new file mode 100644 index 0000000..bc09389 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/instance/^equals.st @@ -0,0 +1,9 @@ +comparing += anObject + "Answer whether the receiver and anObject represent the same object." + + self == anObject + ifTrue: [ ^ true ]. + self class = anObject class + ifFalse: [ ^ false ]. + ^ username = anObject username and: [ password = anObject password and: [ enabled = anObject enabled ] ] \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser.class/instance/enabled..st b/repository/Ston-Tests.package/STONTestUser.class/instance/enabled..st new file mode 100644 index 0000000..e39b02d --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/instance/enabled..st @@ -0,0 +1,3 @@ +accessing +enabled: anObject + enabled := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser.class/instance/enabled.st b/repository/Ston-Tests.package/STONTestUser.class/instance/enabled.st new file mode 100644 index 0000000..3f80626 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/instance/enabled.st @@ -0,0 +1,3 @@ +accessing +enabled + ^ enabled \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser.class/instance/hash.st b/repository/Ston-Tests.package/STONTestUser.class/instance/hash.st new file mode 100644 index 0000000..986c68b --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/instance/hash.st @@ -0,0 +1,5 @@ +comparing +hash + "Answer an integer value that is related to the identity of the receiver." + + ^ username hash bitXor: (password hash bitXor: enabled hash) \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser.class/instance/initialize.st b/repository/Ston-Tests.package/STONTestUser.class/instance/initialize.st new file mode 100644 index 0000000..cda01e3 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/instance/initialize.st @@ -0,0 +1,4 @@ +initialize-release +initialize + super initialize. + enabled := true \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser.class/instance/password..st b/repository/Ston-Tests.package/STONTestUser.class/instance/password..st new file mode 100644 index 0000000..4c9eab6 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/instance/password..st @@ -0,0 +1,3 @@ +accessing +password: anObject + password := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser.class/instance/password.st b/repository/Ston-Tests.package/STONTestUser.class/instance/password.st new file mode 100644 index 0000000..494767e --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/instance/password.st @@ -0,0 +1,3 @@ +accessing +password + ^ password \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser.class/instance/username..st b/repository/Ston-Tests.package/STONTestUser.class/instance/username..st new file mode 100644 index 0000000..b86b782 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/instance/username..st @@ -0,0 +1,3 @@ +accessing +username: anObject + username := anObject \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser.class/instance/username.st b/repository/Ston-Tests.package/STONTestUser.class/instance/username.st new file mode 100644 index 0000000..3c228b2 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/instance/username.st @@ -0,0 +1,3 @@ +accessing +username + ^ username \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser.class/properties.json b/repository/Ston-Tests.package/STONTestUser.class/properties.json new file mode 100644 index 0000000..d323388 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser.class/properties.json @@ -0,0 +1,18 @@ +{ + "category" : "STON-Tests", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "username", + "password", + "enabled" ], + "name" : "STONTestUser", + "pools" : [ + ], + "super" : "Object", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Tests.package/STONTestUser2.class/README.md b/repository/Ston-Tests.package/STONTestUser2.class/README.md new file mode 100644 index 0000000..b491cc8 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser2.class/README.md @@ -0,0 +1 @@ +STONTestUser2 extends STONTestUser with explicit implementations of #fromSton: and #stonOn: \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser2.class/class/stonName.st b/repository/Ston-Tests.package/STONTestUser2.class/class/stonName.st new file mode 100644 index 0000000..b7c911f --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser2.class/class/stonName.st @@ -0,0 +1,3 @@ +ston-core +stonName + ^ #TestUser2 \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser2.class/instance/fromSton..st b/repository/Ston-Tests.package/STONTestUser2.class/instance/fromSton..st new file mode 100644 index 0000000..7128d61 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser2.class/instance/fromSton..st @@ -0,0 +1,7 @@ +ston-core +fromSton: stonReader + stonReader parseMapDo: [ :key :value | + key = #username ifTrue: [ username := value ]. + key = #password ifTrue: [ password := value ]. + key = #enabled ifTrue: [ enabled := value ] ] + \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser2.class/instance/stonOn..st b/repository/Ston-Tests.package/STONTestUser2.class/instance/stonOn..st new file mode 100644 index 0000000..6aa900a --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser2.class/instance/stonOn..st @@ -0,0 +1,7 @@ +ston-core +stonOn: stonWriter + stonWriter writeObject: self streamMap: [ :dictionary | + dictionary + at: #username put: username; + at: #password put: password; + at: #enabled put: enabled ] \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTestUser2.class/properties.json b/repository/Ston-Tests.package/STONTestUser2.class/properties.json new file mode 100644 index 0000000..f7ee576 --- /dev/null +++ b/repository/Ston-Tests.package/STONTestUser2.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Tests", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "SvenVanCaekenberghe 2/10/2012 20:20", + "instvars" : [ + ], + "name" : "STONTestUser2", + "pools" : [ + ], + "super" : "STONTestUser", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Tests.package/STONTests.class/README.md b/repository/Ston-Tests.package/STONTests.class/README.md new file mode 100644 index 0000000..88c2712 --- /dev/null +++ b/repository/Ston-Tests.package/STONTests.class/README.md @@ -0,0 +1 @@ +STONTests tests the API offered by STON. diff --git a/repository/Ston-Tests.package/STONTests.class/instance/testFromString.st b/repository/Ston-Tests.package/STONTests.class/instance/testFromString.st new file mode 100644 index 0000000..0bc5fd9 --- /dev/null +++ b/repository/Ston-Tests.package/STONTests.class/instance/testFromString.st @@ -0,0 +1,5 @@ +tests +testFromString + | object | + object := STON listClass withAll: { 1. 0. -1. true. false. nil }. + self assert: (STON fromString: '[1,0,-1,true,false,nil]') = object \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTests.class/instance/testPrettyPrinting.st b/repository/Ston-Tests.package/STONTests.class/instance/testPrettyPrinting.st new file mode 100644 index 0000000..9bec870 --- /dev/null +++ b/repository/Ston-Tests.package/STONTests.class/instance/testPrettyPrinting.st @@ -0,0 +1,7 @@ +tests +testPrettyPrinting + | object | + object := STONTestUser dummy. + self assert: (STON fromString: (STON toStringPretty: object)) = object. + object := STONTestDomainObject dummy. + self assert: (STON fromString: (STON toStringPretty: object)) = object \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTests.class/instance/testToString.st b/repository/Ston-Tests.package/STONTests.class/instance/testToString.st new file mode 100644 index 0000000..1f81f74 --- /dev/null +++ b/repository/Ston-Tests.package/STONTests.class/instance/testToString.st @@ -0,0 +1,5 @@ +tests +testToString + | object | + object := STON listClass withAll: { 1. 0. -1. true. false. nil }. + self assert: (STON toString: object) = '[1,0,-1,true,false,nil]' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONTests.class/properties.json b/repository/Ston-Tests.package/STONTests.class/properties.json new file mode 100644 index 0000000..5c13d96 --- /dev/null +++ b/repository/Ston-Tests.package/STONTests.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Tests", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "STONTests", + "pools" : [ + ], + "super" : "TestCase", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/README.md b/repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/README.md new file mode 100644 index 0000000..54f2e32 --- /dev/null +++ b/repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/README.md @@ -0,0 +1 @@ +STONWritePrettyPrinterReadTests tests pretty printed serialization followed by materialization. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/instance/serializeAndMaterialize..st b/repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/instance/serializeAndMaterialize..st new file mode 100644 index 0000000..0290af4 --- /dev/null +++ b/repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/instance/serializeAndMaterialize..st @@ -0,0 +1,10 @@ +private +serializeAndMaterialize: object + | serialization materialization | + serialization := String streamContents: [ :stream | + (STONWriter on: stream) + prettyPrint: true; + nextPut: object ]. + materialization := (STONReader on: serialization readStream) next. + self assert: object = materialization + \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/properties.json b/repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/properties.json new file mode 100644 index 0000000..b9ba01f --- /dev/null +++ b/repository/Ston-Tests.package/STONWritePrettyPrinterReadTests.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Tests", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "STONWritePrettyPrinterReadTests", + "pools" : [ + ], + "super" : "STONWriteReadTests", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/README.md b/repository/Ston-Tests.package/STONWriteReadTests.class/README.md new file mode 100644 index 0000000..112fffb --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/README.md @@ -0,0 +1 @@ +STONWriteReadTests test serialization followed by materialization. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/serializeAndMaterialize..st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/serializeAndMaterialize..st new file mode 100644 index 0000000..fbffa16 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/serializeAndMaterialize..st @@ -0,0 +1,8 @@ +private +serializeAndMaterialize: object + | serialization materialization | + serialization := String streamContents: [ :stream | + (STONWriter on: stream) nextPut: object ]. + materialization := (STONReader on: serialization readStream) next. + self assert: object = materialization + \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/serializeAndMaterializeJsonMode..st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/serializeAndMaterializeJsonMode..st new file mode 100644 index 0000000..1543868 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/serializeAndMaterializeJsonMode..st @@ -0,0 +1,10 @@ +private +serializeAndMaterializeJsonMode: object + | serialization materialization | + serialization := String streamContents: [ :stream | + (STONWriter on: stream) + jsonMode: true; + nextPut: object ]. + materialization := (STONReader on: serialization readStream) next. + self assert: object = materialization + \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testAssociations.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testAssociations.st new file mode 100644 index 0000000..241e207 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testAssociations.st @@ -0,0 +1,7 @@ +tests +testAssociations + | associations | + associations := OrderedCollection new. + 1 to: 10 do: [ :each | + associations add: each -> each printString ]. + self serializeAndMaterialize: associations \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testCharacters.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testCharacters.st new file mode 100644 index 0000000..cd1d68a --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testCharacters.st @@ -0,0 +1,5 @@ +tests +testCharacters + | characters | + characters := STON listClass withAll: ($a to: $z), ($A to: $Z). + self serializeAndMaterialize: characters \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testCollections.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testCollections.st new file mode 100644 index 0000000..01641f8 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testCollections.st @@ -0,0 +1,14 @@ +tests +testCollections + | collections | + collections := STON listClass withAll: { + #(1 2 3). + OrderedCollection withAll: #(1 2 3). + Set withAll: #(1 2 3). + IdentitySet withAll: #(1 2 3). + Bag withAll: #(1 2 2 3). + IdentityDictionary new at: 1 put: 1; at: 2 put: 2; yourself. + #[1 2 3]. + #(1 2 3) asIntegerArray. + #(1 2 3) asFloatArray }. + self serializeAndMaterialize: collections \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testDatesAndTimes.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testDatesAndTimes.st new file mode 100644 index 0000000..cdb4b29 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testDatesAndTimes.st @@ -0,0 +1,5 @@ +tests +testDatesAndTimes + | datesAndTimes | + datesAndTimes := STON listClass withAll: { Time now. Date today. DateAndTime now. TimeStamp now }. + self serializeAndMaterialize: datesAndTimes \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testDomainObject.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testDomainObject.st new file mode 100644 index 0000000..4c955d8 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testDomainObject.st @@ -0,0 +1,13 @@ +tests +testDomainObject + | object objects | + object := STONTestDomainObject dummy. + self serializeAndMaterialize: object. + objects := STON listClass streamContents: [ :stream | + 10 timesRepeat: [ stream nextPut: STONTestDomainObject dummy ] ]. + self serializeAndMaterialize: objects. + objects := STON mapClass new. + 10 timesRepeat: [ | newObject | + newObject := STONTestDomainObject dummy. + objects at: newObject integer put: newObject ]. + self serializeAndMaterialize: objects. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testEmpty.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testEmpty.st new file mode 100644 index 0000000..223d1b5 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testEmpty.st @@ -0,0 +1,7 @@ +tests +testEmpty + | empty | + empty := STON listClass new. + self serializeAndMaterialize: empty. + empty := STON mapClass new. + self serializeAndMaterialize: empty. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testFloats.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testFloats.st new file mode 100644 index 0000000..183646d --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testFloats.st @@ -0,0 +1,5 @@ +tests +testFloats + | floats | + floats := STON listClass withAll: ((-10 to: 10) collect: [ :each | each * Float pi ]). + self serializeAndMaterialize: floats \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testJsonMode.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testJsonMode.st new file mode 100644 index 0000000..ed30627 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testJsonMode.st @@ -0,0 +1,15 @@ +tests +testJsonMode + | object | + object := STON listClass withAll: { + Float pi. + 'Hello World'. + true. + nil. + STON listClass withAll: #[ 1 2 3]. + STON mapClass new + at: 'x' put: 1; + at: 'y' put: 2; + yourself + }. + self serializeAndMaterializeJsonMode: object \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testPrimitives.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testPrimitives.st new file mode 100644 index 0000000..e7e5d9b --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testPrimitives.st @@ -0,0 +1,5 @@ +tests +testPrimitives + | primitives | + primitives := STON listClass withAll: { true. false. nil }. + self serializeAndMaterialize: primitives \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testSmallIntegers.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testSmallIntegers.st new file mode 100644 index 0000000..4513b29 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testSmallIntegers.st @@ -0,0 +1,5 @@ +tests +testSmallIntegers + | integers | + integers := STON listClass withAll: (-10 to: 10). + self serializeAndMaterialize: integers \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testStrings.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testStrings.st new file mode 100644 index 0000000..d803fb6 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testStrings.st @@ -0,0 +1,5 @@ +tests +testStrings + | strings | + strings := Collection allSubclasses collect: [ :each | each name asString ]. + self serializeAndMaterialize: strings \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testSymbols.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testSymbols.st new file mode 100644 index 0000000..b36b9c8 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testSymbols.st @@ -0,0 +1,6 @@ +tests +testSymbols + | symbols | + self serializeAndMaterialize: #( bytes ). + symbols := Collection allSubclasses collect: [ :each | each name ]. + self serializeAndMaterialize: symbols \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testUser.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testUser.st new file mode 100644 index 0000000..1eab971 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testUser.st @@ -0,0 +1,13 @@ +tests +testUser + | user users | + user := STONTestUser dummy. + self serializeAndMaterialize: user. + users := STON listClass streamContents: [ :stream | + 10 timesRepeat: [ stream nextPut: STONTestUser dummy ] ]. + self serializeAndMaterialize: users. + users := STON mapClass new. + 10 timesRepeat: [ | newUser | + newUser := STONTestUser dummy. + users at: newUser username put: newUser ]. + self serializeAndMaterialize: users. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testUser2.st b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testUser2.st new file mode 100644 index 0000000..7c8a421 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/instance/testUser2.st @@ -0,0 +1,13 @@ +tests +testUser2 + | user users | + user := STONTestUser2 dummy. + self serializeAndMaterialize: user. + users := STON listClass streamContents: [ :stream | + 10 timesRepeat: [ stream nextPut: STONTestUser2 dummy ] ]. + self serializeAndMaterialize: users. + users := STON mapClass new. + 10 timesRepeat: [ | newUser | + newUser := STONTestUser2 dummy. + users at: newUser username put: newUser ]. + self serializeAndMaterialize: users. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriteReadTests.class/properties.json b/repository/Ston-Tests.package/STONWriteReadTests.class/properties.json new file mode 100644 index 0000000..9137138 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriteReadTests.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Tests", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "STONWriteReadTests", + "pools" : [ + ], + "super" : "TestCase", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Tests.package/STONWriterTests.class/README.md b/repository/Ston-Tests.package/STONWriterTests.class/README.md new file mode 100644 index 0000000..50f5292 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/README.md @@ -0,0 +1 @@ +STONWriterTests test serialization. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/serialize..st b/repository/Ston-Tests.package/STONWriterTests.class/instance/serialize..st new file mode 100644 index 0000000..dfa9f66 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/serialize..st @@ -0,0 +1,4 @@ +private +serialize: anObject + ^ String streamContents: [ :stream | + (STONWriter on: stream) nextPut: anObject ] \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testBoolean.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testBoolean.st new file mode 100644 index 0000000..39905fe --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testBoolean.st @@ -0,0 +1,4 @@ +tests +testBoolean + self assert: (self serialize: true) = 'true'. + self assert: (self serialize: false) = 'false' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testByteArray.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testByteArray.st new file mode 100644 index 0000000..4cf8901 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testByteArray.st @@ -0,0 +1,3 @@ +tests +testByteArray + self assert: (self serialize: #[1 2 3]) = 'ByteArray[''010203'']' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testDate.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testDate.st new file mode 100644 index 0000000..743c072 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testDate.st @@ -0,0 +1,5 @@ +tests +testDate + | date | + date := Date year: 2012 month: 1 day: 1. + self assert: (self serialize: date) = 'Date[''2012-01-01'']' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testDateAndTime.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testDateAndTime.st new file mode 100644 index 0000000..3dbbdaa --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testDateAndTime.st @@ -0,0 +1,5 @@ +tests +testDateAndTime + | dateAndTime | + dateAndTime := DateAndTime year: 2012 month: 1 day: 1 hour: 6 minute: 30 second: 15 offset: 1 hour. + self assert: (self serialize: dateAndTime) = 'DateAndTime[''2012-01-01T06:30:15+01:00'']' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testDoubleQuotedString.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testDoubleQuotedString.st new file mode 100644 index 0000000..5166fc2 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testDoubleQuotedString.st @@ -0,0 +1,15 @@ +tests +testDoubleQuotedString + | serializer string | + serializer := [ :object | + String streamContents: [ :stream | + (STONWriter on: stream) + jsonMode: true; + nextPut: object ] ]. + self assert: (serializer value: 'foo') = '"foo"'. + self assert: (serializer value: 'FOO') = '"FOO"'. + self assert: (serializer value: 'élève en Français') = '"\u00E9l\u00E8ve en Fran\u00E7ais"'. + self assert: (serializer value: 'foo\bar' withCRs ) = '"foo\rbar"'. + string := String withAll: { + $". $'. $\. Character tab. Character cr. Character lf. Character newPage. Character backspace }. + self assert: (serializer value: string) = '"\"\''\\\t\r\n\f\b"'. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testFloat.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testFloat.st new file mode 100644 index 0000000..fa68dec --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testFloat.st @@ -0,0 +1,10 @@ +tests +testFloat + self assert: (self serialize: 1.5) = '1.5'. + self assert: (self serialize: 0.0) = '0.0'. + self assert: (self serialize: -1.5) = '-1.5'. + self assert: ((self serialize: Float pi) beginsWith: '3.14159'). + self assert: ((self serialize: 1/3) beginsWith: '0.333'). + self assert: (self serialize: (10 raisedTo: 100) asFloat) = '1.0e100'. + self assert: (self serialize: (10 raisedTo: -100) asFloat) = '1.0e-100'. + self assert: (self serialize: (10 raisedTo: -100) asFloat negated) = '-1.0e-100'. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testInteger.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testInteger.st new file mode 100644 index 0000000..e04eebd --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testInteger.st @@ -0,0 +1,7 @@ +tests +testInteger + self assert: (self serialize: 1) = '1'. + self assert: (self serialize: 0) = '0'. + self assert: (self serialize: -1) = '-1'. + self assert: (self serialize: 1234567890) = '1234567890'. + self assert: (self serialize: -1234567890) = '-1234567890' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testIsSimpleSymbol.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testIsSimpleSymbol.st new file mode 100644 index 0000000..752f9fa --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testIsSimpleSymbol.st @@ -0,0 +1,13 @@ +tests +testIsSimpleSymbol + self assert: (STONWriter new isSimpleSymbol: #foo). + self assert: (STONWriter new isSimpleSymbol: #az). + self assert: (STONWriter new isSimpleSymbol: #AZ). + self assert: (STONWriter new isSimpleSymbol: #N0123456789). + self assert: (STONWriter new isSimpleSymbol: #foo123). + self assert: (STONWriter new isSimpleSymbol: #'Foo/Bar'). + self assert: (STONWriter new isSimpleSymbol: #'Foo.Bar'). + self assert: (STONWriter new isSimpleSymbol: #'Foo-Bar'). + self assert: (STONWriter new isSimpleSymbol: #'Foo_Bar'). + self assert: (STONWriter new isSimpleSymbol: #foo). + self deny: (STONWriter new isSimpleSymbol: #'#^&$%') \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testList.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testList.st new file mode 100644 index 0000000..3e0b8d2 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testList.st @@ -0,0 +1,5 @@ +tests +testList + self assert: (self serialize: (STON listClass withAll: #(1 2 3))) = '[1,2,3]'. + self assert: (self serialize: STON listClass new) = '[]'. + self assert: (self serialize: (STON listClass withAll: { 1. -1. 0. #foo. 'a b c'. true. false. nil })) = '[1,-1,0,#foo,''a b c'',true,false,nil]' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testMap.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testMap.st new file mode 100644 index 0000000..7db5ad2 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testMap.st @@ -0,0 +1,15 @@ +tests +testMap + | map | + (map := STON mapClass new) + at: #foo put: 1; + at: #bar put: 2. + self assert: (self serialize: map) = '{#foo:1,#bar:2}'. + self assert: (self serialize: STON mapClass new) = '{}'. + map removeAll. + map at: 'foo bar' put: #ok. + self assert: (self serialize: map) = '{''foo bar'':#ok}'. + map removeAll. + map at: 123 put: 456. + self assert: (self serialize: map) = '{123:456}'. + diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testNil.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testNil.st new file mode 100644 index 0000000..8597d48 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testNil.st @@ -0,0 +1,3 @@ +tests +testNil + self assert: (self serialize: nil) = 'nil' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testNull.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testNull.st new file mode 100644 index 0000000..a198a89 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testNull.st @@ -0,0 +1,9 @@ +tests +testNull + | serializer string | + serializer := [ :object | + String streamContents: [ :stream | + (STONWriter on: stream) + jsonMode: true; + nextPut: object ] ]. + self assert: (serializer value: nil) equals: 'null' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testOrderedCollection.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testOrderedCollection.st new file mode 100644 index 0000000..d84d655 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testOrderedCollection.st @@ -0,0 +1,6 @@ +tests +testOrderedCollection + | collection | + collection := OrderedCollection with: 1 with: 2 with: 3. + self assert: (self serialize: collection) = 'OrderedCollection[1,2,3]'. + self assert: (self serialize: OrderedCollection new) = 'OrderedCollection[]'. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testPoint.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testPoint.st new file mode 100644 index 0000000..ae467a1 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testPoint.st @@ -0,0 +1,3 @@ +tests +testPoint + self assert: (self serialize: 1@2) = 'Point[1,2]' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceCycle.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceCycle.st new file mode 100644 index 0000000..ed55af8 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceCycle.st @@ -0,0 +1,6 @@ +tests +testReferenceCycle + | array | + array := STON listClass with: 1 with: nil. + array at: 2 put: array. + self assert: (self serialize: array) = '[1,@1]'. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharing.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharing.st new file mode 100644 index 0000000..a198580 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharing.st @@ -0,0 +1,6 @@ +tests +testReferenceSharing + | array one | + one := { #one }. + array := STON listClass with: one with: one with: one. + self assert: (self serialize: array) = '[[#one],@2,@2]'. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharingError.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharingError.st new file mode 100644 index 0000000..41ccaf4 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharingError.st @@ -0,0 +1,13 @@ +tests +testReferenceSharingError + | serializer array one | + serializer := [ :object | + String streamContents: [ :stream | + (STONWriter on: stream) + referencePolicy: #error; + nextPut: object ] ]. + one := { #one }. + array := STON listClass with: one with: one with: one. + self + should: [ (serializer value: array) = '[[#one],[#one],[#one]]' ] + raise: STONWriterError \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharingIgnore.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharingIgnore.st new file mode 100644 index 0000000..396330b --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testReferenceSharingIgnore.st @@ -0,0 +1,11 @@ +tests +testReferenceSharingIgnore + | serializer array one | + serializer := [ :object | + String streamContents: [ :stream | + (STONWriter on: stream) + referencePolicy: #ignore; + nextPut: object ] ]. + one := { #one }. + array := STON listClass with: one with: one with: one. + self assert: (serializer value: array) = '[[#one],[#one],[#one]]'. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testRestrictedClassesInJsonMode.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testRestrictedClassesInJsonMode.st new file mode 100644 index 0000000..0283aae --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testRestrictedClassesInJsonMode.st @@ -0,0 +1,10 @@ +tests +testRestrictedClassesInJsonMode + | serializer string | + serializer := [ :object | + String streamContents: [ :stream | + (STONWriter on: stream) + jsonMode: true; + nextPut: object ] ]. + self should: [ serializer value: 1@2 ] raise: STONWriterError. + self should: [ serializer value: STONTestUser dummy ] raise: STONWriterError. diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testString.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testString.st new file mode 100644 index 0000000..c4f992e --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testString.st @@ -0,0 +1,10 @@ +tests +testString + | string | + self assert: (self serialize: 'foo') = '''foo'''. + self assert: (self serialize: 'FOO') = '''FOO'''. + self assert: (self serialize: 'élève en Français') = '''\u00E9l\u00E8ve en Fran\u00E7ais'''. + self assert: (self serialize: 'foo\bar' withCRs ) = '''foo\rbar'''. + string := String withAll: { + $". $'. $\. Character tab. Character cr. Character lf. Character newPage. Character backspace }. + self assert: (self serialize: string) = '''\"\''\\\t\r\n\f\b'''. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testSymbol.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testSymbol.st new file mode 100644 index 0000000..550bebd --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testSymbol.st @@ -0,0 +1,11 @@ +tests +testSymbol + self assert: (self serialize: #foo) = '#foo'. + self assert: (self serialize: #FOO) = '#FOO'. + self assert: (self serialize: #bytes) = '#bytes'. + self assert: (self serialize: #'foo.bar') = '#foo.bar'. + self assert: (self serialize: #'foo-bar') = '#foo-bar'. + self assert: (self serialize: #'foo_bar') = '#foo_bar'. + self assert: (self serialize: #'foo/bar') = '#foo/bar'. + self assert: (self serialize: #'foo bar') = '#''foo bar'''. + self assert: (self serialize: #foo123) = '#foo123'. \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testSymbolAsString.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testSymbolAsString.st new file mode 100644 index 0000000..46990b1 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testSymbolAsString.st @@ -0,0 +1,10 @@ +tests +testSymbolAsString + | serializer string | + serializer := [ :object | + String streamContents: [ :stream | + (STONWriter on: stream) + jsonMode: true; + nextPut: object ] ]. + self assert: (serializer value: #foo) = '"foo"'. + self assert: (serializer value: #'FOO') = '"FOO"'. diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testTime.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testTime.st new file mode 100644 index 0000000..bd56026 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testTime.st @@ -0,0 +1,7 @@ +tests +testTime + | time | + time := Time hour: 6 minute: 30 second: 15. + self assert: (self serialize: time) = 'Time[''06:30:15'']'. + time := Time hour: 6 minute: 30 second: 15 nanoSecond: 1. + self assert: (self serialize: time) = 'Time[''06:30:15.000000001'']' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testTimeStamp.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testTimeStamp.st new file mode 100644 index 0000000..5907030 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testTimeStamp.st @@ -0,0 +1,5 @@ +tests +testTimeStamp + | timeStamp | + timeStamp := TimeStamp year: 2012 month: 1 day: 1 hour: 6 minute: 30 second: 15 offset: 1 hour. + self assert: (self serialize: timeStamp) = 'TimeStamp[''2012-01-01T06:30:15+01:00'']' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testUser.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testUser.st new file mode 100644 index 0000000..33982e0 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testUser.st @@ -0,0 +1,7 @@ +tests +testUser + | user | + (user := STONTestUser new) + username: 'john@foo.com'; + password: 'secret1'. + self assert: (self serialize: user) = 'TestUser{#username:''john@foo.com'',#password:''secret1'',#enabled:true}' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/instance/testUser2.st b/repository/Ston-Tests.package/STONWriterTests.class/instance/testUser2.st new file mode 100644 index 0000000..cfb388a --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/instance/testUser2.st @@ -0,0 +1,7 @@ +tests +testUser2 + | user | + (user := STONTestUser2 new) + username: 'john@foo.com'; + password: 'secret1'. + self assert: (self serialize: user) = 'TestUser2{#username:''john@foo.com'',#password:''secret1'',#enabled:true}' \ No newline at end of file diff --git a/repository/Ston-Tests.package/STONWriterTests.class/properties.json b/repository/Ston-Tests.package/STONWriterTests.class/properties.json new file mode 100644 index 0000000..2252ed6 --- /dev/null +++ b/repository/Ston-Tests.package/STONWriterTests.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "STON-Tests", + "classinstvars" : [ + ], + "classtraitcomposition" : "{}", + "classvars" : [ + ], + "commentStamp" : "SvenVanCaekenberghe 1/22/2012 20:14", + "instvars" : [ + ], + "name" : "STONWriterTests", + "pools" : [ + ], + "super" : "TestCase", + "traitcomposition" : "{}", + "type" : "normal" } diff --git a/repository/Ston-Tests.package/monticello.meta/categories.st b/repository/Ston-Tests.package/monticello.meta/categories.st new file mode 100644 index 0000000..5e82697 --- /dev/null +++ b/repository/Ston-Tests.package/monticello.meta/categories.st @@ -0,0 +1 @@ +SystemOrganization addCategory: #'STON-Tests'! diff --git a/repository/Ston-Tests.package/monticello.meta/initializers.st b/repository/Ston-Tests.package/monticello.meta/initializers.st new file mode 100644 index 0000000..e69de29 diff --git a/repository/Ston-Tests.package/monticello.meta/package b/repository/Ston-Tests.package/monticello.meta/package new file mode 100644 index 0000000..519d0c0 --- /dev/null +++ b/repository/Ston-Tests.package/monticello.meta/package @@ -0,0 +1 @@ +(name 'Ston-Tests') \ No newline at end of file diff --git a/repository/Ston-Tests.package/monticello.meta/version b/repository/Ston-Tests.package/monticello.meta/version new file mode 100644 index 0000000..543306b --- /dev/null +++ b/repository/Ston-Tests.package/monticello.meta/version @@ -0,0 +1 @@ +(name 'Ston-Tests-SvenVanCaekenberghe.28' message 'tests for JSON backwards compatibility' id 'f1afbac1-b9b5-4042-99b6-eceb9444dd8f' date '27 April 2012' time '2:25:30 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.27' message 'added STONReaderTests>>#testNewSymbol as suggested by Eliot Miranda' id '75770487-03e3-4733-ba3d-6e1af5b88f1c' date '25 April 2012' time '11:32:42 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.26' message 'extended the parser to allow either single or double quotes as String delimiters which gives us JSON backward compatibilty ! (thanks Dale Henrichs for this great idea).' id '4c03b66f-715e-4f00-9ef3-5759faf192a0' date '24 April 2012' time '10:21:58 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.25' message 'changed String from being treated as regular shareable objects to primitive non-shareable objecst (like symbols)' id 'facc5ffd-d2ee-4ca9-bcc8-f53d2e24017c' date '29 February 2012' time '9:55:28 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.24' message 'added STONReaderTests>>#testCharacter' id 'c0399455-9434-4e15-8529-b3f1bb56f740' date '20 February 2012' time '12:51:39 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.23' message 'fixed a bug with simple symbol encoding' id '7e3cc8ec-d11a-4e45-aaa6-4b91e070e815' date '14 February 2012' time '5:55:02 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.22' message 'added a STONTests>>#testPrettyPrinting' id '9c288a67-4219-473c-9b5b-3285a63f886d' date '12 February 2012' time '8:21:42 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.21' message 'various refactoring & cleanup' id '2cc81c5f-9142-4f31-bd0c-81fc6467a5e5' date '12 February 2012' time '7:32:30 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.20' message 'rewrote STONTestUser2>>#fromSton: to new API/semantics' id '13ad4b9e-9dbd-46e4-9c77-7e948ef19e8f' date '12 February 2012' time '3:34:16 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.19' message 'added a mechanism to allow renaming classes, see #stonClass' id '6252296d-92cc-40f2-940d-6108a98169f0' date '12 February 2012' time '10:26:53 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.18' message 'added tests for STONTestDomainObject' id '532104bd-b434-4c03-9c3b-f0059400a039' date '10 February 2012' time '8:55:35 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.17' message 'first optimizations: faster character classification, reusable string stream while reading strings, symbols and class names' id '617a8ffd-ee1d-46bd-96f6-bf16bd227276' date '10 February 2012' time '8:39:27 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.16' message 'implemented generic Collection serialization; added #testCollections' id '2849e545-527d-42ce-8f30-177b646df83e' date '8 February 2012' time '9:10:22 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.15' message 'added tests for Character and Association' id 'a6f2970a-7bf9-4132-9be6-0aef514a12e8' date '8 February 2012' time '3:09:35 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.14' message 'added STONTestUser2 and related tests' id 'edcb2154-f429-4384-89d8-716146309d91' date '8 February 2012' time '9:10:03 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.13' message 'introduced STONReaderError' id '204ef0a1-e10f-46d3-b0a0-d4e7ffcbfbb5' date '24 January 2012' time '10:50:32 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.12' message 'renamed array -> list and dictionary -> map; using STON listClass and mapClass consistently' id '84be935a-121b-4dfc-b267-a600ef302c24' date '24 January 2012' time '10:23:38 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.11' message 'introduction of STON class; renamed array -> list and dictionary -> map' id 'ce040754-f2d2-44cd-b8f8-41a87e43845a' date '24 January 2012' time '10:14:20 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.10' message 'introduced streaming encoding with STONWriter>>#writeObject:stream[ShortArray|Array|Dictionary]: added #testUser tests' id '06f7188c-b4a5-4456-8103-46a094b97df9' date '23 January 2012' time '5:08:46 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.9' message 'moved some methods on STONTestUser from Ston-Core to Ston-Tests' id '191d0826-6aa2-4161-806b-61ae4d94968e' date '23 January 2012' time '2:32:57 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.8' message 'debugged pretty printed output parsing; added support for OrderedCollection; changed pretty printing to write closing tags on a new line' id 'b77073ec-aa89-493e-82e5-da04ed4a7040' date '23 January 2012' time '12:34:35 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.7' message 'added pretty printing to STONWriter; introduced STONWriter>>#encodeShortArray: new STONTestUser class; introduced STONWritePrettyPrintedReadTests subclass of STONWriteReadTests ' id 'a16954dc-33c2-4466-9798-fb348f29fedd' date '23 January 2012' time '11:56:08 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.6' message 'added Time and Date support; added STONWriteReadTests' id 'a4072911-13c1-46a7-82a8-68e84944bde6' date '23 January 2012' time '9:55:33 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.5' message 'fixed STONWriterTests>>#testReferenceCycle one should not create cycles in literal method constants and probably not modify literal method constants in tests thanks a lot Mariano Peck!' id '57792967-d3b8-4c73-bbef-435d0b5f1570' date '22 January 2012' time '8:02:58 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.4' message 'added tests for DateAndTime and TimeStamp' id 'dbbe9cbc-bb66-4cae-8032-000b59b4e751' date '19 January 2012' time '10:07:46 am' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.3' message 'first working version, except ByteArray materialize' id '6e695c70-abad-474d-9f1f-ce92e3a1c88a' date '18 January 2012' time '9:58:59 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.2' message 'first implementation of Objects and shared references; problems with cycle references' id '6743d4a3-5e93-4f14-b121-707d1c45ab96' date '17 January 2012' time '10:20:11 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Ston-Tests-SvenVanCaekenberghe.1' message 'basic code working, except full objects and references' id '791d9fce-0b66-412d-b336-16e9058f5b76' date '16 January 2012' time '1:47:22 pm' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/Ston-Tests.package/properties.json b/repository/Ston-Tests.package/properties.json new file mode 100644 index 0000000..f037444 --- /dev/null +++ b/repository/Ston-Tests.package/properties.json @@ -0,0 +1,2 @@ +{ + }