wcc-blogs-client 0.5.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
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: []