pbcore 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pbcore/version.rb +1 -1
  3. data/pbcore.gemspec +10 -2
  4. data/spec/factories/annotation.rb +9 -0
  5. data/spec/factories/asset_date.rb +23 -0
  6. data/spec/factories/asset_type.rb +7 -0
  7. data/spec/factories/audience_level.rb +7 -0
  8. data/spec/factories/audience_rating.rb +7 -0
  9. data/spec/factories/contributor.rb +9 -0
  10. data/spec/factories/contributor/contributor.rb +6 -0
  11. data/spec/factories/contributor/role.rb +6 -0
  12. data/spec/factories/coverage.rb +22 -0
  13. data/spec/factories/coverage/coverage.rb +22 -0
  14. data/spec/factories/coverage/type.rb +8 -0
  15. data/spec/factories/creator.rb +8 -0
  16. data/spec/factories/creator/creator.rb +12 -0
  17. data/spec/factories/creator/role.rb +8 -0
  18. data/spec/factories/description.rb +11 -0
  19. data/spec/factories/description_document.rb +28 -0
  20. data/spec/factories/extension.rb +11 -0
  21. data/spec/factories/extension/embedded.rb +7 -0
  22. data/spec/factories/extension/wrap.rb +11 -0
  23. data/spec/factories/extension/wrap/authority_used.rb +7 -0
  24. data/spec/factories/extension/wrap/element.rb +7 -0
  25. data/spec/factories/extension/wrap/value.rb +7 -0
  26. data/spec/factories/genre.rb +8 -0
  27. data/spec/factories/identifier.rb +10 -0
  28. data/spec/factories/instantiation.rb +34 -0
  29. data/spec/factories/instantiation/alternative_modes.rb +11 -0
  30. data/spec/factories/instantiation/annotation.rb +12 -0
  31. data/spec/factories/instantiation/channel_configuration.rb +11 -0
  32. data/spec/factories/instantiation/colors.rb +11 -0
  33. data/spec/factories/instantiation/data_rate.rb +12 -0
  34. data/spec/factories/instantiation/date.rb +12 -0
  35. data/spec/factories/instantiation/digital.rb +11 -0
  36. data/spec/factories/instantiation/dimensions.rb +12 -0
  37. data/spec/factories/instantiation/duration.rb +11 -0
  38. data/spec/factories/instantiation/essence_track.rb +29 -0
  39. data/spec/factories/instantiation/essence_track/annotation.rb +12 -0
  40. data/spec/factories/instantiation/essence_track/aspect_ratio.rb +16 -0
  41. data/spec/factories/instantiation/essence_track/bit_depth.rb +12 -0
  42. data/spec/factories/instantiation/essence_track/data_rate.rb +12 -0
  43. data/spec/factories/instantiation/essence_track/duration.rb +11 -0
  44. data/spec/factories/instantiation/essence_track/encoding.rb +11 -0
  45. data/spec/factories/instantiation/essence_track/frame_rate.rb +12 -0
  46. data/spec/factories/instantiation/essence_track/frame_size.rb +12 -0
  47. data/spec/factories/instantiation/essence_track/identifier.rb +11 -0
  48. data/spec/factories/instantiation/essence_track/language.rb +9 -0
  49. data/spec/factories/instantiation/essence_track/playback_speed.rb +12 -0
  50. data/spec/factories/instantiation/essence_track/sampling_rate.rb +12 -0
  51. data/spec/factories/instantiation/essence_track/standard.rb +11 -0
  52. data/spec/factories/instantiation/essence_track/time_start.rb +11 -0
  53. data/spec/factories/instantiation/essence_track/type.rb +11 -0
  54. data/spec/factories/instantiation/extension.rb +16 -0
  55. data/spec/factories/instantiation/file_size.rb +12 -0
  56. data/spec/factories/instantiation/generations.rb +11 -0
  57. data/spec/factories/instantiation/identifier.rb +17 -0
  58. data/spec/factories/instantiation/language.rb +13 -0
  59. data/spec/factories/instantiation/location.rb +11 -0
  60. data/spec/factories/instantiation/media_type.rb +11 -0
  61. data/spec/factories/instantiation/physical.rb +11 -0
  62. data/spec/factories/instantiation/relation.rb +12 -0
  63. data/spec/factories/instantiation/relation/identifier.rb +10 -0
  64. data/spec/factories/instantiation/relation/type.rb +9 -0
  65. data/spec/factories/instantiation/rights.rb +20 -0
  66. data/spec/factories/instantiation/rights/link.rb +7 -0
  67. data/spec/factories/instantiation/rights/summary.rb +7 -0
  68. data/spec/factories/instantiation/standard.rb +12 -0
  69. data/spec/factories/instantiation/time_start.rb +11 -0
  70. data/spec/factories/instantiation/tracks.rb +11 -0
  71. data/spec/factories/instantiation_document.rb +44 -0
  72. data/spec/factories/pbcore_content_element.rb +10 -0
  73. data/spec/factories/pbcore_element.rb +8 -0
  74. data/spec/factories/publisher.rb +10 -0
  75. data/spec/factories/publisher/publisher.rb +12 -0
  76. data/spec/factories/publisher/role.rb +8 -0
  77. data/spec/factories/relation.rb +8 -0
  78. data/spec/factories/relation/identifier.rb +10 -0
  79. data/spec/factories/relation/type.rb +9 -0
  80. data/spec/factories/rights_summary.rb +25 -0
  81. data/spec/factories/rights_summary/link.rb +11 -0
  82. data/spec/factories/rights_summary/summary.rb +11 -0
  83. data/spec/factories/subject.rb +11 -0
  84. data/spec/factories/title.rb +12 -0
  85. metadata +83 -2
@@ -0,0 +1,20 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_rights, class: PBCore::Instantiation::Rights, parent: :pbcore_element do
5
+
6
+
7
+ # rightsSummary and rightsLink elements are mutually exclusive.
8
+ if [true, false].sample
9
+ summary { build(:pbcore_instantiation_rights_summary) }
10
+ else
11
+ link { build(:pbcore_instantiation_rights_link) }
12
+ end
13
+
14
+ start_time { DateTimeHelpers.rand_date_time }
15
+ end_time { DateTimeHelpers.rand_date_time(after: start_time) }
16
+ time_annotation { Faker::Lorem.words.join(' ') }
17
+
18
+
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :pbcore_instantiation_rights_link, class: PBCore::Instantiation::Rights::Link, parent: :pbcore_content_element do
3
+
4
+ value { Faker::Internet.url }
5
+
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :pbcore_instantiation_rights_summary, class: PBCore::Instantiation::Rights::Summary, parent: :pbcore_content_element do
3
+
4
+ value { Faker::Lorem.paragraph }
5
+
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_standard, class: PBCore::Instantiation::Standard, parent: :pbcore_content_element do
5
+
6
+
7
+ profile { Faker::Hacker.noun }
8
+ value { Faker::Hacker.noun }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_time_start, class: PBCore::Instantiation::TimeStart, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Time.now.strftime("%H:%M:%S") }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_tracks, class: PBCore::Instantiation::Tracks, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Faker::Music.instrument }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,44 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_document, class: PBCore::InstantiationDocument, parent: :pbcore_element do
5
+
6
+
7
+ identifiers { build_list(:pbcore_instantiation_identifier, rand(1..3)) }
8
+ dates { build_list(:pbcore_instantiation_date, rand(1..3)) }
9
+ dimensions { build_list(:pbcore_instantiation_dimensions, rand(1..3)) }
10
+ digital { build(:pbcore_instantiation_digital) }
11
+ physical { build(:pbcore_instantiation_physical) }
12
+ standard { build(:pbcore_instantiation_standard) }
13
+ location { build(:pbcore_instantiation_location) }
14
+ media_type { build(:pbcore_instantiation_media_type) }
15
+ generations { build_list(:pbcore_instantiation_generations, rand(1..3)) }
16
+ time_start { build(:pbcore_instantiation_time_start) }
17
+ duration { build(:pbcore_instantiation_duration) }
18
+ colors { build(:pbcore_instantiation_colors) }
19
+ rights { build_list(:pbcore_instantiation_rights, rand(1..3)) }
20
+ tracks { build(:pbcore_instantiation_tracks) }
21
+ channel_configuration { build(:pbcore_instantiation_channel_configuration) }
22
+ alternative_modes { build(:pbcore_instantiation_alternative_modes) }
23
+ annotations { build_list(:pbcore_instantiation_annotation, rand(1..3)) }
24
+ essence_tracks { build_list(:pbcore_instantiation_essence_track, rand(1..3)) }
25
+ extensions { build_list(:pbcore_instantiation_extension, rand(1..3)) }
26
+ languages { build_list(:pbcore_instantiation_language, rand(1..3)) }
27
+ relations { build_list(:pbcore_instantiation_relation, rand(1..3)) }
28
+ file_size { build(:pbcore_instantiation_file_size) }
29
+ data_rate { build(:pbcore_instantiation_data_rate) }
30
+
31
+ # time attributes
32
+ start_time { DateTimeHelpers.rand_date_time }
33
+ end_time { DateTimeHelpers.rand_date_time after: start_time }
34
+ time_annotation { Faker::Movies::StarWars.quote }
35
+
36
+
37
+
38
+ trait :media_info do
39
+ physical { }
40
+ generations { }
41
+ essence_tracks { [ build(:pbcore_instantiation_essence_track) ] }
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,10 @@
1
+ require_relative '../../spec/support/fake_version_helper'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_content_element, class: PBCore::ContentElement, parent: :pbcore_element do
5
+ source { Faker::Internet.url }
6
+ ref { Faker::Internet.url }
7
+ annotation { Faker::Company.bs }
8
+ version { FakeVersionHelper.fake_version }
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ require_relative '../../spec/support/fake_version_helper'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_element, class: PBCore::Element do
5
+ skip_create
6
+ initialize_with { new(attributes) }
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ FactoryBot.define do
2
+ factory :pbcore_publisher, class: PBCore::Publisher, parent: :pbcore_element do
3
+
4
+
5
+ publisher { create(:pbcore_publisher_publisher) }
6
+ role { create(:pbcore_publisher_role) }
7
+
8
+
9
+ end
10
+ end
@@ -0,0 +1,12 @@
1
+ FactoryBot.define do
2
+ factory :pbcore_publisher_publisher, class: PBCore::Publisher::Publisher, parent: :pbcore_content_element do
3
+
4
+ affiliation { Faker::Lorem.words.join(' ') }
5
+ affiliation_ref { Faker::Internet.url }
6
+ affiliation_source { Faker::Internet.url }
7
+ affiliation_version { FakeVersionHelper.fake_version }
8
+ affiliation_annotation { Faker::Company.bs }
9
+ value { Faker::Book.publisher }
10
+
11
+ end
12
+ end
@@ -0,0 +1,8 @@
1
+ FactoryBot.define do
2
+ factory :pbcore_publisher_role, class: PBCore::Publisher::Role, parent: :pbcore_content_element do
3
+
4
+
5
+ value { Faker::Job.title }
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_relation, class: PBCore::Relation, parent: :pbcore_element do
5
+ type { create(:pbcore_relation_type) }
6
+ identifier { create(:pbcore_relation_identifier) }
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ require 'pbcore'
2
+ require 'securerandom'
3
+
4
+ FactoryBot.define do
5
+ factory :pbcore_relation_identifier, class: PBCore::Relation::Identifier, parent: :pbcore_content_element do
6
+
7
+ value { SecureRandom.uuid }
8
+
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_relation_type, class: PBCore::Relation::Type, parent: :pbcore_content_element do
5
+
6
+ value { Faker::Hacker.abbreviation }
7
+
8
+ end
9
+ end
@@ -0,0 +1,25 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_rights_summary, class: PBCore::RightsSummary, parent: :pbcore_element do
5
+
6
+
7
+ start_time { DateTimeHelpers.rand_date_time }
8
+ end_time { DateTimeHelpers.rand_date_time after: start_time }
9
+ time_annotation { Faker::Lorem.words.join(' ') }
10
+
11
+
12
+
13
+ after(:build) do |element, _evaluator|
14
+ unless element.link || element.summary
15
+ # <rightsLink> and <rightsSummary> are mutually exclusive, but one of
16
+ # them is required, so if neither are set explicitly, then choose one to
17
+ # set at random.
18
+ [
19
+ -> { element.link = build(:pbcore_rights_summary_link) },
20
+ -> { element.summary = build(:pbcore_rights_summary_summary) }
21
+ ].sample.call
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_rights_summary_link, class: PBCore::RightsSummary::Link, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Faker::Internet.url }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_rights_summary_summary, class: PBCore::RightsSummary::Summary, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Faker::Lorem.paragraph }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ FactoryBot.define do
2
+ factory :pbcore_subject, class: PBCore::Subject, parent: :pbcore_content_element do
3
+
4
+ type { Faker::Hacker.adjective }
5
+ type_source { Faker::Internet.url }
6
+ type_ref { Faker::Internet.url }
7
+ type_annotation { Faker::Hacker.adjective }
8
+ value { Faker::IndustrySegments.sector }
9
+
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+ require 'faker'
3
+
4
+ FactoryBot.define do
5
+ factory :pbcore_title, class: PBCore::Title, parent: :pbcore_content_element do
6
+ type { Faker::Hacker.adjective }
7
+ type_source { Faker::Internet.url }
8
+ type_ref { Faker::Internet.url }
9
+ type_annotation { Faker::Hacker.adjective }
10
+ value { "#{Faker::Book.title} #{Faker::Hipster.sentence}" }
11
+ end
12
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pbcore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Myers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-23 00:00:00.000000000 Z
11
+ date: 2021-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -272,6 +272,87 @@ files:
272
272
  - lib/pbcore/version.rb
273
273
  - lib/pbcore/vocab.rb
274
274
  - pbcore.gemspec
275
+ - spec/factories/annotation.rb
276
+ - spec/factories/asset_date.rb
277
+ - spec/factories/asset_type.rb
278
+ - spec/factories/audience_level.rb
279
+ - spec/factories/audience_rating.rb
280
+ - spec/factories/contributor.rb
281
+ - spec/factories/contributor/contributor.rb
282
+ - spec/factories/contributor/role.rb
283
+ - spec/factories/coverage.rb
284
+ - spec/factories/coverage/coverage.rb
285
+ - spec/factories/coverage/type.rb
286
+ - spec/factories/creator.rb
287
+ - spec/factories/creator/creator.rb
288
+ - spec/factories/creator/role.rb
289
+ - spec/factories/description.rb
290
+ - spec/factories/description_document.rb
291
+ - spec/factories/extension.rb
292
+ - spec/factories/extension/embedded.rb
293
+ - spec/factories/extension/wrap.rb
294
+ - spec/factories/extension/wrap/authority_used.rb
295
+ - spec/factories/extension/wrap/element.rb
296
+ - spec/factories/extension/wrap/value.rb
297
+ - spec/factories/genre.rb
298
+ - spec/factories/identifier.rb
299
+ - spec/factories/instantiation.rb
300
+ - spec/factories/instantiation/alternative_modes.rb
301
+ - spec/factories/instantiation/annotation.rb
302
+ - spec/factories/instantiation/channel_configuration.rb
303
+ - spec/factories/instantiation/colors.rb
304
+ - spec/factories/instantiation/data_rate.rb
305
+ - spec/factories/instantiation/date.rb
306
+ - spec/factories/instantiation/digital.rb
307
+ - spec/factories/instantiation/dimensions.rb
308
+ - spec/factories/instantiation/duration.rb
309
+ - spec/factories/instantiation/essence_track.rb
310
+ - spec/factories/instantiation/essence_track/annotation.rb
311
+ - spec/factories/instantiation/essence_track/aspect_ratio.rb
312
+ - spec/factories/instantiation/essence_track/bit_depth.rb
313
+ - spec/factories/instantiation/essence_track/data_rate.rb
314
+ - spec/factories/instantiation/essence_track/duration.rb
315
+ - spec/factories/instantiation/essence_track/encoding.rb
316
+ - spec/factories/instantiation/essence_track/frame_rate.rb
317
+ - spec/factories/instantiation/essence_track/frame_size.rb
318
+ - spec/factories/instantiation/essence_track/identifier.rb
319
+ - spec/factories/instantiation/essence_track/language.rb
320
+ - spec/factories/instantiation/essence_track/playback_speed.rb
321
+ - spec/factories/instantiation/essence_track/sampling_rate.rb
322
+ - spec/factories/instantiation/essence_track/standard.rb
323
+ - spec/factories/instantiation/essence_track/time_start.rb
324
+ - spec/factories/instantiation/essence_track/type.rb
325
+ - spec/factories/instantiation/extension.rb
326
+ - spec/factories/instantiation/file_size.rb
327
+ - spec/factories/instantiation/generations.rb
328
+ - spec/factories/instantiation/identifier.rb
329
+ - spec/factories/instantiation/language.rb
330
+ - spec/factories/instantiation/location.rb
331
+ - spec/factories/instantiation/media_type.rb
332
+ - spec/factories/instantiation/physical.rb
333
+ - spec/factories/instantiation/relation.rb
334
+ - spec/factories/instantiation/relation/identifier.rb
335
+ - spec/factories/instantiation/relation/type.rb
336
+ - spec/factories/instantiation/rights.rb
337
+ - spec/factories/instantiation/rights/link.rb
338
+ - spec/factories/instantiation/rights/summary.rb
339
+ - spec/factories/instantiation/standard.rb
340
+ - spec/factories/instantiation/time_start.rb
341
+ - spec/factories/instantiation/tracks.rb
342
+ - spec/factories/instantiation_document.rb
343
+ - spec/factories/pbcore_content_element.rb
344
+ - spec/factories/pbcore_element.rb
345
+ - spec/factories/publisher.rb
346
+ - spec/factories/publisher/publisher.rb
347
+ - spec/factories/publisher/role.rb
348
+ - spec/factories/relation.rb
349
+ - spec/factories/relation/identifier.rb
350
+ - spec/factories/relation/type.rb
351
+ - spec/factories/rights_summary.rb
352
+ - spec/factories/rights_summary/link.rb
353
+ - spec/factories/rights_summary/summary.rb
354
+ - spec/factories/subject.rb
355
+ - spec/factories/title.rb
275
356
  homepage: https://github.com/WGBH-MLA/pbcore
276
357
  licenses:
277
358
  - MIT