wcc-blogs-client 0.7.2 → 0.7.3

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
- 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: ''