wcc-media-client 0.3.8 → 0.4.0

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: 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