wcc-media-client 0.6.1 → 0.7.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
  SHA256:
3
- metadata.gz: 0bf391b20a47ce48f1f44e333a729e5e1506308ac00a7d279fcf9455e0421ac6
4
- data.tar.gz: aad2f2468c5e20ea03ffab9a42a536851c082e47afbe271b773456ccec75cca3
3
+ metadata.gz: c3ded80f5c2f0db54965af27eacaad2bf7f78b0daf8f8e52979205f5d79cac1a
4
+ data.tar.gz: d7fe5b6207e5b97d520d3615ce0d17d94bfdf7a760621cbca0d5d227b8d6e702
5
5
  SHA512:
6
- metadata.gz: c97fb5cbe5b9bf6fbb5506fd3e7caeb04e861c22cc25517a3bac0d1f39853069a938c86097b559657d7a2012db3d3ca2ab347f020bb40fe5b3e5533e8fe24c9d
7
- data.tar.gz: 4ea43262c80f9c083bf219652c1ce94f9d48de27dbd68deefe1d11d8439e8b21f31a75c90c71bd0b7b27e82cc08402251c235ef3dd58753e2a08391a85bb79dc
6
+ metadata.gz: 78db8c5105186be203f6ce8e3017c8714137e4f163b29c37e0793246bb2e5b49c1c752a1dbd68774b73002fedd51de253a53a11f1129be8f98c0435bbb9b3235
7
+ data.tar.gz: ce354d84eac11a10703d735aab7ebb1dbeee754b4ec58979f2d93fe081a52984e9758f5fb20a15fbadcfae160e21a863cb99da0ff957b254dcd4ed6d222cd2d8
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copied out of WCC::Data::EnumeratedType so that we don't have to depend on the wcc-data gem
4
+ module WCC::Media
5
+ class EnumeratedType
6
+ def initialize(args = {})
7
+ only_attributes(args).each do |key, value|
8
+ instance_variable_set("@#{key}", value)
9
+ end
10
+ end
11
+
12
+ def self.[](value)
13
+ all.find { |record| record.matches?(value) }
14
+ end
15
+
16
+ def matches?(value)
17
+ raise NotImplementedError,
18
+ 'The #matches? method should be defined in subclasses and return ' \
19
+ 'true if the argument matches this record and false otherwise.'
20
+ end
21
+
22
+ def self.db
23
+ raise NotImplementedError,
24
+ 'The ::db class method should be defined in subclasses as an array ' \
25
+ 'of hashes containing data for each record.'
26
+ end
27
+
28
+ def self.all
29
+ @all ||= db.collect { |data| new(data) }
30
+ end
31
+
32
+ def self.reset
33
+ @all = nil
34
+ end
35
+
36
+ def self.attributes(*attrs)
37
+ attrs.each do |attr|
38
+ defined_attributes << attr
39
+ define_method(attr) do
40
+ instance_variable_get("@#{attr}")
41
+ end
42
+ end
43
+ end
44
+
45
+ def self.defined_attributes
46
+ @attributes ||= [] # rubocop:disable Naming/MemoizedInstanceVariableName
47
+ end
48
+
49
+ def self.inherited(subclass)
50
+ super
51
+ subclass.send(
52
+ :instance_variable_set,
53
+ :@attributes,
54
+ defined_attributes.dup
55
+ )
56
+ end
57
+
58
+ private
59
+
60
+ def only_attributes(args)
61
+ args.select do |key, _value|
62
+ self.class.defined_attributes.include?(key)
63
+ end
64
+ end
65
+ end
66
+ end
@@ -21,6 +21,8 @@ class WCC::Media::Series < WCC::Media::Base
21
21
  title
22
22
  subtitle
23
23
  summary
24
+ external_playlist
25
+ show_landing_page
24
26
  date_range
25
27
  messages_count
26
28
  ].each do |att|
@@ -1,9 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- gem 'wcc-data'
4
- require 'wcc/data/enumerated_type'
3
+ require_relative 'enumerated_type'
5
4
 
6
- class WCC::Media::TagGroup < WCC::Data::EnumeratedType
5
+ class WCC::Media::TagGroup < WCC::Media::EnumeratedType
7
6
  attributes :id, :name, :key
8
7
 
9
8
  def matches?(value)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module WCC
4
4
  module Media
5
- VERSION = '0.6.1'
5
+ VERSION = '0.7.0'
6
6
  end
7
7
  end
@@ -25,5 +25,4 @@ 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-data', '~> 0.3.3'
29
28
  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.6.1
4
+ version: 0.7.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: 2023-08-29 00:00:00.000000000 Z
11
+ date: 2023-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: wcc-api
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.3.1
27
- - !ruby/object:Gem::Dependency
28
- name: wcc-data
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 0.3.3
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 0.3.3
41
27
  description: REST Client for accessing the WCC Media library
42
28
  email:
43
29
  - dev@watermark.org
@@ -55,6 +41,7 @@ files:
55
41
  - lib/wcc/media/cacheable.rb
56
42
  - lib/wcc/media/client.rb
57
43
  - lib/wcc/media/client/response.rb
44
+ - lib/wcc/media/enumerated_type.rb
58
45
  - lib/wcc/media/live_stream.rb
59
46
  - lib/wcc/media/message.rb
60
47
  - lib/wcc/media/playlist.rb