From b00facf24af9faa06f1504b87c6e8917b9442bd4 Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Sat, 20 Aug 2022 18:56:37 +0200 Subject: [PATCH 1/4] Add base 64 encoding support --- .../GRPlatform.class/instance/base64Encode..st | 4 ++++ .../instance/base64Encode..st | 3 +++ .../instance/testBase64Encode.st | 14 ++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 repository/Grease-Core.package/GRPlatform.class/instance/base64Encode..st create mode 100644 repository/Grease-Pharo100-Core.package/GRPharoPlatform.class/instance/base64Encode..st create mode 100644 repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testBase64Encode.st diff --git a/repository/Grease-Core.package/GRPlatform.class/instance/base64Encode..st b/repository/Grease-Core.package/GRPlatform.class/instance/base64Encode..st new file mode 100644 index 00000000..1e94d60c --- /dev/null +++ b/repository/Grease-Core.package/GRPlatform.class/instance/base64Encode..st @@ -0,0 +1,4 @@ +encoding +base64Encode: aByteArray + "Base64 encode the given byte array and answer the result as a String." + self subclassResponsibility \ No newline at end of file diff --git a/repository/Grease-Pharo100-Core.package/GRPharoPlatform.class/instance/base64Encode..st b/repository/Grease-Pharo100-Core.package/GRPharoPlatform.class/instance/base64Encode..st new file mode 100644 index 00000000..4cb93d20 --- /dev/null +++ b/repository/Grease-Pharo100-Core.package/GRPharoPlatform.class/instance/base64Encode..st @@ -0,0 +1,3 @@ +encoding +base64Encode: aByteArray + ^ aByteArray base64Encoded \ No newline at end of file diff --git a/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testBase64Encode.st b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testBase64Encode.st new file mode 100644 index 00000000..d1a2b4be --- /dev/null +++ b/repository/Grease-Tests-Core.package/GRPlatformTest.class/instance/testBase64Encode.st @@ -0,0 +1,14 @@ +tests +testBase64Encode + | input | + input := #( + (97 110 121 32 99 97 114 110 97 108 32 112 108 101 97 115 117 114 101 46) 'YW55IGNhcm5hbCBwbGVhc3VyZS4=' + (97 110 121 32 99 97 114 110 97 108 32 112 108 101 97 115 117 114 101) 'YW55IGNhcm5hbCBwbGVhc3VyZQ==' + (97 110 121 32 99 97 114 110 97 108 32 112 108 101 97 115 117 114) 'YW55IGNhcm5hbCBwbGVhc3Vy' + (97 110 121 32 99 97 114 110 97 108 32 112 108 101 97 115 117) 'YW55IGNhcm5hbCBwbGVhc3U=' + (97 110 121 32 99 97 114 110 97 108 32 112 108 101 97 115) 'YW55IGNhcm5hbCBwbGVhcw=='). + 1 to: input size by: 2 do: [ :index | + | decoded expected | + decoded := GRPlatform current base64Encode: (input at: index) asByteArray. + expected := input at: index + 1. + self assert: decoded = expected ] \ No newline at end of file From 61c4c8db4ccc5d1da24948d709b0438a9d68abe0 Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Thu, 25 Aug 2022 10:31:40 +0200 Subject: [PATCH 2/4] Add more Pharo and Squeak implementations --- .../GRPharoPlatform.class/instance/base64Encode..st | 3 +++ .../GRPharoPlatform.class/instance/base64Encode..st | 3 +++ .../GRPharoPlatform.class/instance/base64Encode..st | 3 +++ .../GRPharoPlatform.class/instance/base64Encode..st | 3 +++ .../GRPharoPlatform.class/instance/base64Encode..st | 3 +++ 5 files changed, 15 insertions(+) create mode 100644 repository/Grease-Pharo60-Core.package/GRPharoPlatform.class/instance/base64Encode..st create mode 100644 repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/base64Encode..st create mode 100644 repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/base64Encode..st create mode 100644 repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/instance/base64Encode..st create mode 100644 repository/Grease-Squeak6-Core.package/GRPharoPlatform.class/instance/base64Encode..st diff --git a/repository/Grease-Pharo60-Core.package/GRPharoPlatform.class/instance/base64Encode..st b/repository/Grease-Pharo60-Core.package/GRPharoPlatform.class/instance/base64Encode..st new file mode 100644 index 00000000..f5e24f05 --- /dev/null +++ b/repository/Grease-Pharo60-Core.package/GRPharoPlatform.class/instance/base64Encode..st @@ -0,0 +1,3 @@ +encoding +base64Encode: aByteArray + ^ (Base64MimeConverter base64Encode: aByteArray readStream) contents diff --git a/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/base64Encode..st b/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/base64Encode..st new file mode 100644 index 00000000..4cb93d20 --- /dev/null +++ b/repository/Grease-Pharo70-Core.package/GRPharoPlatform.class/instance/base64Encode..st @@ -0,0 +1,3 @@ +encoding +base64Encode: aByteArray + ^ aByteArray base64Encoded \ No newline at end of file diff --git a/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/base64Encode..st b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/base64Encode..st new file mode 100644 index 00000000..4cb93d20 --- /dev/null +++ b/repository/Grease-Pharo90-Core.package/GRPharoPlatform.class/instance/base64Encode..st @@ -0,0 +1,3 @@ +encoding +base64Encode: aByteArray + ^ aByteArray base64Encoded \ No newline at end of file diff --git a/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/instance/base64Encode..st b/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/instance/base64Encode..st new file mode 100644 index 00000000..4cb93d20 --- /dev/null +++ b/repository/Grease-Squeak5-Core.package/GRPharoPlatform.class/instance/base64Encode..st @@ -0,0 +1,3 @@ +encoding +base64Encode: aByteArray + ^ aByteArray base64Encoded \ No newline at end of file diff --git a/repository/Grease-Squeak6-Core.package/GRPharoPlatform.class/instance/base64Encode..st b/repository/Grease-Squeak6-Core.package/GRPharoPlatform.class/instance/base64Encode..st new file mode 100644 index 00000000..4cb93d20 --- /dev/null +++ b/repository/Grease-Squeak6-Core.package/GRPharoPlatform.class/instance/base64Encode..st @@ -0,0 +1,3 @@ +encoding +base64Encode: aByteArray + ^ aByteArray base64Encoded \ No newline at end of file From 6c7f37d9e6909fde572d03ac63db0f19c8334bb5 Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Fri, 26 Aug 2022 11:31:41 +0200 Subject: [PATCH 3/4] Add GemStone implementation --- .../GRGemStonePlatform.class/instance/base64Encode..st | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/base64Encode..st diff --git a/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/base64Encode..st b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/base64Encode..st new file mode 100644 index 00000000..f5e24f05 --- /dev/null +++ b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/base64Encode..st @@ -0,0 +1,3 @@ +encoding +base64Encode: aByteArray + ^ (Base64MimeConverter base64Encode: aByteArray readStream) contents From 6106bc7bef7e34e0b6d62acaab7c833434a6068b Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Fri, 26 Aug 2022 13:40:08 +0200 Subject: [PATCH 4/4] correct gemstone implementation of base64Encode --- .../GRGemStonePlatform.class/instance/base64Encode..st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/base64Encode..st b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/base64Encode..st index f5e24f05..4a3631f8 100644 --- a/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/base64Encode..st +++ b/repository/Grease-GemStone-Core.package/GRGemStonePlatform.class/instance/base64Encode..st @@ -1,3 +1,3 @@ encoding base64Encode: aByteArray - ^ (Base64MimeConverter base64Encode: aByteArray readStream) contents + ^ (Base64MimeConverter mimeEncode: aByteArray readStream) contents