wcc-media-client 0.1.0 → 0.1.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 +4 -4
- data/lib/wcc/media/cacheable.rb +18 -0
- data/lib/wcc/media/client/version.rb +1 -1
- data/lib/wcc/media/client.rb +4 -4
- data/lib/wcc/media/message.rb +53 -45
- data/lib/wcc/media/series.rb +32 -26
- data/lib/wcc/media/speaker.rb +23 -17
- data/lib/wcc/media/tag.rb +22 -16
- data/wcc-media-client.gemspec +1 -1
- metadata +17 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ab1f8952164ed4d304c0655216b90ec90a969ba
|
4
|
+
data.tar.gz: 064456e4cb0746adf4b3f824b9d6ef14cad2dbeb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e83253123e385d7c2d45f7dbb714aacebea52aa8466061349489b0cab6b1dd0b8faf3425575f019ba79bb9928d799b8c0eb3d0b88ae0e77fb36582a62850656
|
7
|
+
data.tar.gz: bef64997aec54a3d860686e0f322b1cfb0b5705cf4ec783835d790d12879c006d9afd76bcb591b3dfd56c7d7e3da99d78bbbbdef7d9094c0eaec456e104c8d91
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module WCC
|
2
|
+
module Media
|
3
|
+
module Cacheable
|
4
|
+
def cache_key
|
5
|
+
return @cache_key if @cache_key
|
6
|
+
|
7
|
+
key =
|
8
|
+
(headers&.fetch('Etag', nil) if respond_to?(:headers))
|
9
|
+
key ||= WCC::Media::Cacheable.hash_cache_key(raw)
|
10
|
+
@cache_key = "#{self.class.name}/#{key}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.hash_cache_key(hash)
|
14
|
+
Digest::SHA1.hexdigest(Marshal.dump(hash))
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/wcc/media/client.rb
CHANGED
@@ -46,7 +46,7 @@ module WCC
|
|
46
46
|
def message(id)
|
47
47
|
resp = get("messages/#{id}")
|
48
48
|
resp.assert_ok!
|
49
|
-
WCC::Media::Message.new(resp.body['message'])
|
49
|
+
WCC::Media::Message.new(resp.body['message'], resp.headers.freeze)
|
50
50
|
end
|
51
51
|
|
52
52
|
SERIES_FILTERS = %w[
|
@@ -72,7 +72,7 @@ module WCC
|
|
72
72
|
def series(id)
|
73
73
|
resp = get("series/#{id}")
|
74
74
|
resp.assert_ok!
|
75
|
-
WCC::Media::Series.new(resp.body['series'])
|
75
|
+
WCC::Media::Series.new(resp.body['series'], resp.headers.freeze)
|
76
76
|
end
|
77
77
|
|
78
78
|
SPEAKERS_FILTERS = %w[
|
@@ -92,7 +92,7 @@ module WCC
|
|
92
92
|
def speaker(id)
|
93
93
|
resp = get("speakers/#{id}")
|
94
94
|
resp.assert_ok!
|
95
|
-
WCC::Media::Speaker.new(resp.body['speaker'])
|
95
|
+
WCC::Media::Speaker.new(resp.body['speaker'], resp.headers.freeze)
|
96
96
|
end
|
97
97
|
|
98
98
|
TAGS_FILTERS = %w[
|
@@ -110,7 +110,7 @@ module WCC
|
|
110
110
|
def tag(id)
|
111
111
|
resp = get("tags/#{id}")
|
112
112
|
resp.assert_ok!
|
113
|
-
WCC::Media::Tag.new(resp.body['tag'])
|
113
|
+
WCC::Media::Tag.new(resp.body['tag'], resp.headers.freeze)
|
114
114
|
end
|
115
115
|
|
116
116
|
private
|
data/lib/wcc/media/message.rb
CHANGED
@@ -1,60 +1,68 @@
|
|
1
|
+
require_relative 'cacheable'
|
2
|
+
|
1
3
|
module WCC
|
2
4
|
module Media
|
3
|
-
Message
|
4
|
-
|
5
|
-
def id
|
6
|
-
raw['id']&.to_s
|
7
|
-
end
|
5
|
+
class Message
|
6
|
+
include WCC::Media::Cacheable
|
8
7
|
|
9
|
-
|
10
|
-
raw['legacy_id']&.to_s
|
11
|
-
end
|
8
|
+
attr_reader :raw, :headers
|
12
9
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
series_position
|
18
|
-
].each do |att|
|
19
|
-
define_method att do
|
20
|
-
raw[att]
|
21
|
-
end
|
22
|
-
end
|
10
|
+
def initialize(raw, headers = {})
|
11
|
+
@raw = raw
|
12
|
+
@headers = headers
|
13
|
+
end
|
23
14
|
|
24
|
-
|
25
|
-
|
26
|
-
|
15
|
+
def id
|
16
|
+
raw['id']&.to_s
|
17
|
+
end
|
27
18
|
|
28
|
-
|
29
|
-
|
30
|
-
|
19
|
+
def legacy_id
|
20
|
+
raw['legacy_id']&.to_s
|
21
|
+
end
|
31
22
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
23
|
+
%w[
|
24
|
+
date
|
25
|
+
title
|
26
|
+
description
|
27
|
+
series_position
|
28
|
+
].each do |att|
|
29
|
+
define_method att do
|
30
|
+
raw[att]
|
39
31
|
end
|
32
|
+
end
|
40
33
|
|
41
|
-
|
42
|
-
|
43
|
-
|
34
|
+
def speakers
|
35
|
+
(raw['speakers'] || []).map { |val| Speaker.new(val) }
|
36
|
+
end
|
37
|
+
|
38
|
+
def tags
|
39
|
+
(raw['tags'] || []).map { |val| Tag.new(val) }
|
40
|
+
end
|
44
41
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
].each do |att|
|
52
|
-
define_method att do
|
53
|
-
OpenStruct.new(raw[att]) if raw[att]
|
54
|
-
end
|
42
|
+
%w[
|
43
|
+
scripture_references
|
44
|
+
downloads
|
45
|
+
].each do |att|
|
46
|
+
define_method att do
|
47
|
+
(raw[att] || []).map { |val| OpenStruct.new(val) }
|
55
48
|
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def series
|
52
|
+
Series.new(raw['series']) if raw['series']
|
53
|
+
end
|
56
54
|
|
57
|
-
|
55
|
+
%w[
|
56
|
+
embeds
|
57
|
+
assets
|
58
|
+
images
|
59
|
+
external_urls
|
60
|
+
transcript
|
61
|
+
].each do |att|
|
62
|
+
define_method att do
|
63
|
+
OpenStruct.new(raw[att]) if raw[att]
|
64
|
+
end
|
58
65
|
end
|
66
|
+
end
|
59
67
|
end
|
60
68
|
end
|
data/lib/wcc/media/series.rb
CHANGED
@@ -1,36 +1,42 @@
|
|
1
1
|
module WCC
|
2
2
|
module Media
|
3
|
-
Series
|
4
|
-
|
5
|
-
def id
|
6
|
-
raw['id']&.to_s
|
7
|
-
end
|
3
|
+
class Series
|
4
|
+
include WCC::Media::Cacheable
|
8
5
|
|
9
|
-
|
10
|
-
raw['legacy_id']&.to_s
|
11
|
-
end
|
6
|
+
attr_reader :raw, :headers
|
12
7
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
]
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
8
|
+
def initialize(raw, headers = {})
|
9
|
+
@raw = raw
|
10
|
+
@headers = headers
|
11
|
+
end
|
12
|
+
|
13
|
+
def id
|
14
|
+
raw['id']&.to_s
|
15
|
+
end
|
16
|
+
|
17
|
+
def legacy_id
|
18
|
+
raw['legacy_id']&.to_s
|
19
|
+
end
|
24
20
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
21
|
+
%w[
|
22
|
+
title
|
23
|
+
subtitle
|
24
|
+
summary
|
25
|
+
date_range
|
26
|
+
messages_count
|
27
|
+
].each do |att|
|
28
|
+
define_method att do
|
29
|
+
raw[att]
|
31
30
|
end
|
31
|
+
end
|
32
32
|
|
33
|
-
|
33
|
+
%w[
|
34
|
+
images
|
35
|
+
].each do |att|
|
36
|
+
define_method att do
|
37
|
+
OpenStruct.new(raw[att]) if raw[att]
|
38
|
+
end
|
34
39
|
end
|
40
|
+
end
|
35
41
|
end
|
36
42
|
end
|
data/lib/wcc/media/speaker.rb
CHANGED
@@ -1,25 +1,31 @@
|
|
1
1
|
module WCC
|
2
2
|
module Media
|
3
|
-
Speaker
|
4
|
-
|
5
|
-
def id
|
6
|
-
raw['id']&.to_s
|
7
|
-
end
|
3
|
+
class Speaker
|
4
|
+
include WCC::Media::Cacheable
|
8
5
|
|
9
|
-
|
10
|
-
raw['legacy_id']&.to_s
|
11
|
-
end
|
6
|
+
attr_reader :raw, :headers
|
12
7
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
define_method att do
|
18
|
-
raw[att]
|
19
|
-
end
|
20
|
-
end
|
8
|
+
def initialize(raw, headers = {})
|
9
|
+
@raw = raw
|
10
|
+
@headers = headers
|
11
|
+
end
|
21
12
|
|
22
|
-
|
13
|
+
def id
|
14
|
+
raw['id']&.to_s
|
15
|
+
end
|
16
|
+
|
17
|
+
def legacy_id
|
18
|
+
raw['legacy_id']&.to_s
|
19
|
+
end
|
20
|
+
|
21
|
+
%w[
|
22
|
+
featured
|
23
|
+
name
|
24
|
+
].each do |att|
|
25
|
+
define_method att do
|
26
|
+
raw[att]
|
27
|
+
end
|
23
28
|
end
|
29
|
+
end
|
24
30
|
end
|
25
31
|
end
|
data/lib/wcc/media/tag.rb
CHANGED
@@ -1,24 +1,30 @@
|
|
1
1
|
module WCC
|
2
2
|
module Media
|
3
|
-
Tag
|
4
|
-
|
5
|
-
def id
|
6
|
-
raw['id']&.to_s
|
7
|
-
end
|
3
|
+
class Tag
|
4
|
+
include WCC::Media::Cacheable
|
8
5
|
|
9
|
-
|
10
|
-
raw['legacy_id']&.to_s
|
11
|
-
end
|
6
|
+
attr_reader :raw, :headers
|
12
7
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
raw[att]
|
18
|
-
end
|
19
|
-
end
|
8
|
+
def initialize(raw, headers = {})
|
9
|
+
@raw = raw
|
10
|
+
@headers = headers
|
11
|
+
end
|
20
12
|
|
21
|
-
|
13
|
+
def id
|
14
|
+
raw['id']&.to_s
|
15
|
+
end
|
16
|
+
|
17
|
+
def legacy_id
|
18
|
+
raw['legacy_id']&.to_s
|
19
|
+
end
|
20
|
+
|
21
|
+
%w[
|
22
|
+
name
|
23
|
+
].each do |att|
|
24
|
+
define_method att do
|
25
|
+
raw[att]
|
26
|
+
end
|
22
27
|
end
|
28
|
+
end
|
23
29
|
end
|
24
30
|
end
|
data/wcc-media-client.gemspec
CHANGED
@@ -27,9 +27,9 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency 'byebug'
|
28
28
|
spec.add_development_dependency 'http', '> 1.0', '< 3.0'
|
29
29
|
spec.add_development_dependency 'httplog', '~> 1.0'
|
30
|
+
spec.add_development_dependency 'rake', '~> 12.3'
|
30
31
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
31
32
|
spec.add_development_dependency 'rspec_junit_formatter', '~> 0.3.0'
|
32
33
|
spec.add_development_dependency 'typhoeus', '~> 1.3'
|
33
34
|
spec.add_development_dependency 'webmock', '~> 3.0'
|
34
|
-
spec.add_development_dependency 'rake', '~> 12.3'
|
35
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wcc-media-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.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: 2018-11-
|
11
|
+
date: 2018-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|
@@ -58,6 +58,20 @@ dependencies:
|
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '1.0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rake
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '12.3'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '12.3'
|
61
75
|
- !ruby/object:Gem::Dependency
|
62
76
|
name: rspec
|
63
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,20 +128,6 @@ dependencies:
|
|
114
128
|
- - "~>"
|
115
129
|
- !ruby/object:Gem::Version
|
116
130
|
version: '3.0'
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: rake
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '12.3'
|
124
|
-
type: :development
|
125
|
-
prerelease: false
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - "~>"
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: '12.3'
|
131
131
|
description: REST Client for accessing the WCC Media library
|
132
132
|
email:
|
133
133
|
- dev@watermark.org
|
@@ -144,6 +144,7 @@ files:
|
|
144
144
|
- lib/rest_client/http_adapter.rb
|
145
145
|
- lib/rest_client/response.rb
|
146
146
|
- lib/rest_client/typhoeus_adapter.rb
|
147
|
+
- lib/wcc/media/cacheable.rb
|
147
148
|
- lib/wcc/media/client.rb
|
148
149
|
- lib/wcc/media/client/response.rb
|
149
150
|
- lib/wcc/media/client/version.rb
|