pbcore 0.3.0 → 0.3.1

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.
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,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_date, class: PBCore::Instantiation::Date, parent: :pbcore_content_element do
5
+
6
+
7
+ type { PBCore::Vocab.date_types.sample }
8
+ value { Faker::Date.backward(rand(1..1000)) }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_digital, class: PBCore::Instantiation::Digital, parent: :pbcore_content_element do
5
+
6
+
7
+ value { 'mp4' }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_dimensions, class: PBCore::Instantiation::Dimensions, parent: :pbcore_content_element do
5
+
6
+
7
+ units_of_measure { Faker::Measurement.height("all") }
8
+ value { Faker::Number.number(1).to_s + 'x' + Faker::Number.number(1) }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_duration, class: PBCore::Instantiation::Duration, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Time.now.strftime("%H:%M:%S") }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,29 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track, class: PBCore::Instantiation::EssenceTrack , parent: :pbcore_element do
5
+
6
+
7
+ type { build(:pbcore_instantiation_essence_track_type) }
8
+ identifiers { build_list(:pbcore_instantiation_essence_track_identifier, rand(1..3)) }
9
+ standard { build(:pbcore_instantiation_essence_track_standard) }
10
+ encoding { build(:pbcore_instantiation_essence_track_encoding) }
11
+ data_rate { build(:pbcore_instantiation_essence_track_data_rate) }
12
+ frame_rate { build(:pbcore_instantiation_essence_track_frame_rate) }
13
+ playback_speed { build(:pbcore_instantiation_essence_track_playback_speed) }
14
+ sampling_rate { build(:pbcore_instantiation_essence_track_sampling_rate) }
15
+ bit_depth { build(:pbcore_instantiation_essence_track_bit_depth) }
16
+ frame_size { build(:pbcore_instantiation_essence_track_frame_size) }
17
+ aspect_ratio { build(:pbcore_instantiation_essence_track_aspect_ratio) }
18
+ time_start { build(:pbcore_instantiation_essence_track_time_start) }
19
+ duration { build(:pbcore_instantiation_essence_track_duration) }
20
+ annotations { build_list(:pbcore_instantiation_essence_track_annotation, rand(1..3)) }
21
+ languages { build_list(:pbcore_instantiation_essence_track_language, rand(1..3)) }
22
+
23
+ trait :sixteen_nine do
24
+ aspect_ratio { build(:pbcore_instantiation_essence_track_aspect_ratio, :sixteen_nine) }
25
+ end
26
+
27
+
28
+ end
29
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_annotation, class: PBCore::Instantiation::EssenceTrack::Annotation, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Faker::TvShows::Seinfeld.quote }
8
+ type { Faker::TvShows::Seinfeld.character }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_aspect_ratio, class: PBCore::Instantiation::EssenceTrack::AspectRatio, parent: :pbcore_content_element do
5
+
6
+
7
+ value { rand(10).to_s + ':' + rand(10).to_s }
8
+ units_of_measure { Faker::Hacker.abbreviation }
9
+
10
+ trait :sixteen_nine do
11
+ value { '16:9' }
12
+ end
13
+
14
+
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_bit_depth, class: PBCore::Instantiation::EssenceTrack::BitDepth, parent: :pbcore_content_element do
5
+
6
+
7
+ value { rand(10) }
8
+ units_of_measure { Faker::Hacker.abbreviation }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_data_rate, class: PBCore::Instantiation::EssenceTrack::DataRate, parent: :pbcore_content_element do
5
+
6
+
7
+ value { rand(100).to_s }
8
+ units_of_measure { %w(Kbps Mbps).sample }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_duration, class: PBCore::Instantiation::EssenceTrack::Duration, 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_essence_track_encoding, class: PBCore::Instantiation::EssenceTrack::Encoding, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Faker::Hacker.abbreviation }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_frame_rate, class: PBCore::Instantiation::EssenceTrack::FrameRate, parent: :pbcore_content_element do
5
+
6
+
7
+ value { rand(1.0..50.0).round(2).to_s }
8
+ units_of_measure { Faker::Hacker.abbreviation }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_frame_size, class: PBCore::Instantiation::EssenceTrack::FrameSize, parent: :pbcore_content_element do
5
+
6
+
7
+ value { rand(1000).to_s + 'x' + rand(1000).to_s }
8
+ units_of_measure { Faker::Hacker.abbreviation }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_identifier, class: PBCore::Instantiation::EssenceTrack::Identifier, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Faker::IDNumber.valid }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_language, class: PBCore::Instantiation::EssenceTrack::Language, parent: :pbcore_content_element do
5
+ source { [ "ISO 639.2", "ISO 639.3" ].sample }
6
+ # TODO: replace with samples from actual standard.
7
+ value { ('a'..'z').to_a.sample(3).join }
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_playback_speed, class: PBCore::Instantiation::EssenceTrack::PlaybackSpeed, parent: :pbcore_content_element do
5
+
6
+
7
+ value { rand(1..50).to_s }
8
+ units_of_measure { ['RPM', 'IPS'].sample }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_sampling_rate, class: PBCore::Instantiation::EssenceTrack::SamplingRate, parent: :pbcore_content_element do
5
+
6
+
7
+ value { rand(1.0..50.0).round(2).to_s }
8
+ units_of_measure { Faker::Hacker.abbreviation }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_standard, class: PBCore::Instantiation::EssenceTrack::Standard, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Faker::Hacker.abbreviation }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_time_start, class: PBCore::Instantiation::EssenceTrack::TimeStart, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Time.now.strftime( "%H:%M:%S") + '.' + rand(1..999).to_s }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_essence_track_type, class: PBCore::Instantiation::EssenceTrack::Type, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Faker::Hacker.abbreviation }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_extension, class: PBCore::Instantiation::Extension, parent: :pbcore_element do
5
+ # NOTE: The elements inside of <instantiationExtension> are the
6
+ # same as the elements inside of <pbcoreExtension>, so we use those
7
+ # factories here.
8
+ # NOTE: <extensionWrap> and <extensionEmbedded> are mutually exclusive child
9
+ # elements of <pbcoreExtension>. However, in the factory we always choose
10
+ # <extensionWrap> by default because we can't produce round-trippable XML
11
+ # for <extensionEmbedded> because of how SAXMachine parsing works.
12
+ # (See lib/pbcore/extension/embedded.rb)
13
+ wrap { build(:pbcore_extension_wrap) }
14
+ embedded { nil }
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_file_size, class: PBCore::Instantiation::FileSize, parent: :pbcore_content_element do
5
+
6
+
7
+ value { (rand * 100).round(2) }
8
+ units_of_measure { ['B', 'kB', 'MB', 'GB'].sample }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_generations, class: PBCore::Instantiation::Generations, parent: :pbcore_content_element do
5
+
6
+
7
+ value { [ 'Proxy', 'Mezzanine', 'Master', 'Preservation Master' ].sample }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_identifier, class: PBCore::Instantiation::Identifier, parent: :pbcore_content_element do
5
+
6
+
7
+ source { Faker::Company.name }
8
+ value { Faker::IDNumber.valid }
9
+
10
+ trait :ams do
11
+ source { "ams" }
12
+ value { "cpb-blah-blah-blah" }
13
+ end
14
+
15
+
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_language, class: PBCore::Instantiation::Language, parent: :pbcore_content_element do
5
+
6
+
7
+ source { [ "ISO 639.2", "ISO 639.3" ].sample }
8
+ # TODO: replace with samples from actual standard.
9
+ value { ('a'..'z').to_a.sample(3).join }
10
+
11
+
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_location, class: PBCore::Instantiation::Location, parent: :pbcore_content_element do
5
+
6
+
7
+ value { Faker::Address.city }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_media_type, class: PBCore::Instantiation::MediaType, parent: :pbcore_content_element do
5
+
6
+
7
+ value { [ "Moving Image", "Sound"].sample }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_physical, class: PBCore::Instantiation::Physical, parent: :pbcore_content_element do
5
+
6
+
7
+ value { 'Film: 16mm' }
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'pbcore'
2
+
3
+ FactoryBot.define do
4
+ factory :pbcore_instantiation_relation, class: PBCore::Instantiation::Relation, parent: :pbcore_element do
5
+
6
+
7
+ type { create(:pbcore_instantiation_relation_type) }
8
+ identifier { create(:pbcore_instantiation_relation_identifier) }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ require 'pbcore'
2
+ require 'securerandom'
3
+
4
+ FactoryBot.define do
5
+ factory :pbcore_instantiation_relation_identifier, class: PBCore::Instantiation::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_instantiation_relation_type, class: PBCore::Instantiation::Relation::Type, parent: :pbcore_content_element do
5
+
6
+ value { Faker::Hacker.abbreviation }
7
+
8
+ end
9
+ end