wcc-media-client 0.3.8 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: af546b49bb12b5a071a1c813119cd096f20abc24
4
- data.tar.gz: 10bb50350612f7d30bf13031b389511f34b9c917
3
+ metadata.gz: 360b25849df0cec25c561c8b221b18ecae44fde7
4
+ data.tar.gz: aa267536df96372a69036b5a7b070681412f7a9c
5
5
  SHA512:
6
- metadata.gz: ac0427c7a791bb3207877505948093eb07f49d3f2ae18f7be00d56f7fc8f3c2fab039ed62c079e8db3102ef33c9e27322eda8fdbbe2795028e126afae6dc7eac
7
- data.tar.gz: 7118ce170ea25a683f07bdf8e83254e4ee74a571d08a43f4a70d90901b188b3e377d649aaf2fcafeeffbb3b3ae26fe7092fce78fc9570ac0bfa2047e1f6410cf
6
+ metadata.gz: 341cb15599bc49a57cec7487556334304abed2ca108777d7781f7259a193970ee38bde4e870d2c4c7338252e58825a3553e9b0b86f70b26803a42204de63a21d
7
+ data.tar.gz: 30e9f362bcd88803050fe6a59f1799973f7d77f33623bfe27b6207dda7356211b9fddcc146f4f75d9cfe846ce40a6391e6f79b5d7fa8c07e2fe710557ca10234
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ WCC::Media::Engine.routes.draw do
4
+ match "/callbacks", to: Toot::HandlerService, via: :post
5
+ end
6
+ ActiveSupport::Notifications.instrument 'routes_loaded.engine.media.wcc'
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_job'
4
+ require 'toot'
5
+ require 'wcc/auth'
6
+ require 'wcc/data'
7
+
8
+ class WCC::Media::Engine < ::Rails::Engine
9
+ isolate_namespace WCC::Media
10
+
11
+ class << self
12
+ def subscribe(channel, handler = nil, &block)
13
+ handler ||= Proc.new(&block)
14
+ with_toot_config do |c|
15
+ c.subscribe :media, channel, handler
16
+ end
17
+ register_subscriptions
18
+ end
19
+
20
+ def initialized
21
+ # Don't register subscriptions unless
22
+ # 1. we mounted the engine and
23
+ # 2. something subscribed.
24
+ ::Toot.config.callback_url &&
25
+ ::Toot.config.subscriptions.any? { |s| s.source.name == :media }
26
+ end
27
+
28
+ def register_subscriptions
29
+ return unless initialized
30
+
31
+ raise StandardError, "WCC::Auth must be configured" unless WCC::Auth.config.app_name.present? && WCC::Auth.config.app_url.present?
32
+
33
+ RegistersSubscriptionsJob.perform_later
34
+ end
35
+
36
+ # Ensures toot is configured properly with the Media channel. Note this is
37
+ # not done until an actual subscription is requested.
38
+ def with_toot_config(&block)
39
+ return ::Toot.config(&block) if @configured
40
+
41
+ ::Toot.config do |c|
42
+ media_api_url = WCC::Media::Client.default.api_url
43
+
44
+ c.source :media,
45
+ channel_prefix: "org.watermark.media.",
46
+ subscription_url: URI.join(media_api_url, '/toot/subscriptions')
47
+
48
+ # Note - use the [] method to override only if not set in client already
49
+ c[:http_connection] ||=
50
+ Faraday::Connection.new do |conn|
51
+ conn.use :client_app_token
52
+ conn.adapter :net_http
53
+ end
54
+
55
+ yield c
56
+ end
57
+ @configured = true
58
+ end
59
+ end
60
+
61
+ initializer 'configure WCC::Media Toots' do
62
+ ActiveSupport::Notifications.subscribe 'routes_loaded.engine.media.wcc' do
63
+ ::Toot.config.callback_url ||= Rails.application.routes.url_helpers.wcc_media_url +
64
+ '/callbacks'
65
+
66
+ WCC::Media::Engine.register_subscriptions
67
+ end
68
+ end
69
+
70
+ config.generators do |g|
71
+ g.test_framework :rspec, fixture: false
72
+ end
73
+
74
+ class RegistersSubscriptionsJob < ::ActiveJob::Base
75
+ self.queue_adapter = :async
76
+
77
+ def perform
78
+ Toot::RegistersSubscriptions.call
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'wcc/rails'
4
+ require 'wcc/media/client'
5
+ require 'wcc/media/engine'
@@ -11,6 +11,7 @@ class WCC::Media::Tag < WCC::Media::Base
11
11
 
12
12
  %w[
13
13
  name
14
+ code
14
15
  ].each do |att|
15
16
  define_method att do
16
17
  raw[att]
@@ -1,5 +1,5 @@
1
1
  module WCC
2
2
  module Media
3
- VERSION = '0.3.8'.freeze
3
+ VERSION = '0.4.0'.freeze
4
4
  end
5
5
  end
@@ -25,6 +25,8 @@ Gem::Specification.new do |spec|
25
25
  spec.require_paths = ['lib']
26
26
 
27
27
  spec.add_runtime_dependency 'wcc-api', '~> 0.3.1'
28
+ spec.add_runtime_dependency 'wcc-auth'
29
+ spec.add_runtime_dependency 'wcc-base', '~> 0.3.1'
28
30
  spec.add_runtime_dependency 'wcc-data', '~> 0.3.0'
29
31
 
30
32
  spec.add_development_dependency 'byebug'
@@ -33,9 +35,16 @@ Gem::Specification.new do |spec|
33
35
  spec.add_development_dependency 'guard-rubocop', '~> 1.3'
34
36
  spec.add_development_dependency 'http', '> 1.0', '< 3.0'
35
37
  spec.add_development_dependency 'httplog', '~> 1.0'
38
+ spec.add_development_dependency 'rails', '~> 5.0'
36
39
  spec.add_development_dependency 'rake', '~> 12.3'
40
+ spec.add_development_dependency 'responders', '< 3.0'
37
41
  spec.add_development_dependency 'rspec', '~> 3.0'
42
+ spec.add_development_dependency 'rspec-rails', '~> 3.7'
38
43
  spec.add_development_dependency 'rspec_junit_formatter', '~> 0.3.0'
44
+ spec.add_development_dependency 'sidekiq', '< 6.0'
45
+ spec.add_development_dependency 'sprockets', '< 4.0'
46
+ spec.add_development_dependency 'sqlite3', '~> 1.3.6'
47
+ spec.add_development_dependency 'toot', '~> 0.3.0'
39
48
  spec.add_development_dependency 'typhoeus', '~> 1.3'
40
49
  spec.add_development_dependency 'webmock', '~> 3.0'
41
50
  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.3.8
4
+ version: 0.4.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: 2019-05-22 00:00:00.000000000 Z
11
+ date: 2019-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: wcc-api
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.3.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: wcc-auth
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: wcc-base
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.3.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.3.1
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: wcc-data
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -128,6 +156,20 @@ dependencies:
128
156
  - - "~>"
129
157
  - !ruby/object:Gem::Version
130
158
  version: '1.0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: rails
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '5.0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '5.0'
131
173
  - !ruby/object:Gem::Dependency
132
174
  name: rake
133
175
  requirement: !ruby/object:Gem::Requirement
@@ -142,6 +184,20 @@ dependencies:
142
184
  - - "~>"
143
185
  - !ruby/object:Gem::Version
144
186
  version: '12.3'
187
+ - !ruby/object:Gem::Dependency
188
+ name: responders
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "<"
192
+ - !ruby/object:Gem::Version
193
+ version: '3.0'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "<"
199
+ - !ruby/object:Gem::Version
200
+ version: '3.0'
145
201
  - !ruby/object:Gem::Dependency
146
202
  name: rspec
147
203
  requirement: !ruby/object:Gem::Requirement
@@ -156,6 +212,20 @@ dependencies:
156
212
  - - "~>"
157
213
  - !ruby/object:Gem::Version
158
214
  version: '3.0'
215
+ - !ruby/object:Gem::Dependency
216
+ name: rspec-rails
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '3.7'
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '3.7'
159
229
  - !ruby/object:Gem::Dependency
160
230
  name: rspec_junit_formatter
161
231
  requirement: !ruby/object:Gem::Requirement
@@ -170,6 +240,62 @@ dependencies:
170
240
  - - "~>"
171
241
  - !ruby/object:Gem::Version
172
242
  version: 0.3.0
243
+ - !ruby/object:Gem::Dependency
244
+ name: sidekiq
245
+ requirement: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "<"
248
+ - !ruby/object:Gem::Version
249
+ version: '6.0'
250
+ type: :development
251
+ prerelease: false
252
+ version_requirements: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "<"
255
+ - !ruby/object:Gem::Version
256
+ version: '6.0'
257
+ - !ruby/object:Gem::Dependency
258
+ name: sprockets
259
+ requirement: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "<"
262
+ - !ruby/object:Gem::Version
263
+ version: '4.0'
264
+ type: :development
265
+ prerelease: false
266
+ version_requirements: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - "<"
269
+ - !ruby/object:Gem::Version
270
+ version: '4.0'
271
+ - !ruby/object:Gem::Dependency
272
+ name: sqlite3
273
+ requirement: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: 1.3.6
278
+ type: :development
279
+ prerelease: false
280
+ version_requirements: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - "~>"
283
+ - !ruby/object:Gem::Version
284
+ version: 1.3.6
285
+ - !ruby/object:Gem::Dependency
286
+ name: toot
287
+ requirement: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - "~>"
290
+ - !ruby/object:Gem::Version
291
+ version: 0.3.0
292
+ type: :development
293
+ prerelease: false
294
+ version_requirements: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - "~>"
297
+ - !ruby/object:Gem::Version
298
+ version: 0.3.0
173
299
  - !ruby/object:Gem::Dependency
174
300
  name: typhoeus
175
301
  requirement: !ruby/object:Gem::Requirement
@@ -210,13 +336,16 @@ files:
210
336
  - Gemfile
211
337
  - Guardfile
212
338
  - README.md
339
+ - config/routes.rb
213
340
  - lib/wcc/media/active_record_shim.rb
214
341
  - lib/wcc/media/base.rb
215
342
  - lib/wcc/media/cacheable.rb
216
343
  - lib/wcc/media/client.rb
217
344
  - lib/wcc/media/client/response.rb
345
+ - lib/wcc/media/engine.rb
218
346
  - lib/wcc/media/message.rb
219
347
  - lib/wcc/media/playlist.rb
348
+ - lib/wcc/media/rails.rb
220
349
  - lib/wcc/media/series.rb
221
350
  - lib/wcc/media/speaker.rb
222
351
  - lib/wcc/media/tag.rb