From a72a110cf763200598b84a88461db84b84a99894 Mon Sep 17 00:00:00 2001 From: hellerve Date: Wed, 2 May 2018 17:21:33 +0200 Subject: [PATCH] tiny blog: add blog component --- src/TinyBlog.package/TBBlog.class/README.md | 0 .../TBBlog.class/class/createDemoPosts.st | 23 +++++++++++++++++++ .../TBBlog.class/class/current.st | 3 +++ .../TBBlog.class/class/initialize.st | 3 +++ .../TBBlog.class/class/reset.st | 3 +++ .../TBBlog.class/instance/allBlogPosts.st | 3 +++ .../instance/allBlogPostsFromCategory..st | 3 +++ .../TBBlog.class/instance/allCategories.st | 3 +++ .../instance/allVisibleBlogPosts.st | 3 +++ .../allVisibleBlogPostsFromCategory..st | 3 +++ .../TBBlog.class/instance/initialize.st | 4 ++++ .../TBBlog.class/instance/removeAllPosts.st | 3 +++ .../TBBlog.class/instance/size.st | 3 +++ .../TBBlog.class/instance/writeBlogPost..st | 3 +++ .../TBBlog.class/properties.json | 14 +++++++++++ .../TBBlogTest.class/README.md | 0 .../TBBlogTest.class/instance/setUp.st | 8 +++++++ .../TBBlogTest.class/instance/tearDown.st | 3 +++ .../instance/testAddBlogPost.st | 4 ++++ .../instance/testAllBlogPosts.st | 4 ++++ .../instance/testAllBlogPostsFromCategory.st | 4 ++++ .../instance/testAllCategories.st | 4 ++++ .../instance/testAllVisibleBlogPosts.st | 4 ++++ .../testAllVisibleBlogPostsFromCategory.st | 5 ++++ .../instance/testRemoveAllBlogPosts.st | 4 ++++ .../TBBlogTest.class/instance/testSize.st | 3 +++ .../instance/testUnclassifiedBlogPosts.st | 3 +++ .../TBBlogTest.class/properties.json | 16 +++++++++++++ .../TBPost.class/instance/isVisible.st | 2 +- .../monticello.meta/categories.st | 1 + 30 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 src/TinyBlog.package/TBBlog.class/README.md create mode 100644 src/TinyBlog.package/TBBlog.class/class/createDemoPosts.st create mode 100644 src/TinyBlog.package/TBBlog.class/class/current.st create mode 100644 src/TinyBlog.package/TBBlog.class/class/initialize.st create mode 100644 src/TinyBlog.package/TBBlog.class/class/reset.st create mode 100644 src/TinyBlog.package/TBBlog.class/instance/allBlogPosts.st create mode 100644 src/TinyBlog.package/TBBlog.class/instance/allBlogPostsFromCategory..st create mode 100644 src/TinyBlog.package/TBBlog.class/instance/allCategories.st create mode 100644 src/TinyBlog.package/TBBlog.class/instance/allVisibleBlogPosts.st create mode 100644 src/TinyBlog.package/TBBlog.class/instance/allVisibleBlogPostsFromCategory..st create mode 100644 src/TinyBlog.package/TBBlog.class/instance/initialize.st create mode 100644 src/TinyBlog.package/TBBlog.class/instance/removeAllPosts.st create mode 100644 src/TinyBlog.package/TBBlog.class/instance/size.st create mode 100644 src/TinyBlog.package/TBBlog.class/instance/writeBlogPost..st create mode 100644 src/TinyBlog.package/TBBlog.class/properties.json create mode 100644 src/TinyBlog.package/TBBlogTest.class/README.md create mode 100644 src/TinyBlog.package/TBBlogTest.class/instance/setUp.st create mode 100644 src/TinyBlog.package/TBBlogTest.class/instance/tearDown.st create mode 100644 src/TinyBlog.package/TBBlogTest.class/instance/testAddBlogPost.st create mode 100644 src/TinyBlog.package/TBBlogTest.class/instance/testAllBlogPosts.st create mode 100644 src/TinyBlog.package/TBBlogTest.class/instance/testAllBlogPostsFromCategory.st create mode 100644 src/TinyBlog.package/TBBlogTest.class/instance/testAllCategories.st create mode 100644 src/TinyBlog.package/TBBlogTest.class/instance/testAllVisibleBlogPosts.st create mode 100644 src/TinyBlog.package/TBBlogTest.class/instance/testAllVisibleBlogPostsFromCategory.st create mode 100644 src/TinyBlog.package/TBBlogTest.class/instance/testRemoveAllBlogPosts.st create mode 100644 src/TinyBlog.package/TBBlogTest.class/instance/testSize.st create mode 100644 src/TinyBlog.package/TBBlogTest.class/instance/testUnclassifiedBlogPosts.st create mode 100644 src/TinyBlog.package/TBBlogTest.class/properties.json diff --git a/src/TinyBlog.package/TBBlog.class/README.md b/src/TinyBlog.package/TBBlog.class/README.md new file mode 100644 index 0000000..e69de29 diff --git a/src/TinyBlog.package/TBBlog.class/class/createDemoPosts.st b/src/TinyBlog.package/TBBlog.class/class/createDemoPosts.st new file mode 100644 index 0000000..fc722e1 --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/class/createDemoPosts.st @@ -0,0 +1,23 @@ +tests +createDemoPosts + self current + writeBlogPost: ((TBPost title: 'Welcome in TinyBlog' + text: 'TinyBlog is a small blog engine made with Pharo.' + category: 'TinyBlog') + visible: true); + writeBlogPost: ((TBPost title: 'Report Pharo Sprint' + text: 'Friday, June 12 there was a Pharo sprint / Moose dojo. It was a +nice event with more than 15 motivated sprinters. With the help of candies, cakes and chocolate, huge work has been done' + category: 'Pharo') + visible: true); + writeBlogPost: ((TBPost title: 'Brick on top of Bloc - Preview' + text: 'We are happy to announce the first preview version of Brick, a new widget set created from scratch on top of Bloc. Brick is being developed primarily by Alex Syrel (together with Alain Plantec, Andrei Chis and myself), and the work is sponsored by ESUG. Brick is part of the Glamorous Toolkit effort and will provide the basis for the new versions of the development tools.' + category: 'Pharo') + visible: true); + writeBlogPost: ((TBPost title: 'The sad story of unclassified blog posts' + text: 'So sad that I can read this.') + visible: true); + writeBlogPost: ((TBPost title: 'Working with Pharo on the Raspberry Pi' + text: 'Hardware is getting cheaper and many new small devices like the famous Raspberry Pi provide new computation power that was one once only available on regular desktop computers.' + category: 'Pharo') + visible: true) \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/class/current.st b/src/TinyBlog.package/TBBlog.class/class/current.st new file mode 100644 index 0000000..c846e55 --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/class/current.st @@ -0,0 +1,3 @@ +initialization +current + ^ instance ifNil: [ instance := self new ] \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/class/initialize.st b/src/TinyBlog.package/TBBlog.class/class/initialize.st new file mode 100644 index 0000000..132da59 --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/class/initialize.st @@ -0,0 +1,3 @@ +initialization +initialize + self reset \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/class/reset.st b/src/TinyBlog.package/TBBlog.class/class/reset.st new file mode 100644 index 0000000..ed18fe9 --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/class/reset.st @@ -0,0 +1,3 @@ +initialization +reset + instance := nil \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/instance/allBlogPosts.st b/src/TinyBlog.package/TBBlog.class/instance/allBlogPosts.st new file mode 100644 index 0000000..eb8e26a --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/instance/allBlogPosts.st @@ -0,0 +1,3 @@ +actions +allBlogPosts + ^ posts \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/instance/allBlogPostsFromCategory..st b/src/TinyBlog.package/TBBlog.class/instance/allBlogPostsFromCategory..st new file mode 100644 index 0000000..3aefef6 --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/instance/allBlogPostsFromCategory..st @@ -0,0 +1,3 @@ +actions +allBlogPostsFromCategory: c + ^ posts select: [ :p | p category = c ] \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/instance/allCategories.st b/src/TinyBlog.package/TBBlog.class/instance/allCategories.st new file mode 100644 index 0000000..bf8a034 --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/instance/allCategories.st @@ -0,0 +1,3 @@ +actions +allCategories + ^ (self allBlogPosts collect: [ :p | p category ]) asSet \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/instance/allVisibleBlogPosts.st b/src/TinyBlog.package/TBBlog.class/instance/allVisibleBlogPosts.st new file mode 100644 index 0000000..0f2aa58 --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/instance/allVisibleBlogPosts.st @@ -0,0 +1,3 @@ +actions +allVisibleBlogPosts + ^ posts select: [ :p | p isVisible ] \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/instance/allVisibleBlogPostsFromCategory..st b/src/TinyBlog.package/TBBlog.class/instance/allVisibleBlogPostsFromCategory..st new file mode 100644 index 0000000..49b531e --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/instance/allVisibleBlogPostsFromCategory..st @@ -0,0 +1,3 @@ +actions +allVisibleBlogPostsFromCategory: c + ^ posts select: [ :p | p category = c and: [ p isVisible ] ] \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/instance/initialize.st b/src/TinyBlog.package/TBBlog.class/instance/initialize.st new file mode 100644 index 0000000..2c00dc1 --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/instance/initialize.st @@ -0,0 +1,4 @@ +initialization +initialize + super initialize. + posts := OrderedCollection new. \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/instance/removeAllPosts.st b/src/TinyBlog.package/TBBlog.class/instance/removeAllPosts.st new file mode 100644 index 0000000..6b9c53b --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/instance/removeAllPosts.st @@ -0,0 +1,3 @@ +actions +removeAllPosts + posts := OrderedCollection new \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/instance/size.st b/src/TinyBlog.package/TBBlog.class/instance/size.st new file mode 100644 index 0000000..6f42b4d --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/instance/size.st @@ -0,0 +1,3 @@ +actions +size + ^ posts size \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/instance/writeBlogPost..st b/src/TinyBlog.package/TBBlog.class/instance/writeBlogPost..st new file mode 100644 index 0000000..983a1cc --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/instance/writeBlogPost..st @@ -0,0 +1,3 @@ +actions +writeBlogPost: p + posts add: p \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlog.class/properties.json b/src/TinyBlog.package/TBBlog.class/properties.json new file mode 100644 index 0000000..8c9c1a9 --- /dev/null +++ b/src/TinyBlog.package/TBBlog.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "TinyBlog", + "classinstvars" : [ + "instance" ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "posts" ], + "name" : "TBBlog", + "pools" : [ + ], + "super" : "Object", + "type" : "normal" } diff --git a/src/TinyBlog.package/TBBlogTest.class/README.md b/src/TinyBlog.package/TBBlogTest.class/README.md new file mode 100644 index 0000000..e69de29 diff --git a/src/TinyBlog.package/TBBlogTest.class/instance/setUp.st b/src/TinyBlog.package/TBBlogTest.class/instance/setUp.st new file mode 100644 index 0000000..9384cb9 --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/instance/setUp.st @@ -0,0 +1,8 @@ +tests +setUp + blog := TBBlog current. + blog removeAllPosts. + first := TBPost title: 'A title' text: 'A text' category: 'First Category'. + blog writeBlogPost: first. + post := (TBPost title: 'Another title' text: 'Another text' + category: 'Second Category') beVisible \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlogTest.class/instance/tearDown.st b/src/TinyBlog.package/TBBlogTest.class/instance/tearDown.st new file mode 100644 index 0000000..0ced4a3 --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/instance/tearDown.st @@ -0,0 +1,3 @@ +tests +tearDown + TBBlog reset \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlogTest.class/instance/testAddBlogPost.st b/src/TinyBlog.package/TBBlogTest.class/instance/testAddBlogPost.st new file mode 100644 index 0000000..4a7d0c3 --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/instance/testAddBlogPost.st @@ -0,0 +1,4 @@ +tests +testAddBlogPost + blog writeBlogPost: post. + self assert: blog size equals: 2 \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlogTest.class/instance/testAllBlogPosts.st b/src/TinyBlog.package/TBBlogTest.class/instance/testAllBlogPosts.st new file mode 100644 index 0000000..465ab21 --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/instance/testAllBlogPosts.st @@ -0,0 +1,4 @@ +tests +testAllBlogPosts + blog writeBlogPost: post. + self assert: blog allBlogPosts size equals: 2 \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlogTest.class/instance/testAllBlogPostsFromCategory.st b/src/TinyBlog.package/TBBlogTest.class/instance/testAllBlogPostsFromCategory.st new file mode 100644 index 0000000..e69239e --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/instance/testAllBlogPostsFromCategory.st @@ -0,0 +1,4 @@ +tests +testAllBlogPostsFromCategory + self assert: (blog allBlogPostsFromCategory: 'First Category') + size equals: 1 \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlogTest.class/instance/testAllCategories.st b/src/TinyBlog.package/TBBlogTest.class/instance/testAllCategories.st new file mode 100644 index 0000000..bada18c --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/instance/testAllCategories.st @@ -0,0 +1,4 @@ +tests +testAllCategories + blog writeBlogPost: post. + self assert: blog allCategories size equals: 2 \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlogTest.class/instance/testAllVisibleBlogPosts.st b/src/TinyBlog.package/TBBlogTest.class/instance/testAllVisibleBlogPosts.st new file mode 100644 index 0000000..c15aca3 --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/instance/testAllVisibleBlogPosts.st @@ -0,0 +1,4 @@ +tests +testAllVisibleBlogPosts + blog writeBlogPost: post. + self assert: blog allVisibleBlogPosts size equals: 1 \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlogTest.class/instance/testAllVisibleBlogPostsFromCategory.st b/src/TinyBlog.package/TBBlogTest.class/instance/testAllVisibleBlogPostsFromCategory.st new file mode 100644 index 0000000..7d42456 --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/instance/testAllVisibleBlogPostsFromCategory.st @@ -0,0 +1,5 @@ +tests +testAllVisibleBlogPostsFromCategory + blog writeBlogPost: post. + self assert: (blog allVisibleBlogPostsFromCategory: 'First Category') size equals: 0. + self assert: (blog allVisibleBlogPostsFromCategory: 'Second Category') size equals: 1 \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlogTest.class/instance/testRemoveAllBlogPosts.st b/src/TinyBlog.package/TBBlogTest.class/instance/testRemoveAllBlogPosts.st new file mode 100644 index 0000000..cd2612a --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/instance/testRemoveAllBlogPosts.st @@ -0,0 +1,4 @@ +tests +testRemoveAllBlogPosts + blog removeAllPosts. + self assert: blog size equals: 0 \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlogTest.class/instance/testSize.st b/src/TinyBlog.package/TBBlogTest.class/instance/testSize.st new file mode 100644 index 0000000..d0f690b --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/instance/testSize.st @@ -0,0 +1,3 @@ +tests +testSize + self assert: blog size equals: 1 \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlogTest.class/instance/testUnclassifiedBlogPosts.st b/src/TinyBlog.package/TBBlogTest.class/instance/testUnclassifiedBlogPosts.st new file mode 100644 index 0000000..509fed5 --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/instance/testUnclassifiedBlogPosts.st @@ -0,0 +1,3 @@ +tests +testUnclassifiedBlogPosts + self assert: (blog allBlogPosts select: [ :p | p isUnclassified ]) size equals: 0 \ No newline at end of file diff --git a/src/TinyBlog.package/TBBlogTest.class/properties.json b/src/TinyBlog.package/TBBlogTest.class/properties.json new file mode 100644 index 0000000..1d76842 --- /dev/null +++ b/src/TinyBlog.package/TBBlogTest.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "TinyBlog-Tests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "blog", + "post", + "first" ], + "name" : "TBBlogTest", + "pools" : [ + ], + "super" : "TestCase", + "type" : "normal" } diff --git a/src/TinyBlog.package/TBPost.class/instance/isVisible.st b/src/TinyBlog.package/TBPost.class/instance/isVisible.st index 4b6b88a..42a94b3 100644 --- a/src/TinyBlog.package/TBPost.class/instance/isVisible.st +++ b/src/TinyBlog.package/TBPost.class/instance/isVisible.st @@ -1,3 +1,3 @@ action isVisible - self visible \ No newline at end of file + ^ self visible \ No newline at end of file diff --git a/src/TinyBlog.package/monticello.meta/categories.st b/src/TinyBlog.package/monticello.meta/categories.st index 756fb29..aaea33f 100644 --- a/src/TinyBlog.package/monticello.meta/categories.st +++ b/src/TinyBlog.package/monticello.meta/categories.st @@ -1 +1,2 @@ SystemOrganization addCategory: #TinyBlog! +SystemOrganization addCategory: 'TinyBlog-Tests'!