wcc-media-client 0.1.1 → 0.2.0
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/rest_client/http_adapter.rb +0 -9
- data/lib/rest_client/typhoeus_adapter.rb +0 -12
- data/lib/wcc/media/active_record_shim.rb +77 -0
- data/lib/wcc/media/base.rb +18 -0
- data/lib/wcc/media/client.rb +57 -111
- data/lib/wcc/media/client/version.rb +1 -1
- data/lib/wcc/media/message.rb +57 -56
- data/lib/wcc/media/series.rb +37 -34
- data/lib/wcc/media/speaker.rb +22 -24
- data/lib/wcc/media/tag.rb +19 -23
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6f7fff717257c4c3d0b5d052cc3a6fa470d4d7e
|
4
|
+
data.tar.gz: 48d5c6b4ea93e3d413bbe88e31f35d8a08437939
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6daa3c34162ead40627b16a930d8336864a15527c871eb4f02113cfa0a2be6022d26d6ecd3fd53cd19b94c1e63c1b2ed0db0556aafdd2fbc656c2b00ede3a53
|
7
|
+
data.tar.gz: 2e6c537ea480120c8d72b87b54bf8c79012980df1516c48314cd9d4ee3d48a28cdc8415f4bb8bfe30cc5d0f2d2c6cb4661e4c754d2814b48d87dbb6f6cfb7804
|
@@ -12,13 +12,4 @@ class HttpAdapter
|
|
12
12
|
HTTP[headers].get(url, params: query)
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
16
|
-
def post(url, body, headers = {}, proxy = {})
|
17
|
-
if proxy[:host]
|
18
|
-
HTTP[headers].via(proxy[:host], proxy[:port], proxy[:username], proxy[:password])
|
19
|
-
.post(url, json: body)
|
20
|
-
else
|
21
|
-
HTTP[headers].post(url, json: body)
|
22
|
-
end
|
23
|
-
end
|
24
15
|
end
|
@@ -18,18 +18,6 @@ class RestClient
|
|
18
18
|
)
|
19
19
|
end
|
20
20
|
|
21
|
-
def post(url, body, headers = {}, proxy = {})
|
22
|
-
raise NotImplementedError, 'Proxying Not Yet Implemented' if proxy[:host]
|
23
|
-
|
24
|
-
TyphoeusAdapter::Response.new(
|
25
|
-
Typhoeus.post(
|
26
|
-
url,
|
27
|
-
body: body.to_json,
|
28
|
-
headers: headers
|
29
|
-
)
|
30
|
-
)
|
31
|
-
end
|
32
|
-
|
33
21
|
Response =
|
34
22
|
Struct.new(:raw) do
|
35
23
|
extend Forwardable
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module WCC::Media::ActiveRecordShim
|
2
|
+
def self.included(base)
|
3
|
+
base.public_send :include, InstanceMethods
|
4
|
+
base.extend ClassMethods
|
5
|
+
end
|
6
|
+
|
7
|
+
module InstanceMethods
|
8
|
+
def attributes
|
9
|
+
raw
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module ClassMethods
|
14
|
+
def active_record_shim(&block)
|
15
|
+
builder = ShimBuilder.new
|
16
|
+
builder.instance_eval(&block)
|
17
|
+
builder.apply(self)
|
18
|
+
self
|
19
|
+
end
|
20
|
+
|
21
|
+
def find(id)
|
22
|
+
client.public_send(endpoint).find(id)
|
23
|
+
end
|
24
|
+
|
25
|
+
def find_all(**filters)
|
26
|
+
client.public_send(endpoint).list(filters)
|
27
|
+
end
|
28
|
+
|
29
|
+
def find_by(**filters)
|
30
|
+
raise ArgumentError, "You must provide at least one filter" if filters.empty?
|
31
|
+
|
32
|
+
find_all(filters).first
|
33
|
+
end
|
34
|
+
|
35
|
+
def model_name
|
36
|
+
name
|
37
|
+
end
|
38
|
+
|
39
|
+
def table_name
|
40
|
+
endpoint
|
41
|
+
end
|
42
|
+
|
43
|
+
def unscoped
|
44
|
+
yield
|
45
|
+
end
|
46
|
+
|
47
|
+
def find_in_batches(options, &block)
|
48
|
+
options = options ? options.dup : {}
|
49
|
+
batch_size = options.delete(:batch_size) || 1000
|
50
|
+
filter = {
|
51
|
+
limit: batch_size,
|
52
|
+
offset: options.delete(:start) || 0
|
53
|
+
}
|
54
|
+
|
55
|
+
find_all(filter).each_slice(batch_size, &block)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
class ShimBuilder
|
60
|
+
def apply(klass)
|
61
|
+
filters = (@filters || []).freeze
|
62
|
+
endpoint = @endpoint || klass.name.split('::').last.downcase
|
63
|
+
name = @name || klass.name.split('::').last.downcase
|
64
|
+
klass.instance_eval do
|
65
|
+
define_singleton_method('filters') { filters }
|
66
|
+
define_singleton_method('endpoint') { endpoint }
|
67
|
+
define_singleton_method('name') { name }
|
68
|
+
define_singleton_method('client=') { |client| @client = client }
|
69
|
+
define_singleton_method('client') { @client || WCC::Media::Client.default }
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
[:filters, :endpoint, :name].each do |att|
|
74
|
+
class_eval("def #{att}(value); @#{att} = value; end", __FILE__, __LINE__)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'cacheable'
|
2
|
+
require_relative 'active_record_shim'
|
3
|
+
|
4
|
+
module WCC
|
5
|
+
module Media
|
6
|
+
class Base
|
7
|
+
include WCC::Media::Cacheable
|
8
|
+
include WCC::Media::ActiveRecordShim
|
9
|
+
|
10
|
+
attr_reader :raw, :headers
|
11
|
+
|
12
|
+
def initialize(raw, headers = {})
|
13
|
+
@raw = raw
|
14
|
+
@headers = headers
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/wcc/media/client.rb
CHANGED
@@ -8,6 +8,10 @@ require_relative 'client/response'
|
|
8
8
|
module WCC
|
9
9
|
module Media
|
10
10
|
class Client < RestClient
|
11
|
+
def self.default
|
12
|
+
@default ||= new
|
13
|
+
end
|
14
|
+
|
11
15
|
PARAMS = %w[
|
12
16
|
limit
|
13
17
|
offset
|
@@ -16,128 +20,70 @@ module WCC
|
|
16
20
|
target
|
17
21
|
].freeze
|
18
22
|
|
23
|
+
RESOURCES = {
|
24
|
+
'messages' => WCC::Media::Message,
|
25
|
+
'series' => WCC::Media::Series,
|
26
|
+
'speakers' => WCC::Media::Speaker,
|
27
|
+
'tags' => WCC::Media::Tag
|
28
|
+
}.freeze
|
29
|
+
attr_reader(*RESOURCES.keys)
|
30
|
+
|
31
|
+
attr_reader :options
|
32
|
+
|
19
33
|
def initialize(**options)
|
20
34
|
options = {
|
21
35
|
api_url: 'https://media.watermark.org/api/v1/',
|
22
36
|
response_class: Response
|
23
37
|
}.merge!(options)
|
24
38
|
super(**options)
|
25
|
-
end
|
26
|
-
|
27
|
-
MESSAGES_FILTERS = %w[
|
28
|
-
on_or_after_date
|
29
|
-
on_or_before_date
|
30
|
-
tag_id
|
31
|
-
speaker_id
|
32
|
-
scripture_book_id
|
33
|
-
series_id
|
34
|
-
title_like
|
35
|
-
legacy_id
|
36
|
-
].freeze
|
37
|
-
|
38
|
-
def messages_list(**filters)
|
39
|
-
query = extract_params(filters)
|
40
|
-
query = query.merge!(apply_filters(filters, MESSAGES_FILTERS))
|
41
|
-
resp = get('messages', query)
|
42
|
-
resp.assert_ok!
|
43
|
-
resp.items.map { |m| WCC::Media::Message.new(m) }
|
44
|
-
end
|
45
|
-
|
46
|
-
def message(id)
|
47
|
-
resp = get("messages/#{id}")
|
48
|
-
resp.assert_ok!
|
49
|
-
WCC::Media::Message.new(resp.body['message'], resp.headers.freeze)
|
50
|
-
end
|
51
|
-
|
52
|
-
SERIES_FILTERS = %w[
|
53
|
-
begin_on_or_before_date
|
54
|
-
begin_on_or_after_date
|
55
|
-
end_on_or_before_date
|
56
|
-
end_on_or_after_date
|
57
|
-
tag_id
|
58
|
-
speaker_id
|
59
|
-
scripture_book_id
|
60
|
-
title_like
|
61
|
-
legacy_id
|
62
|
-
]
|
63
|
-
|
64
|
-
def series_list(**filters)
|
65
|
-
query = extract_params(filters)
|
66
|
-
query = query.merge!(apply_filters(filters, SERIES_FILTERS))
|
67
|
-
resp = get('series', query)
|
68
|
-
resp.assert_ok!
|
69
|
-
resp.items.map { |s| WCC::Media::Series.new(s) }
|
70
|
-
end
|
71
|
-
|
72
|
-
def series(id)
|
73
|
-
resp = get("series/#{id}")
|
74
|
-
resp.assert_ok!
|
75
|
-
WCC::Media::Series.new(resp.body['series'], resp.headers.freeze)
|
76
|
-
end
|
77
39
|
|
78
|
-
|
79
|
-
|
80
|
-
name_like
|
81
|
-
tag_id
|
82
|
-
]
|
83
|
-
|
84
|
-
def speakers_list(**filters)
|
85
|
-
query = extract_params(filters)
|
86
|
-
query = query.merge!(apply_filters(filters, SPEAKERS_FILTERS))
|
87
|
-
resp = get('speakers', query)
|
88
|
-
resp.assert_ok!
|
89
|
-
resp.items.map { |s| WCC::Media::Speaker.new(s) }
|
90
|
-
end
|
91
|
-
|
92
|
-
def speaker(id)
|
93
|
-
resp = get("speakers/#{id}")
|
94
|
-
resp.assert_ok!
|
95
|
-
WCC::Media::Speaker.new(resp.body['speaker'], resp.headers.freeze)
|
96
|
-
end
|
97
|
-
|
98
|
-
TAGS_FILTERS = %w[
|
99
|
-
name_like
|
100
|
-
]
|
101
|
-
|
102
|
-
def tags_list(**filters)
|
103
|
-
query = extract_params(filters)
|
104
|
-
query = query.merge!(apply_filters(filters, TAGS_FILTERS))
|
105
|
-
resp = get('tags', query)
|
106
|
-
resp.assert_ok!
|
107
|
-
resp.items.map { |s| WCC::Media::Tag.new(s) }
|
108
|
-
end
|
109
|
-
|
110
|
-
def tag(id)
|
111
|
-
resp = get("tags/#{id}")
|
112
|
-
resp.assert_ok!
|
113
|
-
WCC::Media::Tag.new(resp.body['tag'], resp.headers.freeze)
|
114
|
-
end
|
115
|
-
|
116
|
-
private
|
117
|
-
|
118
|
-
def extract_params(filters)
|
119
|
-
filters.each_with_object({}) do |(k, _v), h|
|
120
|
-
k_s = k.to_s
|
121
|
-
h[k_s] = filters.delete(k) if PARAMS.include?(k_s)
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
def apply_filters(filters, expected_filters)
|
126
|
-
defaults = default_filters(expected_filters) || {}
|
127
|
-
filters.each_with_object(defaults) do |(k, v), h|
|
128
|
-
k = k.to_s
|
129
|
-
raise ArgumentError, "Unknown filter '#{k}'" unless expected_filters.include?(k)
|
130
|
-
|
131
|
-
h["filter[#{k}]"] = v
|
40
|
+
RESOURCES.each do |(endpoint, model)|
|
41
|
+
instance_variable_set("@#{endpoint}", Resource.new(self, model, @options))
|
132
42
|
end
|
133
43
|
end
|
134
44
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
45
|
+
Resource =
|
46
|
+
Struct.new(:client, :model, :options) do
|
47
|
+
def find(id)
|
48
|
+
resp = client.get("#{model.endpoint}/#{id}")
|
49
|
+
resp.assert_ok!
|
50
|
+
model.new(resp.body[model.name], resp.headers.freeze)
|
51
|
+
end
|
52
|
+
|
53
|
+
def list(**filters)
|
54
|
+
query = extract_params(filters)
|
55
|
+
query = query.merge!(apply_filters(filters, model.filters))
|
56
|
+
resp = client.get(model.endpoint, query)
|
57
|
+
resp.assert_ok!
|
58
|
+
resp.items.map { |s| model.new(s) }
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
def extract_params(filters)
|
64
|
+
filters.each_with_object({}) do |(k, _v), h|
|
65
|
+
k_s = k.to_s
|
66
|
+
h[k_s] = filters.delete(k) if PARAMS.include?(k_s)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def apply_filters(filters, expected_filters)
|
71
|
+
defaults = default_filters(expected_filters) || {}
|
72
|
+
filters.each_with_object(defaults) do |(k, v), h|
|
73
|
+
k = k.to_s
|
74
|
+
raise ArgumentError, "Unknown filter '#{k}'" unless expected_filters.include?(k)
|
75
|
+
|
76
|
+
h["filter[#{k}]"] = v
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def default_filters(expected_filters)
|
81
|
+
options[:default_filters]&.each_with_object({}) do |(k, v), h|
|
82
|
+
k = k.to_s
|
83
|
+
h["filter[#{k}]"] = v if expected_filters.include?(k)
|
84
|
+
end
|
85
|
+
end
|
139
86
|
end
|
140
|
-
end
|
141
87
|
end
|
142
88
|
end
|
143
89
|
end
|
data/lib/wcc/media/message.rb
CHANGED
@@ -1,68 +1,69 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative 'base'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
3
|
+
class WCC::Media::Message < WCC::Media::Base
|
4
|
+
active_record_shim do
|
5
|
+
endpoint 'messages'
|
6
|
+
filters %w[
|
7
|
+
on_or_after_date
|
8
|
+
on_or_before_date
|
9
|
+
tag_id
|
10
|
+
speaker_id
|
11
|
+
scripture_book_id
|
12
|
+
series_id
|
13
|
+
title_like
|
14
|
+
legacy_id
|
15
|
+
].freeze
|
16
|
+
end
|
14
17
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
+
def id
|
19
|
+
raw['id']&.to_s
|
20
|
+
end
|
18
21
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
+
def legacy_id
|
23
|
+
raw['legacy_id']&.to_s
|
24
|
+
end
|
22
25
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
26
|
+
%w[
|
27
|
+
date
|
28
|
+
title
|
29
|
+
description
|
30
|
+
series_position
|
31
|
+
].each do |att|
|
32
|
+
define_method att do
|
33
|
+
raw[att]
|
34
|
+
end
|
35
|
+
end
|
33
36
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
+
def speakers
|
38
|
+
(raw['speakers'] || []).map { |val| WCC::Media::Speaker.new(val) }
|
39
|
+
end
|
37
40
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
+
def tags
|
42
|
+
(raw['tags'] || []).map { |val| WCC::Media::Tag.new(val) }
|
43
|
+
end
|
41
44
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
45
|
+
%w[
|
46
|
+
scripture_references
|
47
|
+
downloads
|
48
|
+
].each do |att|
|
49
|
+
define_method att do
|
50
|
+
(raw[att] || []).map { |val| OpenStruct.new(val) }
|
51
|
+
end
|
52
|
+
end
|
50
53
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
+
def series
|
55
|
+
WCC::Media::Series.new(raw['series']) if raw['series']
|
56
|
+
end
|
54
57
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
end
|
65
|
-
end
|
58
|
+
%w[
|
59
|
+
embeds
|
60
|
+
assets
|
61
|
+
images
|
62
|
+
external_urls
|
63
|
+
transcript
|
64
|
+
].each do |att|
|
65
|
+
define_method att do
|
66
|
+
OpenStruct.new(raw[att]) if raw[att]
|
66
67
|
end
|
67
68
|
end
|
68
69
|
end
|
data/lib/wcc/media/series.rb
CHANGED
@@ -1,42 +1,45 @@
|
|
1
|
-
|
2
|
-
module Media
|
3
|
-
class Series
|
4
|
-
include WCC::Media::Cacheable
|
1
|
+
require_relative 'base'
|
5
2
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
3
|
+
class WCC::Media::Series < WCC::Media::Base
|
4
|
+
active_record_shim do
|
5
|
+
filters %w[
|
6
|
+
begin_on_or_before_date
|
7
|
+
begin_on_or_after_date
|
8
|
+
end_on_or_before_date
|
9
|
+
end_on_or_after_date
|
10
|
+
tag_id
|
11
|
+
speaker_id
|
12
|
+
scripture_book_id
|
13
|
+
title_like
|
14
|
+
legacy_id
|
15
|
+
]
|
16
|
+
end
|
12
17
|
|
13
|
-
|
14
|
-
|
15
|
-
|
18
|
+
def id
|
19
|
+
raw['id']&.to_s
|
20
|
+
end
|
16
21
|
|
17
|
-
|
18
|
-
|
19
|
-
|
22
|
+
def legacy_id
|
23
|
+
raw['legacy_id']&.to_s
|
24
|
+
end
|
20
25
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
26
|
+
%w[
|
27
|
+
title
|
28
|
+
subtitle
|
29
|
+
summary
|
30
|
+
date_range
|
31
|
+
messages_count
|
32
|
+
].each do |att|
|
33
|
+
define_method att do
|
34
|
+
raw[att]
|
35
|
+
end
|
36
|
+
end
|
32
37
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
38
|
+
%w[
|
39
|
+
images
|
40
|
+
].each do |att|
|
41
|
+
define_method att do
|
42
|
+
OpenStruct.new(raw[att]) if raw[att]
|
40
43
|
end
|
41
44
|
end
|
42
45
|
end
|
data/lib/wcc/media/speaker.rb
CHANGED
@@ -1,31 +1,29 @@
|
|
1
|
-
|
2
|
-
module Media
|
3
|
-
class Speaker
|
4
|
-
include WCC::Media::Cacheable
|
1
|
+
require_relative 'base'
|
5
2
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
3
|
+
class WCC::Media::Speaker < WCC::Media::Base
|
4
|
+
active_record_shim do
|
5
|
+
endpoint 'speakers'
|
6
|
+
filters %w[
|
7
|
+
featured
|
8
|
+
name_like
|
9
|
+
tag_id
|
10
|
+
]
|
11
|
+
end
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
def id
|
14
|
+
raw['id']&.to_s
|
15
|
+
end
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
def legacy_id
|
18
|
+
raw['legacy_id']&.to_s
|
19
|
+
end
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
21
|
+
%w[
|
22
|
+
featured
|
23
|
+
name
|
24
|
+
].each do |att|
|
25
|
+
define_method att do
|
26
|
+
raw[att]
|
29
27
|
end
|
30
28
|
end
|
31
29
|
end
|
data/lib/wcc/media/tag.rb
CHANGED
@@ -1,30 +1,26 @@
|
|
1
|
-
|
2
|
-
module Media
|
3
|
-
class Tag
|
4
|
-
include WCC::Media::Cacheable
|
1
|
+
require_relative 'base'
|
5
2
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
3
|
+
class WCC::Media::Tag < WCC::Media::Base
|
4
|
+
active_record_shim do
|
5
|
+
endpoint 'tags'
|
6
|
+
filters %w[
|
7
|
+
name_like
|
8
|
+
]
|
9
|
+
end
|
12
10
|
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
def id
|
12
|
+
raw['id']&.to_s
|
13
|
+
end
|
16
14
|
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
def legacy_id
|
16
|
+
raw['legacy_id']&.to_s
|
17
|
+
end
|
20
18
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
end
|
27
|
-
end
|
19
|
+
%w[
|
20
|
+
name
|
21
|
+
].each do |att|
|
22
|
+
define_method att do
|
23
|
+
raw[att]
|
28
24
|
end
|
29
25
|
end
|
30
26
|
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.
|
4
|
+
version: 0.2.0
|
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-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|
@@ -144,6 +144,8 @@ 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/active_record_shim.rb
|
148
|
+
- lib/wcc/media/base.rb
|
147
149
|
- lib/wcc/media/cacheable.rb
|
148
150
|
- lib/wcc/media/client.rb
|
149
151
|
- lib/wcc/media/client/response.rb
|