wcc-blogs-client 0.5.1 → 0.5.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
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