trailer_vote-media_types 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rubocop.yml +29 -0
  4. data/.travis.yml +20 -0
  5. data/CHANGELOG.md +3 -0
  6. data/Gemfile +6 -0
  7. data/Gemfile.lock +48 -0
  8. data/README.md +105 -0
  9. data/Rakefile +12 -0
  10. data/bin/console +16 -0
  11. data/bin/setup +8 -0
  12. data/lib/trailer_vote/media_types.rb +32 -0
  13. data/lib/trailer_vote/media_types/audio_fragment.rb +106 -0
  14. data/lib/trailer_vote/media_types/base_text.rb +22 -0
  15. data/lib/trailer_vote/media_types/carousel.rb +42 -0
  16. data/lib/trailer_vote/media_types/client_configuration.rb +34 -0
  17. data/lib/trailer_vote/media_types/configuration.rb +54 -0
  18. data/lib/trailer_vote/media_types/errors.rb +31 -0
  19. data/lib/trailer_vote/media_types/feedback.rb +49 -0
  20. data/lib/trailer_vote/media_types/feedback_listing.rb +48 -0
  21. data/lib/trailer_vote/media_types/fingerprint_binary.rb +67 -0
  22. data/lib/trailer_vote/media_types/interactive_player.rb +33 -0
  23. data/lib/trailer_vote/media_types/partials/image_links.rb +20 -0
  24. data/lib/trailer_vote/media_types/persona.rb +38 -0
  25. data/lib/trailer_vote/media_types/place.rb +105 -0
  26. data/lib/trailer_vote/media_types/product.rb +175 -0
  27. data/lib/trailer_vote/media_types/product_image.rb +113 -0
  28. data/lib/trailer_vote/media_types/product_lookup.rb +37 -0
  29. data/lib/trailer_vote/media_types/product_place_link.rb +37 -0
  30. data/lib/trailer_vote/media_types/product_video.rb +92 -0
  31. data/lib/trailer_vote/media_types/products_listing.rb +42 -0
  32. data/lib/trailer_vote/media_types/sentiment_feedback.rb +97 -0
  33. data/lib/trailer_vote/media_types/types/boolean.rb +15 -0
  34. data/lib/trailer_vote/media_types/types/product_data_type.rb +15 -0
  35. data/lib/trailer_vote/media_types/types/product_image_type.rb +25 -0
  36. data/lib/trailer_vote/media_types/types/product_movie_handler.rb +15 -0
  37. data/lib/trailer_vote/media_types/types/product_movie_type.rb +17 -0
  38. data/lib/trailer_vote/media_types/types/uuid_v4.rb +10 -0
  39. data/lib/trailer_vote/media_types/types/vote_value.rb +17 -0
  40. data/lib/trailer_vote/media_types/version.rb +7 -0
  41. data/trailer_vote-media_types.gemspec +32 -0
  42. metadata +209 -0
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './base_text'
4
+ require_relative './partials/image_links'
5
+
6
+ module TrailerVote
7
+ module MediaTypes
8
+ class ProductsListing < BaseText
9
+ media_type 'products_listing'
10
+
11
+ defaults do
12
+ suffix :json
13
+ version 1
14
+ end
15
+
16
+ validations do
17
+ version 1 do
18
+ attribute :products_listing do
19
+ collection :items, allow_empty: true do
20
+ attribute :title, AllowNil(String)
21
+ attribute :publish_date, AllowNil(String)
22
+
23
+ link :product
24
+
25
+ attribute :image, expected_type: AllowNil(::Hash), allow_empty: true, optional: true do
26
+ attribute :_embedded, expected_type: AllowNil(::Hash), allow_empty: true do
27
+ merge Partials::IMAGE_LINKS
28
+ end
29
+ end
30
+ end
31
+
32
+ link :self
33
+ end
34
+ end
35
+ end
36
+
37
+ registrations :products_listing do
38
+ type_alias 'products-listing'
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,97 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './base_text'
4
+ require_relative './types/product_image_type'
5
+ require_relative './partials/image_links'
6
+
7
+ module TrailerVote
8
+ module MediaTypes
9
+ class SentimentFeedback < BaseText
10
+ media_type 'sentiment_feedback', defaults: { suffix: :json, version: 1 }
11
+
12
+ validations do
13
+
14
+ version 2 do
15
+ attribute :sentiment_feedback do
16
+ attribute :title, String
17
+ attribute :description, AllowNil(String)
18
+
19
+ attribute :image, expected_type: AllowNil(::Hash), allow_empty: true, optional: true do
20
+ attribute :_embedded do
21
+ attribute :identifier, String
22
+ attribute :updated_at, String
23
+ attribute :asset_type, Types::ProductImageType
24
+
25
+ merge Partials::IMAGE_LINKS
26
+ end
27
+ end
28
+
29
+ link :self
30
+ link :feedback
31
+ end
32
+ end
33
+
34
+ version 1 do
35
+ attribute :sentiment_feedback do
36
+ attribute :title, String
37
+ attribute :description, AllowNil(String)
38
+
39
+ attribute :images do
40
+ collection :_embedded, allow_empty: true do
41
+ attribute :identifier, String
42
+ attribute :updated_at, String
43
+ attribute :asset_type, Types::ProductImageTypeV1
44
+
45
+ link :self
46
+ link :original do
47
+ attribute :content_digest, String
48
+ attribute :width, Numeric
49
+ attribute :height, Numeric
50
+ end
51
+ link :thumbnail, optional: true do
52
+ attribute :content_digest, String
53
+ attribute :width, Numeric
54
+ attribute :height, Numeric
55
+ end
56
+ link :xlarge, optional: true do
57
+ attribute :content_digest, String
58
+ attribute :width, Numeric
59
+ attribute :height, Numeric
60
+ end
61
+ link :large, optional: true do
62
+ attribute :content_digest, String
63
+ attribute :width, Numeric
64
+ attribute :height, Numeric
65
+ end
66
+ link :medium, optional: true do
67
+ attribute :content_digest, String
68
+ attribute :width, Numeric
69
+ attribute :height, Numeric
70
+ end
71
+ link :small, optional: true do
72
+ attribute :content_digest, String
73
+ attribute :width, Numeric
74
+ attribute :height, Numeric
75
+ end
76
+ link :xsmall, optional: true do
77
+ attribute :content_digest, String
78
+ attribute :width, Numeric
79
+ attribute :height, Numeric
80
+ end
81
+
82
+ not_strict
83
+ end
84
+ end
85
+
86
+ link :self
87
+ link :feedback
88
+ end
89
+ end
90
+ end
91
+
92
+ registrations :sentiment_feedback do
93
+ type_alias 'feedback.sentiment'
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'media_types'
4
+
5
+ module TrailerVote
6
+ module MediaTypes
7
+ module Types
8
+ # noinspection RubyConstantNamingConvention
9
+ Boolean = ::MediaTypes::Scheme.AnyOf(
10
+ TrueClass,
11
+ FalseClass
12
+ )
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'media_types'
4
+
5
+ module TrailerVote
6
+ module MediaTypes
7
+ module Types
8
+ # noinspection RubyConstantNamingConvention
9
+ ProductDataType = ::MediaTypes::Scheme.AnyOf(
10
+ 'movie',
11
+ 'book'
12
+ )
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'media_types'
4
+
5
+ module TrailerVote
6
+ module MediaTypes
7
+ module Types
8
+ # noinspection RubyConstantNamingConvention
9
+ ProductImageType = ::MediaTypes::Scheme.AnyOf(
10
+ 'backdrop',
11
+ 'poster'
12
+ )
13
+
14
+ # noinspection RubyConstantNamingConvention
15
+ ProductImageTypeV1 = ::MediaTypes::Scheme.AnyOf(
16
+ 'backdrop',
17
+ 'poster',
18
+ 'Poster',
19
+ 'HeroMobileDynamic',
20
+ 'PosterDynamic',
21
+ 'HeroDesktopDynamic'
22
+ )
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'media_types'
4
+
5
+ module TrailerVote
6
+ module MediaTypes
7
+ module Types
8
+ # noinspection RubyConstantNamingConvention
9
+ ProductMovieHandler = ::MediaTypes::Scheme.AnyOf(
10
+ 'youtube',
11
+ 'url'
12
+ )
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'media_types'
4
+
5
+ module TrailerVote
6
+ module MediaTypes
7
+ module Types
8
+ # noinspection RubyConstantNamingConvention
9
+ ProductMovieType = ::MediaTypes::Scheme.AnyOf(
10
+ 'Trailer',
11
+ 'Teaser',
12
+ 'Rewards',
13
+ 'Advert'
14
+ )
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrailerVote
4
+ module MediaTypes
5
+ module Types
6
+ # noinspection RubyConstantNamingConvention
7
+ UuidV4 = /[A-z0-9]{8}-[A-z0-9]{4}-4[A-z0-9]{3}-[A-z0-9]{4}-[A-z0-9]{12}/ # rubocop:disable Naming/ConstantName
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'media_types'
4
+
5
+ module TrailerVote
6
+ module MediaTypes
7
+ module Types
8
+ # noinspection RubyConstantNamingConvention
9
+ VoteValue = ::MediaTypes::Scheme.AnyOf(
10
+ 'positive',
11
+ 'negative',
12
+ 'neutral',
13
+ 'skip'
14
+ )
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrailerVote
4
+ module MediaTypes
5
+ VERSION = '0.5.0'
6
+ end
7
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'trailer_vote/media_types/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'trailer_vote-media_types'
9
+ spec.version = TrailerVote::MediaTypes::VERSION
10
+ spec.authors = ['Derk-Jan Karrenbeld']
11
+ spec.email = ['dj@trailervote.com']
12
+
13
+ spec.summary = 'Holds the defined media types for the TrailerVote ecosystem'
14
+
15
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
16
+ f.match(%r{^(test|spec|features)/})
17
+ end
18
+ spec.bindir = 'exe'
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ['lib']
21
+
22
+ spec.add_runtime_dependency 'media_types', '~> 0.5.5'
23
+
24
+ spec.add_development_dependency 'awesome_print'
25
+ spec.add_development_dependency 'bundler', '~> 1.16'
26
+ spec.add_development_dependency 'minitest', '~> 5.0'
27
+ spec.add_development_dependency 'minitest-ci'
28
+ spec.add_development_dependency 'minitest-reporters'
29
+ spec.add_development_dependency 'oj'
30
+ spec.add_development_dependency 'rake', '~> 10.0'
31
+ spec.add_development_dependency 'simplecov'
32
+ end
metadata ADDED
@@ -0,0 +1,209 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: trailer_vote-media_types
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.0
5
+ platform: ruby
6
+ authors:
7
+ - Derk-Jan Karrenbeld
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-10-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: media_types
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.5.5
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.5.5
27
+ - !ruby/object:Gem::Dependency
28
+ name: awesome_print
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
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: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.16'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.16'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '5.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '5.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest-ci
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest-reporters
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: oj
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '10.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '10.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description:
140
+ email:
141
+ - dj@trailervote.com
142
+ executables: []
143
+ extensions: []
144
+ extra_rdoc_files: []
145
+ files:
146
+ - ".gitignore"
147
+ - ".rubocop.yml"
148
+ - ".travis.yml"
149
+ - CHANGELOG.md
150
+ - Gemfile
151
+ - Gemfile.lock
152
+ - README.md
153
+ - Rakefile
154
+ - bin/console
155
+ - bin/setup
156
+ - lib/trailer_vote/media_types.rb
157
+ - lib/trailer_vote/media_types/audio_fragment.rb
158
+ - lib/trailer_vote/media_types/base_text.rb
159
+ - lib/trailer_vote/media_types/carousel.rb
160
+ - lib/trailer_vote/media_types/client_configuration.rb
161
+ - lib/trailer_vote/media_types/configuration.rb
162
+ - lib/trailer_vote/media_types/errors.rb
163
+ - lib/trailer_vote/media_types/feedback.rb
164
+ - lib/trailer_vote/media_types/feedback_listing.rb
165
+ - lib/trailer_vote/media_types/fingerprint_binary.rb
166
+ - lib/trailer_vote/media_types/interactive_player.rb
167
+ - lib/trailer_vote/media_types/partials/image_links.rb
168
+ - lib/trailer_vote/media_types/persona.rb
169
+ - lib/trailer_vote/media_types/place.rb
170
+ - lib/trailer_vote/media_types/product.rb
171
+ - lib/trailer_vote/media_types/product_image.rb
172
+ - lib/trailer_vote/media_types/product_lookup.rb
173
+ - lib/trailer_vote/media_types/product_place_link.rb
174
+ - lib/trailer_vote/media_types/product_video.rb
175
+ - lib/trailer_vote/media_types/products_listing.rb
176
+ - lib/trailer_vote/media_types/sentiment_feedback.rb
177
+ - lib/trailer_vote/media_types/types/boolean.rb
178
+ - lib/trailer_vote/media_types/types/product_data_type.rb
179
+ - lib/trailer_vote/media_types/types/product_image_type.rb
180
+ - lib/trailer_vote/media_types/types/product_movie_handler.rb
181
+ - lib/trailer_vote/media_types/types/product_movie_type.rb
182
+ - lib/trailer_vote/media_types/types/uuid_v4.rb
183
+ - lib/trailer_vote/media_types/types/vote_value.rb
184
+ - lib/trailer_vote/media_types/version.rb
185
+ - trailer_vote-media_types.gemspec
186
+ homepage:
187
+ licenses: []
188
+ metadata: {}
189
+ post_install_message:
190
+ rdoc_options: []
191
+ require_paths:
192
+ - lib
193
+ required_ruby_version: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ required_rubygems_version: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ requirements: []
204
+ rubyforge_project:
205
+ rubygems_version: 2.6.14.1
206
+ signing_key:
207
+ specification_version: 4
208
+ summary: Holds the defined media types for the TrailerVote ecosystem
209
+ test_files: []