wcc-blogs-client 0.5.0 → 0.7.1

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
2
  SHA1:
3
- metadata.gz: 0c78893a25c9e2252d2f9d74b98edda330431acb
4
- data.tar.gz: 1279b6a5b6b9187e263fd08b44f6a8d49c41d59b
3
+ metadata.gz: 1766fd4d8fecefde0ba57369f70efba36e7aa558
4
+ data.tar.gz: 7e39a4e475a4073a8c68180e09f9ad249097df44
5
5
  SHA512:
6
- metadata.gz: 9c934c2e891686e538d28c971493a6be00b52271b0030e2fcd63db63ba6c88867d2cf2056fe0af7887e34b34e9a0ae859992f93f6adf9490a21159021a6d2cc8
7
- data.tar.gz: 4c78ff0155b8544737013998abf1ff0918948049306c9d3a89c40c6e4177bb10b99236538d1f254c7cb2bae28652682124cb9d2b4ceb1dd1c32f4ba7deeb64d5
6
+ metadata.gz: f7a28940f9c3ab5e61e66f8025f9133eab2238fad95180cf43085c6e8d827e06bbb914e7452f838d6461bea523911ba033653ce9e9f1a816422d2fc4e1e7fe89
7
+ data.tar.gz: b38adc2893af4c73a13d7342dbd778e93f6b30fd09235d03e50796910efb4154587af56650fe22e575d453667e5ffc85a1acf6f1ad9b3b9281b01e83fc111f61
@@ -1,5 +1,9 @@
1
1
  inherit_from: .rubocop_todo.yml
2
2
 
3
+ AllCops:
4
+ DisplayCopNames: true
5
+ TargetRubyVersion: 2.3
6
+
3
7
  Lint/AssignmentInCondition:
4
8
  Enabled: false
5
9
 
data/Guardfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  directories %w[lib spec]
2
4
 
3
5
  group :red_green_refactor, halt_on_fail: true do
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/gem_helper"
2
4
 
3
5
  Bundler::GemHelper.install_tasks
@@ -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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'forwardable'
2
4
 
3
5
  module WCC::Blogs
@@ -18,7 +20,7 @@ module WCC::Blogs
18
20
  alias_method :to_json, :raw
19
21
 
20
22
  def next_page_url
21
- raw.dig('_links', 'previous')
23
+ raw.dig('_links', 'next')
22
24
  end
23
25
 
24
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
@@ -21,9 +21,7 @@ module WCC::Blogs
21
21
  end
22
22
 
23
23
  def author_full_name
24
- return unless author
25
-
26
- [author.firstName, author.lastName].compact.join(' ')
24
+ author&.fullName
27
25
  end
28
26
 
29
27
  def html
@@ -69,13 +67,14 @@ module WCC::Blogs
69
67
  ) do |camelcase|
70
68
  value = raw[camelcase]
71
69
 
72
- Time.parse(value) if value && value.length
70
+ Time.parse(value) if value&.length
73
71
  end
74
72
 
75
73
  define_camelcase_alias(
76
74
  'author',
77
75
  'hero_image',
78
- 'thumbnail_image'
76
+ 'thumbnail_image',
77
+ 'flags'
79
78
  ) do |camelcase|
80
79
  OpenStruct.new(raw[camelcase]) if raw[camelcase]
81
80
  end
@@ -94,6 +93,15 @@ module WCC::Blogs
94
93
  targets.map { |val| OpenStruct.new(val) if val }
95
94
  end
96
95
 
96
+ def collection
97
+ CollectionSummary.new(raw['collection'], client: @client) if raw['collection']
98
+ end
99
+
100
+ define_camelcase_alias('related_posts') do |camelcase|
101
+ related = raw[camelcase] || []
102
+ related.map { |val| WCC::Blogs::LinkedBlogPostSummary.new(val, client: @client) }
103
+ end
104
+
97
105
  alias cache_key digest
98
106
  end
99
107
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module WCC::Blogs
2
4
  class PostSummary
3
5
  extend WCC::Blogs::Utils
@@ -35,12 +37,14 @@ module WCC::Blogs
35
37
  ) do |camelcase|
36
38
  value = raw[camelcase]
37
39
 
38
- Time.parse(value) if value && value.length
40
+ Time.parse(value) if value&.length
39
41
  end
40
42
 
41
43
  define_camelcase_alias(
42
44
  'author',
43
- 'thumbnail_image'
45
+ 'hero_image',
46
+ 'thumbnail_image',
47
+ 'flags'
44
48
  ) do |camelcase|
45
49
  OpenStruct.new(raw[camelcase]) if raw[camelcase]
46
50
  end
@@ -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.0'.freeze
5
+ VERSION = '0.7.1'
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.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Watermark Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-26 00:00:00.000000000 Z
11
+ date: 2020-08-07 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