poms 0.0.3
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.
- checksums.yaml +7 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +80 -0
- data/Guardfile +12 -0
- data/LICENSE.txt +22 -0
- data/README.md +26 -0
- data/Rakefile +7 -0
- data/lib/poms.rb +110 -0
- data/lib/poms/base.rb +7 -0
- data/lib/poms/broadcast.rb +46 -0
- data/lib/poms/builder.rb +78 -0
- data/lib/poms/has_ancestors.rb +42 -0
- data/lib/poms/has_base_attributes.rb +20 -0
- data/lib/poms/schedule_event.rb +36 -0
- data/lib/poms/season.rb +13 -0
- data/lib/poms/series.rb +12 -0
- data/lib/poms/version.rb +3 -0
- data/spec/fabricators/poms_fabricator.rb +39 -0
- data/spec/fixtures/poms_broadcast.json +307 -0
- data/spec/fixtures/poms_broadcast_multiple_schedule_events.json +354 -0
- data/spec/fixtures/poms_broadcast_pippi.json +180 -0
- data/spec/fixtures/poms_series.json +49 -0
- data/spec/fixtures/poms_zapp.json +47363 -0
- data/spec/lib/poms/broadcast_spec.rb +44 -0
- data/spec/lib/poms/buider_spec.rb +19 -0
- data/spec/lib/poms/schedule_event_spec.rb +15 -0
- data/spec/lib/poms_spec.rb +57 -0
- data/spec/spec_helper.rb +7 -0
- metadata +198 -0
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Poms::Broadcast do
|
4
|
+
|
5
|
+
let(:poms_broadcast) { Fabricate(:poms_broadcast) }
|
6
|
+
# pippi langkous is a peculiar case, as it has no series, just a season
|
7
|
+
let(:poms_pippi_langkous) { Fabricate(:poms_broadcast_pippi_langkous) }
|
8
|
+
|
9
|
+
it 'correctly sets the series' do
|
10
|
+
expect(poms_broadcast.serie_mid).to eq('POMS_S_KRO_059857')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'correctly sets the title' do
|
14
|
+
expect(poms_broadcast.title).to eq('VRijland afl.64 & 65 (herhaling)')
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'correctly sets the description' do
|
18
|
+
description = "Li biedt Barry een baantje aan bij de uitdragerij en vraagt zich meteen af of dat wel zo slim was. Timon en Joep zien de criminele organisatie de Rijland Angels. Timon wil naar hun loods, maar is dat wel een goed idee?"
|
19
|
+
expect(poms_broadcast.description).to eq(description)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'converts schedule events to Poms::ScheduleEvent' do
|
23
|
+
poms_broadcast.schedule_events.each do |e|
|
24
|
+
expect(e.class).to eq(Poms::ScheduleEvent)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'correctly sets available until' do
|
29
|
+
expect(poms_broadcast.available_until).to eq(Time.at(1369758599).to_datetime)
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'sets the serie correctly when a broadcast only has a season, no series' do
|
33
|
+
expect(poms_pippi_langkous.serie_mid).to eq('POW_00107959')
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'returns the available streams' do
|
37
|
+
expect(poms_broadcast.odi_streams).to eq(["adaptive", "h264_sb", "h264_bb", "h264_std", "wvc1_std", "wmv_sb", "wmv_bb"])
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'return the ancestors of the broadcast' do
|
41
|
+
# I use to_set as the order does not matter
|
42
|
+
expect(poms_broadcast.ancestor_mids.to_set).to eq(['POMS_S_KRO_059857', 'KRO_1521173'].to_set)
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Poms::Builder do
|
4
|
+
|
5
|
+
let(:poms_broadcast) { Fabricate(:poms_broadcast) }
|
6
|
+
|
7
|
+
it 'correctly sets the class of a POMS broadcast hash' do
|
8
|
+
expect(poms_broadcast.class).to eq(Poms::Broadcast)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'correctly renames and parses the broadcast\'s schedule_events' do
|
12
|
+
expect(poms_broadcast.schedule_events.length).to eq(1)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'correctly converts start times to Time-object' do
|
16
|
+
expect(poms_broadcast.schedule_events.first.start).to eq(Time.parse '2013-05-28 18:08:55 +0200')
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Poms::ScheduleEvent do
|
4
|
+
let(:poms_broadcast) { Fabricate(:poms_broadcast) }
|
5
|
+
let(:schedule_event) {poms_broadcast.schedule_events.first}
|
6
|
+
|
7
|
+
it 'sets the start time' do
|
8
|
+
expect(schedule_event.starts_at).to eq(Time.parse '2013-05-28 18:08:55 +0200')
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'knows the end time' do
|
12
|
+
expect(schedule_event.ends_at).to eq(Time.parse '2013-05-28 18:26:24 +0200')
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Poms do
|
4
|
+
|
5
|
+
describe '#fetch' do
|
6
|
+
|
7
|
+
let(:response) { File.read 'spec/fixtures/poms_broadcast.json' }
|
8
|
+
|
9
|
+
before do
|
10
|
+
FakeWeb.register_uri(:get, "http://docs.poms.omroep.nl/media/KRO_1614405", :body => response)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "fetches a broadcast" do
|
14
|
+
expect(Poms.fetch_raw_json('KRO_1614405')).to eq(JSON.parse response)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "fetches a broadcast and parses it correctly" do
|
18
|
+
expect(Poms::Builder).to receive(:process_hash).with(JSON.parse response)
|
19
|
+
Poms.fetch('KRO_1614405')
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'returns nil when a broadcast does not exits' do
|
23
|
+
FakeWeb.register_uri(:get, "http://docs.poms.omroep.nl/media/BLA", :status => [404, "Not Found"])
|
24
|
+
expect(Poms.fetch('BLA')).to eq(nil)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#fetch_broadcasts_for_serie' do
|
29
|
+
it 'returns nil when a broadcast does not exits' do
|
30
|
+
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"])
|
31
|
+
expect(Poms.fetch_broadcasts_for_serie('BLA')).to eq([])
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
describe '#upcoming_broadcasts' do
|
37
|
+
let(:response) { File.read 'spec/fixtures/poms_zapp.json' }
|
38
|
+
let(:start_time) { Time.parse '2013-05-28 17:32:10 +0200' }
|
39
|
+
let(:end_time) { Time.parse '2013-06-11 17:32:50 +0200' }
|
40
|
+
|
41
|
+
before do
|
42
|
+
path = "http://docs.poms.omroep.nl/media/_design/media/_view/broadcasts-by-broadcaster-and-start?startkey=[%22Zapp%22,1369755130000]&endkey=[%22Zapp%22,1370964770000]&reduce=false&include_docs=true"
|
43
|
+
FakeWeb.register_uri(:get, path, :body => response)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "fetches all broadcast by zapp" do
|
47
|
+
pending "method does not exist"
|
48
|
+
expect(Poms.upcoming_broadcasts_raw_json('zapp', start_time, end_time)).to eq(JSON.parse response)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "fetches all broadcast by zapp and parses it correctly" do
|
52
|
+
expect(Poms::Builder).to receive(:process_hash).exactly(136).times
|
53
|
+
Poms.upcoming_broadcasts('zapp', start_time, end_time)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,198 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: poms
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tom Kruijsen
|
8
|
+
- Stijn Meurkens
|
9
|
+
- Tijn Schuurmans
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2014-09-08 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: bundler
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.3'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '1.3'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: rake
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
type: :development
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: rspec
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
type: :development
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: guard
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: guard-rspec
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - '>='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: fakeweb
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: fabrication
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - '>='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: activesupport
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
type: :runtime
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
description: Interface to POMS CouchDB API
|
128
|
+
email:
|
129
|
+
- tom@brightin.nl
|
130
|
+
- stijn@brightin.nl
|
131
|
+
- tijn@brightin.nl
|
132
|
+
executables: []
|
133
|
+
extensions: []
|
134
|
+
extra_rdoc_files: []
|
135
|
+
files:
|
136
|
+
- Gemfile
|
137
|
+
- Gemfile.lock
|
138
|
+
- Guardfile
|
139
|
+
- LICENSE.txt
|
140
|
+
- README.md
|
141
|
+
- Rakefile
|
142
|
+
- lib/poms.rb
|
143
|
+
- lib/poms/base.rb
|
144
|
+
- lib/poms/broadcast.rb
|
145
|
+
- lib/poms/builder.rb
|
146
|
+
- lib/poms/has_ancestors.rb
|
147
|
+
- lib/poms/has_base_attributes.rb
|
148
|
+
- lib/poms/schedule_event.rb
|
149
|
+
- lib/poms/season.rb
|
150
|
+
- lib/poms/series.rb
|
151
|
+
- lib/poms/version.rb
|
152
|
+
- spec/fabricators/poms_fabricator.rb
|
153
|
+
- spec/fixtures/poms_broadcast.json
|
154
|
+
- spec/fixtures/poms_broadcast_multiple_schedule_events.json
|
155
|
+
- spec/fixtures/poms_broadcast_pippi.json
|
156
|
+
- spec/fixtures/poms_series.json
|
157
|
+
- spec/fixtures/poms_zapp.json
|
158
|
+
- spec/lib/poms/broadcast_spec.rb
|
159
|
+
- spec/lib/poms/buider_spec.rb
|
160
|
+
- spec/lib/poms/schedule_event_spec.rb
|
161
|
+
- spec/lib/poms_spec.rb
|
162
|
+
- spec/spec_helper.rb
|
163
|
+
homepage: https://github.com/brightin/poms
|
164
|
+
licenses:
|
165
|
+
- MIT
|
166
|
+
metadata: {}
|
167
|
+
post_install_message:
|
168
|
+
rdoc_options: []
|
169
|
+
require_paths:
|
170
|
+
- lib
|
171
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - '>='
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
requirements: []
|
182
|
+
rubyforge_project:
|
183
|
+
rubygems_version: 2.2.2
|
184
|
+
signing_key:
|
185
|
+
specification_version: 4
|
186
|
+
summary: Interfcae to POMS CouchDB API
|
187
|
+
test_files:
|
188
|
+
- spec/fabricators/poms_fabricator.rb
|
189
|
+
- spec/fixtures/poms_broadcast.json
|
190
|
+
- spec/fixtures/poms_broadcast_multiple_schedule_events.json
|
191
|
+
- spec/fixtures/poms_broadcast_pippi.json
|
192
|
+
- spec/fixtures/poms_series.json
|
193
|
+
- spec/fixtures/poms_zapp.json
|
194
|
+
- spec/lib/poms/broadcast_spec.rb
|
195
|
+
- spec/lib/poms/buider_spec.rb
|
196
|
+
- spec/lib/poms/schedule_event_spec.rb
|
197
|
+
- spec/lib/poms_spec.rb
|
198
|
+
- spec/spec_helper.rb
|