wcc-blogs-client 0.7.2 → 0.7.3

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
- SHA256:
3
- metadata.gz: 31db17ab6f4a265987b00b832872f9012ab6eb28c4fbbbb64796b0095e3662a3
4
- data.tar.gz: c6722de62467c9c08fc0eca404a17e2bb269203ed49ac7cfd27ad0b2749d9d0f
2
+ SHA1:
3
+ metadata.gz: 877882f8f0a84886bda0d722f5c2193c4590556c
4
+ data.tar.gz: eaeb84c5dee20a2cc375a020d3d664141e433d19
5
5
  SHA512:
6
- metadata.gz: fa5fc97d7196188bb4a31f74c822aa79c1c5f161e4f97bb0a7be36461640d9260746609b55b044a06a14f5a561dc2f7a83370305178fa278cc7a3f4ef4b00a66
7
- data.tar.gz: 59b189fa06be52a11a85d2d4f9a3d0f1d5b2747e396dc19848d88b24fc59ddf5091f643b6157d67f0b55537774899dd69360c716722ae3ac763a3475ae99839e
6
+ metadata.gz: 1cc0ed72da511f3726da0b564f32d9e613c38a9196aeae1d9bce18bd8684de44b58d89d85ac8d908cb0a4ed709e81aa4723914aa6a9ff8847377257fa918d8bc
7
+ data.tar.gz: b4a19b7f2b0b0fafd90a80d0b822041c2ed0083d104899bcd99e1934eeff04c851512a98616aeb93dda7250ec5b4977e13b8c65acd71be781b39ff5f09d13b4e
@@ -1,11 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative './concerns/caching'
4
+
3
5
  module WCC::Blogs
4
6
  class Collection
5
7
  extend WCC::Blogs::Utils
8
+ include WCC::Blogs::Concerns::Caching
6
9
 
7
- def self.find(key = nil)
8
- new(WCC::Blogs.client.collection_show(key).raw, client: WCC::Blogs.client)
10
+ def self.find(key = nil, client: WCC::Blogs.client)
11
+ new(client.collection_show(key).raw, client: client)
9
12
  end
10
13
 
11
14
  attr_reader :raw
@@ -45,6 +48,10 @@ module WCC::Blogs
45
48
  OpenStruct.new(raw['_links'] || {})
46
49
  end
47
50
 
48
- alias cache_key digest
51
+ private
52
+
53
+ def cache_key_without_version
54
+ "WCC::Blogs::Collection/#{key}"
55
+ end
49
56
  end
50
57
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WCC::Blogs::Concerns
4
+ module Caching
5
+ def cache_key
6
+ unless defined?(ActiveRecord::Base) &&
7
+ ActiveRecord::Base.respond_to?(:cache_versioning) &&
8
+ ActiveRecord::Base.cache_versioning == true
9
+ return cache_key_with_version
10
+ end
11
+
12
+ cache_key_without_version
13
+ end
14
+
15
+ # https://guides.rubyonrails.org/caching_with_rails.html#low-level-caching
16
+ def cache_key_with_version
17
+ [cache_key_without_version, cache_version].join('/')
18
+ end
19
+
20
+ def cache_version
21
+ updated_at&.to_i
22
+ end
23
+ end
24
+ end
@@ -12,11 +12,12 @@ module WCC::Blogs
12
12
  end
13
13
 
14
14
  def full_post
15
- Post.new(@client.get(_links.self).raw)
15
+ Post.new(@client.get(_links.self).raw, client: @client)
16
16
  end
17
17
 
18
18
  define_camelcase_alias(
19
19
  'title',
20
+ 'subtitle',
20
21
  'slug'
21
22
  ) do |camelcase|
22
23
  raw[camelcase]
@@ -1,16 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative './concerns/caching'
4
+
3
5
  module WCC::Blogs
4
6
  class Post
5
7
  extend WCC::Blogs::Utils
8
+ include WCC::Blogs::Concerns::Caching
6
9
  require 'time'
7
10
 
8
- def self.find(slug)
9
- new(WCC::Blogs.client.blog_show(slug).raw, client: WCC::Blogs.client)
11
+ def self.find(slug, client: WCC::Blogs.client)
12
+ new(client.blog_show(slug).raw, client: client)
10
13
  end
11
14
 
12
- def self.find_all
13
- PostSummary.find_all.map(&:full_post)
15
+ def self.find_all(client: WCC::Blogs.client)
16
+ PostSummary.find_all(client: client).map(&:full_post)
14
17
  end
15
18
 
16
19
  attr_reader :raw
@@ -26,6 +29,7 @@ module WCC::Blogs
26
29
 
27
30
  def html
28
31
  @html ||= @client.get(_links.fragment)
32
+ .assert_ok!
29
33
  .body
30
34
  .force_encoding('UTF-8')
31
35
  end
@@ -38,11 +42,6 @@ module WCC::Blogs
38
42
  true
39
43
  end
40
44
 
41
- def time_to_read
42
- # TODO
43
- nil
44
- end
45
-
46
45
  def to_param
47
46
  slug.sub(%r{^/}, '')
48
47
  end
@@ -57,11 +56,14 @@ module WCC::Blogs
57
56
  'path',
58
57
  'digest',
59
58
  'fragment_path',
60
- 'read_time'
59
+ 'read_time',
60
+ 'word_count'
61
61
  ) do |camelcase|
62
62
  raw[camelcase]
63
63
  end
64
64
 
65
+ alias time_to_read read_time
66
+
65
67
  define_camelcase_alias(
66
68
  'date',
67
69
  'updated_at'
@@ -103,6 +105,10 @@ module WCC::Blogs
103
105
  related.map { |val| WCC::Blogs::LinkedBlogPostSummary.new(val, client: @client) }
104
106
  end
105
107
 
106
- alias cache_key digest
108
+ private
109
+
110
+ def cache_key_without_version
111
+ "WCC::Blogs::Post/#{slug}"
112
+ end
107
113
  end
108
114
  end
@@ -1,12 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative './concerns/caching'
4
+
3
5
  module WCC::Blogs
4
6
  class PostSummary
5
7
  extend WCC::Blogs::Utils
8
+ include WCC::Blogs::Concerns::Caching
6
9
 
7
- def self.find_all
8
- WCC::Blogs.client.blog_list.items.map do |summary|
9
- new(summary, client: WCC::Blogs.client)
10
+ def self.find_all(client: WCC::Blogs.client)
11
+ client.blog_list.items.map do |summary|
12
+ new(summary, client: client)
10
13
  end
11
14
  end
12
15
 
@@ -18,7 +21,7 @@ module WCC::Blogs
18
21
  end
19
22
 
20
23
  def full_post
21
- Post.new(@client.get(_links.self).raw)
24
+ Post.new(@client.get(_links.self).raw, client: @client)
22
25
  end
23
26
 
24
27
  define_camelcase_alias(
@@ -27,7 +30,8 @@ module WCC::Blogs
27
30
  'subtitle',
28
31
  'slug',
29
32
  'digest',
30
- 'read_time'
33
+ 'read_time',
34
+ 'word_count'
31
35
  ) do |camelcase|
32
36
  raw[camelcase]
33
37
  end
@@ -64,6 +68,10 @@ module WCC::Blogs
64
68
  values.map { |val| OpenStruct.new(val) if val }
65
69
  end
66
70
 
67
- alias cache_key digest
71
+ private
72
+
73
+ def cache_key_without_version
74
+ "WCC::Blogs::PostSummary/#{slug}"
75
+ end
68
76
  end
69
77
  end
@@ -1,12 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative './concerns/caching'
4
+
3
5
  module WCC::Blogs
4
6
  class Property
5
7
  extend WCC::Blogs::Utils
8
+ include WCC::Blogs::Concerns::Caching
6
9
  require 'time'
7
10
 
8
- def self.find(property = nil)
9
- new(WCC::Blogs.client.property_show(property).raw, client: WCC::Blogs.client)
11
+ def self.find(property = nil, client: WCC::Blogs.client)
12
+ new(client.property_show(property).raw, client: client)
10
13
  end
11
14
 
12
15
  attr_reader :raw
@@ -41,6 +44,10 @@ module WCC::Blogs
41
44
  targets.map { |val| OpenStruct.new(val) if val }
42
45
  end
43
46
 
44
- alias cache_key digest
47
+ private
48
+
49
+ def cache_key_without_version
50
+ "WCC::Blogs::Property/#{key}"
51
+ end
45
52
  end
46
53
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module WCC
4
4
  module Blogs
5
- VERSION = '0.7.2'
5
+ VERSION = '0.7.3'
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.7.2
4
+ version: 0.7.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Watermark Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-28 00:00:00.000000000 Z
11
+ date: 2021-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -197,6 +197,7 @@ files:
197
197
  - lib/wcc/blogs/client/response.rb
198
198
  - lib/wcc/blogs/collection.rb
199
199
  - lib/wcc/blogs/collection_summary.rb
200
+ - lib/wcc/blogs/concerns/caching.rb
200
201
  - lib/wcc/blogs/errors.rb
201
202
  - lib/wcc/blogs/linked_blog_post_summary.rb
202
203
  - lib/wcc/blogs/metadata.rb
@@ -226,7 +227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
227
  version: '0'
227
228
  requirements: []
228
229
  rubyforge_project:
229
- rubygems_version: 2.7.6
230
+ rubygems_version: 2.5.2.3
230
231
  signing_key:
231
232
  specification_version: 4
232
233
  summary: ''