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