wcc-blogs-client 0.5.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 45826ded41fe2c316d0d0e126d37eee7ccbc0905
4
- data.tar.gz: b63d37dfd4e8afe64207d51f67f5afd8495e1b21
2
+ SHA256:
3
+ metadata.gz: 31db17ab6f4a265987b00b832872f9012ab6eb28c4fbbbb64796b0095e3662a3
4
+ data.tar.gz: c6722de62467c9c08fc0eca404a17e2bb269203ed49ac7cfd27ad0b2749d9d0f
5
5
  SHA512:
6
- metadata.gz: c5259c147d6ae527a07739b8ba3b6f1303b8ff06acce4581d84ac3a80d26d55cbc4c64dda312028a1d65a86207c1df8833b13e6d02e5e7be7c1fe4a334b3ec70
7
- data.tar.gz: ff4a53072db59a17543287015d85fab4b73867301f7ae1cbedbfd7e339125aa5a3971758fe7cd7539765472f25e68159db9340508696b1b9421cf9f0ca61aca7
6
+ metadata.gz: fa5fc97d7196188bb4a31f74c822aa79c1c5f161e4f97bb0a7be36461640d9260746609b55b044a06a14f5a561dc2f7a83370305178fa278cc7a3f4ef4b00a66
7
+ data.tar.gz: 59b189fa06be52a11a85d2d4f9a3d0f1d5b2747e396dc19848d88b24fc59ddf5091f643b6157d67f0b55537774899dd69360c716722ae3ac763a3475ae99839e
@@ -10,7 +10,10 @@ require 'wcc/blogs/errors'
10
10
  require 'wcc/blogs/metadata'
11
11
  require 'wcc/blogs/post'
12
12
  require 'wcc/blogs/post_summary'
13
+ require 'wcc/blogs/linked_blog_post_summary'
13
14
  require 'wcc/blogs/property'
15
+ require 'wcc/blogs/collection'
16
+ require 'wcc/blogs/collection_summary'
14
17
 
15
18
  module WCC::Blogs
16
19
  class << self
@@ -40,6 +40,11 @@ module WCC::Blogs
40
40
  get(path).assert_ok!
41
41
  end
42
42
 
43
+ def collection_show(key)
44
+ path = base_path + '/collection/' + key
45
+ get(path).assert_ok!
46
+ end
47
+
43
48
  def blog_list(property: nil, year: nil)
44
49
  property ||= default_property
45
50
  raise ArgumentError, 'No Property given' unless property
@@ -20,7 +20,7 @@ module WCC::Blogs
20
20
  alias_method :to_json, :raw
21
21
 
22
22
  def next_page_url
23
- raw.dig('_links', 'previous')
23
+ raw.dig('_links', 'next')
24
24
  end
25
25
 
26
26
  def next_page?
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WCC::Blogs
4
+ class Collection
5
+ extend WCC::Blogs::Utils
6
+
7
+ def self.find(key = nil)
8
+ new(WCC::Blogs.client.collection_show(key).raw, client: WCC::Blogs.client)
9
+ end
10
+
11
+ attr_reader :raw
12
+
13
+ def initialize(raw, client: WCC::Blogs.client)
14
+ @raw = raw
15
+ @client = client
16
+ end
17
+
18
+ def to_param
19
+ key
20
+ end
21
+
22
+ define_camelcase_alias(
23
+ 'key',
24
+ 'title',
25
+ 'digest',
26
+ 'updated_at'
27
+ ) do |camelcase|
28
+ raw[camelcase]
29
+ end
30
+
31
+ define_camelcase_alias(
32
+ 'hero_image'
33
+ ) do |camelcase|
34
+ OpenStruct.new(raw[camelcase]) if raw[camelcase]
35
+ end
36
+
37
+ def posts
38
+ @posts ||=
39
+ (raw['posts'] || []).map do |summary|
40
+ PostSummary.new(summary, client: @client)
41
+ end
42
+ end
43
+
44
+ def _links
45
+ OpenStruct.new(raw['_links'] || {})
46
+ end
47
+
48
+ alias cache_key digest
49
+ end
50
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WCC::Blogs
4
+ class CollectionSummary
5
+ extend WCC::Blogs::Utils
6
+
7
+ attr_reader :raw
8
+
9
+ def initialize(raw, client: WCC::Blogs.client)
10
+ @raw = raw
11
+ @client = client
12
+ end
13
+
14
+ define_camelcase_alias(
15
+ 'key',
16
+ 'title'
17
+ ) do |camelcase|
18
+ raw[camelcase]
19
+ end
20
+
21
+ def posts
22
+ @posts ||=
23
+ (raw['posts'] || []).map do |summary|
24
+ WCC::Blogs::LinkedBlogPostSummary.new(summary, client: @client)
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WCC::Blogs
4
+ class LinkedBlogPostSummary
5
+ extend WCC::Blogs::Utils
6
+
7
+ attr_reader :raw
8
+
9
+ def initialize(raw, client: WCC::Blogs.client)
10
+ @raw = raw
11
+ @client = client
12
+ end
13
+
14
+ def full_post
15
+ Post.new(@client.get(_links.self).raw)
16
+ end
17
+
18
+ define_camelcase_alias(
19
+ 'title',
20
+ 'slug'
21
+ ) do |camelcase|
22
+ raw[camelcase]
23
+ end
24
+
25
+ define_camelcase_alias(
26
+ 'date'
27
+ ) do |camelcase|
28
+ value = raw[camelcase]
29
+
30
+ Time.parse(value) if value&.length
31
+ end
32
+
33
+ def _links
34
+ OpenStruct.new(raw['_links'] || {})
35
+ end
36
+ end
37
+ end
@@ -56,7 +56,8 @@ module WCC::Blogs
56
56
  'host',
57
57
  'path',
58
58
  'digest',
59
- 'fragment_path'
59
+ 'fragment_path',
60
+ 'read_time'
60
61
  ) do |camelcase|
61
62
  raw[camelcase]
62
63
  end
@@ -93,6 +94,15 @@ module WCC::Blogs
93
94
  targets.map { |val| OpenStruct.new(val) if val }
94
95
  end
95
96
 
97
+ def collection
98
+ CollectionSummary.new(raw['collection'], client: @client) if raw['collection']
99
+ end
100
+
101
+ define_camelcase_alias('related_posts') do |camelcase|
102
+ related = raw[camelcase] || []
103
+ related.map { |val| WCC::Blogs::LinkedBlogPostSummary.new(val, client: @client) }
104
+ end
105
+
96
106
  alias cache_key digest
97
107
  end
98
108
  end
@@ -26,7 +26,8 @@ module WCC::Blogs
26
26
  'title',
27
27
  'subtitle',
28
28
  'slug',
29
- 'digest'
29
+ 'digest',
30
+ 'read_time'
30
31
  ) do |camelcase|
31
32
  raw[camelcase]
32
33
  end
@@ -42,6 +43,7 @@ module WCC::Blogs
42
43
 
43
44
  define_camelcase_alias(
44
45
  'author',
46
+ 'hero_image',
45
47
  'thumbnail_image',
46
48
  'flags'
47
49
  ) do |camelcase|
@@ -22,7 +22,8 @@ module WCC::Blogs
22
22
 
23
23
  define_camelcase_alias(
24
24
  'key',
25
- 'digest'
25
+ 'digest',
26
+ 'updated_at'
26
27
  ) do |camelcase|
27
28
  raw[camelcase]
28
29
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module WCC
4
4
  module Blogs
5
- VERSION = '0.5.1'
5
+ VERSION = '0.7.2'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wcc-blogs-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Watermark Dev
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-12 00:00:00.000000000 Z
11
+ date: 2020-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -195,7 +195,10 @@ files:
195
195
  - lib/wcc/blogs.rb
196
196
  - lib/wcc/blogs/client.rb
197
197
  - lib/wcc/blogs/client/response.rb
198
+ - lib/wcc/blogs/collection.rb
199
+ - lib/wcc/blogs/collection_summary.rb
198
200
  - lib/wcc/blogs/errors.rb
201
+ - lib/wcc/blogs/linked_blog_post_summary.rb
199
202
  - lib/wcc/blogs/metadata.rb
200
203
  - lib/wcc/blogs/post.rb
201
204
  - lib/wcc/blogs/post_summary.rb
@@ -207,7 +210,7 @@ homepage: https://github.com/watermarkchurch/papyrus/wcc-blogs-client
207
210
  licenses:
208
211
  - MIT
209
212
  metadata: {}
210
- post_install_message:
213
+ post_install_message:
211
214
  rdoc_options: []
212
215
  require_paths:
213
216
  - lib
@@ -222,9 +225,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
225
  - !ruby/object:Gem::Version
223
226
  version: '0'
224
227
  requirements: []
225
- rubyforge_project:
226
- rubygems_version: 2.5.2
227
- signing_key:
228
+ rubyforge_project:
229
+ rubygems_version: 2.7.6
230
+ signing_key:
228
231
  specification_version: 4
229
232
  summary: ''
230
233
  test_files: []