poms 0.0.9 → 0.0.10

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 (33) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +19 -2
  3. data/lib/poms.rb +22 -2
  4. data/lib/poms/builderless/broadcast.rb +36 -0
  5. data/lib/poms/builderless/clip.rb +36 -0
  6. data/lib/poms/connect.rb +13 -0
  7. data/lib/poms/fields.rb +22 -0
  8. data/lib/poms/version.rb +1 -1
  9. data/lib/poms/views.rb +24 -0
  10. data/poms.gemspec +2 -0
  11. data/spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_position.yml +43 -0
  12. data/spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_title.yml +43 -0
  13. data/spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_video_url.yml +43 -0
  14. data/spec/fixtures/vcr_cassettes/poms/builderless/clip/has_an_image_id.yml +43 -0
  15. data/spec/fixtures/vcr_cassettes/poms/fetch_broadcasts_fetch_current_broadcast_fetches_the_current_broadcast.yml +60 -0
  16. data/spec/fixtures/vcr_cassettes/poms_fetch/a_broadcast_has_scheduled_events_with_last_with_starts_at.yml +43 -0
  17. data/spec/fixtures/vcr_cassettes/poms_fetch/a_clip_has_a_title.yml +43 -0
  18. data/spec/fixtures/vcr_cassettes/poms_fetch/an_aankeiler_has_images.yml +43 -0
  19. data/spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_a_mid.yml +51 -0
  20. data/spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_a_title.yml +51 -0
  21. data/spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_scheduled_events_with_last_with_starts_at.yml +51 -0
  22. data/spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast_and_key/has_a_broadcast_with_a_mid.yml +51 -0
  23. data/spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast_and_key/has_a_key.yml +51 -0
  24. data/spec/fixtures/vcr_cassettes/poms_fetch_group/has_a_child_with_a_media_type.yml +422 -0
  25. data/spec/fixtures/vcr_cassettes/poms_fetch_group/has_a_child_with_a_title.yml +422 -0
  26. data/spec/fixtures/vcr_cassettes/poms_fetch_playlist_clips/creates_an_array_of_clips.yml +970 -0
  27. data/spec/integration/poms_spec.rb +75 -0
  28. data/spec/lib/poms/{buider_spec.rb → builder_spec.rb} +0 -0
  29. data/spec/lib/poms/builderless/clip_spec.rb +20 -0
  30. data/spec/lib/poms/views_spec.rb +14 -2
  31. data/spec/lib/poms_spec.rb +7 -1
  32. data/spec/spec_helper.rb +23 -0
  33. metadata +72 -4
@@ -0,0 +1,75 @@
1
+ require 'spec_helper'
2
+
3
+ describe Poms do
4
+
5
+ describe '#fetch_current_broadcast' do
6
+ let(:current_broadcast) { Poms.fetch_current_broadcast('NED3') }
7
+
8
+ it 'has a title' do
9
+ expect(current_broadcast.title).to be_present
10
+ end
11
+
12
+ it 'has a mid' do
13
+ expect(current_broadcast.mid).to be_present
14
+ end
15
+
16
+ it 'has scheduled events with last with starts_at' do
17
+ expect(current_broadcast.schedule_events.last.starts_at).to be_present
18
+ end
19
+ end
20
+
21
+ describe '#fetch_current_broadcast_and_key' do
22
+ let(:current_broadcast) { Poms.fetch_current_broadcast_and_key('NED3') }
23
+
24
+ it 'has a key' do
25
+ expect(current_broadcast[:key]).to be_present
26
+ end
27
+
28
+ it 'has a broadcast with a mid' do
29
+ expect(current_broadcast[:broadcast].mid).to be_present
30
+ end
31
+ end
32
+
33
+ describe '#fetch an aankeiler' do
34
+ let(:result) { Poms.fetch('WO_NPO_698651') }
35
+
36
+ it 'has images' do
37
+ expect(result.images.first.image_uri).to be_present
38
+ end
39
+ end
40
+
41
+ describe '#fetch a broadcast' do
42
+ let(:result) { Poms.fetch('POW_00182680') }
43
+
44
+ it 'has scheduled events with last with starts_at' do
45
+ expect(result.schedule_events.last.starts_at).to be_present
46
+ end
47
+ end
48
+
49
+ describe '#fetch a clip' do
50
+ let(:clip) { Poms.fetch('POMS_EO_622912') }
51
+
52
+ it 'has a title' do
53
+ expect(clip['titles']).to be_present
54
+ end
55
+ end
56
+
57
+ describe '#fetch_group' do
58
+ let(:clip) { Poms.fetch_group('POMS_S_NPO_823012')['rows'].first['doc'] }
59
+
60
+ it 'has a child with a title' do
61
+ expect(clip['titles']).to be_present
62
+ end
63
+
64
+ it 'has a child with a media type' do
65
+ expect(clip['avType']).to be_present
66
+ end
67
+
68
+ it 'has a child with a media type' do
69
+ expect(clip['mid']).to be_present
70
+ end
71
+ end
72
+
73
+ describe '#upcoming_broadcasts'
74
+ describe '#fetch_descendant_mids'
75
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Poms::Builderless::Clip do
4
+ let(:clip) { Poms.fetch_clip('WO_NPO_1950962') }
5
+
6
+ it 'has a title' do
7
+ expect(clip.title).to eq 'Liedje: de wielen van de bus'
8
+ end
9
+ it 'has a video url' do
10
+ expect(clip.video_url).to eq 'http://download.omroep.nl/npo/zappelin/DWVZ_AFL_86_De_wielen_van_de_bus.mp4'
11
+ end
12
+
13
+ it 'has an image id' do
14
+ expect(clip.image_id).to eq '653515'
15
+ end
16
+
17
+ it 'has a position' do
18
+ expect(clip.position).to eq 1
19
+ end
20
+ end
@@ -1,7 +1,19 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Poms::Views do
4
- it 'returns the correct group url' do
5
- expect(subject.by_group('POMS_S_NPO_823012')).to eq('http://docs.poms.omroep.nl/media/_design/media/_view/by-group?include_docs=true&key=%22POMS_S_NPO_823012%22&reduce=false')
4
+ describe "#get" do
5
+ let(:response) { File.read 'spec/fixtures/poms_broadcast.json' }
6
+
7
+ it 'returns a metadata object' do
8
+ FakeWeb.register_uri(:get, "http://docs.poms.omroep.nl/media/KRO_1614405", :body => response)
9
+ expect(subject.get('KRO_1614405')).to eq(JSON.parse response)
10
+ end
11
+ end
12
+
13
+ describe "#by_group" do
14
+
15
+ it 'returns the correct group url' do
16
+ expect(subject.by_group('POMS_S_NPO_823012')).to eq("http://docs.poms.omroep.nl/media/_design/media/_view/by-group?include_docs=true&key=%22POMS_S_NPO_823012%22&reduce=false")
17
+ end
6
18
  end
7
19
  end
@@ -33,6 +33,12 @@ describe Poms do
33
33
  end
34
34
  end
35
35
 
36
+ describe '#fetch_playlist_clips' do
37
+ it 'creates an array of clips' do
38
+ expect(Poms.fetch_playlist_clips('POMS_S_NPO_818759').size).to eq(21)
39
+ end
40
+ end
41
+
36
42
  describe '#fetch_broadcasts_for_serie' do
37
43
  it 'returns nil when a broadcast does not exist' do
38
44
  FakeWeb.register_uri(:get, "http://docs.poms.omroep.nl/media/_design/media/_view/by-ancestor-and-type?reduce=false&key=[%22BLA%22,%22BROADCAST%22]&include_docs=true", :status => [404, "Not Found"])
@@ -75,7 +81,7 @@ describe Poms do
75
81
  end
76
82
 
77
83
  it "fetches the current broadcast" do
78
- expect(Poms::Builder).to receive(:process_hash).exactly(1).times
84
+ expect(Poms::Builder).to receive(:process_hash).exactly(0).times
79
85
  Poms.fetch_current_broadcast('NED3')
80
86
  end
81
87
  end
@@ -2,6 +2,29 @@ require 'rubygems'
2
2
  require 'bundler/setup'
3
3
  require 'fakeweb'
4
4
  require 'fabrication'
5
+ require 'vcr'
6
+ require 'timecop'
5
7
  require 'poms' # and any other gems you need
6
8
 
7
9
  FakeWeb.allow_net_connect = false
10
+
11
+ VCR.configure do |config|
12
+ config.cassette_library_dir = "spec/fixtures/vcr_cassettes"
13
+ config.hook_into :fakeweb
14
+ end
15
+
16
+ RSpec.configure do |config|
17
+ config.around(:each) do |example|
18
+ options = example.metadata[:vcr] || {}
19
+ if options[:record] == :skip
20
+ VCR.turned_off(&example)
21
+ else
22
+ name = example.metadata[:full_description].split(/\s+/, 2).join('/').underscore.gsub(/[^\w\/]+/, '_')
23
+ VCR.use_cassette(name, options, &example)
24
+ end
25
+ end
26
+
27
+ config.before(:suite) do
28
+ Timecop.freeze Time.utc(2015, 10, 6, 12)
29
+ end
30
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: poms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Kruijsen
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-06-18 00:00:00.000000000 Z
13
+ date: 2015-10-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -110,6 +110,20 @@ dependencies:
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
+ - !ruby/object:Gem::Dependency
114
+ name: rubocop
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
113
127
  - !ruby/object:Gem::Dependency
114
128
  name: timecop
115
129
  requirement: !ruby/object:Gem::Requirement
@@ -124,6 +138,20 @@ dependencies:
124
138
  - - ">="
125
139
  - !ruby/object:Gem::Version
126
140
  version: '0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: vcr
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
127
155
  - !ruby/object:Gem::Dependency
128
156
  name: activesupport
129
157
  requirement: !ruby/object:Gem::Requirement
@@ -157,6 +185,10 @@ files:
157
185
  - lib/poms/base.rb
158
186
  - lib/poms/broadcast.rb
159
187
  - lib/poms/builder.rb
188
+ - lib/poms/builderless/broadcast.rb
189
+ - lib/poms/builderless/clip.rb
190
+ - lib/poms/connect.rb
191
+ - lib/poms/fields.rb
160
192
  - lib/poms/has_ancestors.rb
161
193
  - lib/poms/has_base_attributes.rb
162
194
  - lib/poms/schedule_event.rb
@@ -173,8 +205,26 @@ files:
173
205
  - spec/fixtures/poms_series.json
174
206
  - spec/fixtures/poms_single_broadcast_by_channel.json
175
207
  - spec/fixtures/poms_zapp.json
208
+ - spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_position.yml
209
+ - spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_title.yml
210
+ - spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_video_url.yml
211
+ - spec/fixtures/vcr_cassettes/poms/builderless/clip/has_an_image_id.yml
212
+ - spec/fixtures/vcr_cassettes/poms/fetch_broadcasts_fetch_current_broadcast_fetches_the_current_broadcast.yml
213
+ - spec/fixtures/vcr_cassettes/poms_fetch/a_broadcast_has_scheduled_events_with_last_with_starts_at.yml
214
+ - spec/fixtures/vcr_cassettes/poms_fetch/a_clip_has_a_title.yml
215
+ - spec/fixtures/vcr_cassettes/poms_fetch/an_aankeiler_has_images.yml
216
+ - spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_a_mid.yml
217
+ - spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_a_title.yml
218
+ - spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_scheduled_events_with_last_with_starts_at.yml
219
+ - spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast_and_key/has_a_broadcast_with_a_mid.yml
220
+ - spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast_and_key/has_a_key.yml
221
+ - spec/fixtures/vcr_cassettes/poms_fetch_group/has_a_child_with_a_media_type.yml
222
+ - spec/fixtures/vcr_cassettes/poms_fetch_group/has_a_child_with_a_title.yml
223
+ - spec/fixtures/vcr_cassettes/poms_fetch_playlist_clips/creates_an_array_of_clips.yml
224
+ - spec/integration/poms_spec.rb
176
225
  - spec/lib/poms/broadcast_spec.rb
177
- - spec/lib/poms/buider_spec.rb
226
+ - spec/lib/poms/builder_spec.rb
227
+ - spec/lib/poms/builderless/clip_spec.rb
178
228
  - spec/lib/poms/schedule_event_spec.rb
179
229
  - spec/lib/poms/views_spec.rb
180
230
  - spec/lib/poms_spec.rb
@@ -212,8 +262,26 @@ test_files:
212
262
  - spec/fixtures/poms_series.json
213
263
  - spec/fixtures/poms_single_broadcast_by_channel.json
214
264
  - spec/fixtures/poms_zapp.json
265
+ - spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_position.yml
266
+ - spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_title.yml
267
+ - spec/fixtures/vcr_cassettes/poms/builderless/clip/has_a_video_url.yml
268
+ - spec/fixtures/vcr_cassettes/poms/builderless/clip/has_an_image_id.yml
269
+ - spec/fixtures/vcr_cassettes/poms/fetch_broadcasts_fetch_current_broadcast_fetches_the_current_broadcast.yml
270
+ - spec/fixtures/vcr_cassettes/poms_fetch/a_broadcast_has_scheduled_events_with_last_with_starts_at.yml
271
+ - spec/fixtures/vcr_cassettes/poms_fetch/a_clip_has_a_title.yml
272
+ - spec/fixtures/vcr_cassettes/poms_fetch/an_aankeiler_has_images.yml
273
+ - spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_a_mid.yml
274
+ - spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_a_title.yml
275
+ - spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast/has_scheduled_events_with_last_with_starts_at.yml
276
+ - spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast_and_key/has_a_broadcast_with_a_mid.yml
277
+ - spec/fixtures/vcr_cassettes/poms_fetch_current_broadcast_and_key/has_a_key.yml
278
+ - spec/fixtures/vcr_cassettes/poms_fetch_group/has_a_child_with_a_media_type.yml
279
+ - spec/fixtures/vcr_cassettes/poms_fetch_group/has_a_child_with_a_title.yml
280
+ - spec/fixtures/vcr_cassettes/poms_fetch_playlist_clips/creates_an_array_of_clips.yml
281
+ - spec/integration/poms_spec.rb
215
282
  - spec/lib/poms/broadcast_spec.rb
216
- - spec/lib/poms/buider_spec.rb
283
+ - spec/lib/poms/builder_spec.rb
284
+ - spec/lib/poms/builderless/clip_spec.rb
217
285
  - spec/lib/poms/schedule_event_spec.rb
218
286
  - spec/lib/poms/views_spec.rb
219
287
  - spec/lib/poms_spec.rb