wcc-blogs-client 0.5.1 → 0.5.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
2
  SHA1:
3
- metadata.gz: 45826ded41fe2c316d0d0e126d37eee7ccbc0905
4
- data.tar.gz: b63d37dfd4e8afe64207d51f67f5afd8495e1b21
3
+ metadata.gz: 55db25dca22951c220756f7a472ab3f7d65c0da3
4
+ data.tar.gz: d47dc5b1f2a2092dfffdfe1ec59e64eff21667fc
5
5
  SHA512:
6
- metadata.gz: c5259c147d6ae527a07739b8ba3b6f1303b8ff06acce4581d84ac3a80d26d55cbc4c64dda312028a1d65a86207c1df8833b13e6d02e5e7be7c1fe4a334b3ec70
7
- data.tar.gz: ff4a53072db59a17543287015d85fab4b73867301f7ae1cbedbfd7e339125aa5a3971758fe7cd7539765472f25e68159db9340508696b1b9421cf9f0ca61aca7
6
+ metadata.gz: 321b737f61714148d6cb645d48dacf306eddd3aac66688c88069083d9fc70c2442b95985d7f38a903a1e46a05dfe18891cb21376d4585085e467620d8e9c4a09
7
+ data.tar.gz: 1010a79f4de4080c609a5e49a2152a9e66f23e6a320485d481b6962cfd9c937f8f207911d9f6f517f4429713a76030519e76ecf6b2f898f5a96d26479fcb2481
@@ -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
@@ -0,0 +1,43 @@
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
+ ) do |camelcase|
27
+ raw[camelcase]
28
+ end
29
+
30
+ def posts
31
+ @posts ||=
32
+ (raw['posts'] || []).map do |summary|
33
+ PostSummary.new(summary, client: @client)
34
+ end
35
+ end
36
+
37
+ def _links
38
+ OpenStruct.new(raw['_links'] || {})
39
+ end
40
+
41
+ alias cache_key digest
42
+ end
43
+ end
@@ -0,0 +1,53 @@
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
+ PostReference.new(summary, client: @client)
25
+ end
26
+ end
27
+
28
+ class PostReference
29
+ extend WCC::Blogs::Utils
30
+
31
+ attr_reader :raw
32
+
33
+ def initialize(raw, client: WCC::Blogs.client)
34
+ @raw = raw
35
+ @client = client
36
+ end
37
+
38
+ def full_post
39
+ Post.new(@client.get(_links.self).raw)
40
+ end
41
+
42
+ define_camelcase_alias(
43
+ 'slug'
44
+ ) do |camelcase|
45
+ raw[camelcase]
46
+ end
47
+
48
+ def _links
49
+ OpenStruct.new(raw['_links'] || {})
50
+ end
51
+ end
52
+ end
53
+ end
@@ -93,6 +93,10 @@ module WCC::Blogs
93
93
  targets.map { |val| OpenStruct.new(val) if val }
94
94
  end
95
95
 
96
+ def collection
97
+ CollectionSummary.new(raw['collection'], client: @client) if raw['collection']
98
+ end
99
+
96
100
  alias cache_key digest
97
101
  end
98
102
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module WCC
4
4
  module Blogs
5
- VERSION = '0.5.1'
5
+ VERSION = '0.5.2'
6
6
  end
7
7
  end
data/lib/wcc/blogs.rb CHANGED
@@ -11,6 +11,8 @@ require 'wcc/blogs/metadata'
11
11
  require 'wcc/blogs/post'
12
12
  require 'wcc/blogs/post_summary'
13
13
  require 'wcc/blogs/property'
14
+ require 'wcc/blogs/collection'
15
+ require 'wcc/blogs/collection_summary'
14
16
 
15
17
  module WCC::Blogs
16
18
  class << self
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.5.2
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-05-12 00:00:00.000000000 Z
11
+ date: 2020-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -195,6 +195,8 @@ 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
199
201
  - lib/wcc/blogs/metadata.rb
200
202
  - lib/wcc/blogs/post.rb