odeon_uk 1.0.0 → 1.1.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.
- checksums.yaml +15 -0
- data/.rdoc_options +16 -0
- data/.travis.yml +4 -0
- data/README.md +2 -1
- data/lib/odeon_uk/cinema.rb +75 -6
- data/lib/odeon_uk/film.rb +35 -1
- data/lib/odeon_uk/internal/film_with_screenings_parser.rb +6 -3
- data/lib/odeon_uk/screening.rb +6 -4
- data/lib/odeon_uk/version.rb +1 -1
- data/lib/odeon_uk.rb +4 -2
- data/odeon_uk.gemspec +1 -1
- data/test/fixtures/odeon-bfi-imax.html +3061 -0
- data/test/fixtures/odeon-london-leicester-square.html +2847 -0
- data/test/lib/odeon_uk/cinema_test.rb +169 -14
- data/test/lib/odeon_uk/film_test.rb +82 -0
- data/test/lib/odeon_uk/internal/film_with_screenings_parser_test.rb +10 -6
- data/test/lib/odeon_uk/screening_test.rb +15 -3
- metadata +13 -20
@@ -25,28 +25,40 @@ describe OdeonUk::Cinema do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
describe '.find(id)' do
|
28
|
-
let(:id) { 71 }
|
29
|
-
|
30
28
|
subject { OdeonUk::Cinema.find(id) }
|
31
29
|
|
32
30
|
before do
|
33
31
|
sitemap_body = File.read( File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'odeon-sitemap.html') )
|
34
32
|
stub_request(:get, 'http://www.odeon.co.uk/sitemap/').to_return( status: 200, body: sitemap_body, headers: {} )
|
35
|
-
|
36
|
-
# cinema_page_body = File.read( File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'odeon-brighton.html') )
|
37
|
-
# stub_request(:get, 'http://www.odeon.co.uk/cinema/brighton/23/').to_return( status: 200, body: cinema_page_body, headers: {} )
|
38
33
|
end
|
39
34
|
|
40
|
-
|
41
|
-
|
35
|
+
describe 'Brighton' do
|
36
|
+
let(:id) { 71 }
|
37
|
+
|
38
|
+
it 'returns a cinema' do
|
39
|
+
subject.must_be_instance_of(OdeonUk::Cinema)
|
42
40
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
41
|
+
subject.id.must_equal 71
|
42
|
+
subject.brand.must_equal 'Odeon'
|
43
|
+
subject.name.must_equal 'Brighton'
|
44
|
+
subject.slug.must_equal 'brighton'
|
45
|
+
subject.url.must_equal 'http://www.odeon.co.uk/cinemas/brighton/71/'
|
46
|
+
end
|
48
47
|
end
|
49
|
-
|
48
|
+
|
49
|
+
describe 'Leicester Square' do
|
50
|
+
let(:id) { 105 }
|
51
|
+
|
52
|
+
it 'returns a cinema with London prefix removed in the name' do
|
53
|
+
subject.must_be_instance_of(OdeonUk::Cinema)
|
54
|
+
|
55
|
+
subject.id.must_equal 105
|
56
|
+
subject.brand.must_equal 'Odeon'
|
57
|
+
subject.name.must_equal 'Leicester Square'
|
58
|
+
subject.slug.must_equal 'leicester-square'
|
59
|
+
subject.url.must_equal 'http://www.odeon.co.uk/cinemas/london_leicester_square/105/'
|
60
|
+
end
|
61
|
+
end end
|
50
62
|
|
51
63
|
describe '.new id, name, url' do
|
52
64
|
it 'stores id, name, slug and url' do
|
@@ -59,6 +71,31 @@ describe OdeonUk::Cinema do
|
|
59
71
|
end
|
60
72
|
end
|
61
73
|
|
74
|
+
describe '#adr' do
|
75
|
+
describe 'short address' do
|
76
|
+
let(:cinema) { OdeonUk::Cinema.new('71', 'Brighton', '/cinemas/brighton/71/') }
|
77
|
+
subject { cinema.adr }
|
78
|
+
|
79
|
+
before do
|
80
|
+
brighton_cinema_body = File.read( File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'odeon-brighton.html') )
|
81
|
+
stub_request(:get, 'http://www.odeon.co.uk/cinemas/brighton/71/').to_return( status: 200, body: brighton_cinema_body, headers: {} )
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'returns a Hash' do
|
85
|
+
subject.must_be_instance_of Hash
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'returns address hash' do
|
89
|
+
subject.must_equal({
|
90
|
+
street_address: 'Kingswest',
|
91
|
+
locality: 'Brighton',
|
92
|
+
postal_code: 'BN1 2RE',
|
93
|
+
country: 'United Kingdom'
|
94
|
+
})
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
62
99
|
describe '#films' do
|
63
100
|
let(:cinema) { OdeonUk::Cinema.new('71', 'Brighton & Hove', '/cinemas/brighton/71/') }
|
64
101
|
subject { cinema.films }
|
@@ -76,7 +113,18 @@ describe OdeonUk::Cinema do
|
|
76
113
|
end
|
77
114
|
|
78
115
|
it 'returns correct number of films' do
|
79
|
-
subject.count.must_equal
|
116
|
+
subject.count.must_equal 16
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'returns uniquely named films' do
|
120
|
+
subject.each_with_index do |item, index|
|
121
|
+
subject.each_with_index do |jtem, i|
|
122
|
+
if index != i
|
123
|
+
item.name.wont_equal jtem.name
|
124
|
+
item.wont_equal jtem
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
80
128
|
end
|
81
129
|
|
82
130
|
it 'returns film objects with correct names' do
|
@@ -85,6 +133,74 @@ describe OdeonUk::Cinema do
|
|
85
133
|
end
|
86
134
|
end
|
87
135
|
|
136
|
+
describe '#locality' do
|
137
|
+
describe 'short address' do
|
138
|
+
let(:cinema) { OdeonUk::Cinema.new('71', 'Brighton', '/cinemas/brighton/71/') }
|
139
|
+
subject { cinema.locality }
|
140
|
+
|
141
|
+
before do
|
142
|
+
brighton_cinema_body = File.read( File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'odeon-brighton.html') )
|
143
|
+
stub_request(:get, 'http://www.odeon.co.uk/cinemas/brighton/71/').to_return( status: 200, body: brighton_cinema_body, headers: {} )
|
144
|
+
end
|
145
|
+
|
146
|
+
it 'returns a string' do
|
147
|
+
subject.must_be_instance_of String
|
148
|
+
end
|
149
|
+
|
150
|
+
it 'returns town name' do
|
151
|
+
subject.must_equal 'Brighton'
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
describe '#postal_code' do
|
157
|
+
describe 'short address' do
|
158
|
+
let(:cinema) { OdeonUk::Cinema.new('71', 'Brighton', '/cinemas/brighton/71/') }
|
159
|
+
subject { cinema.postal_code }
|
160
|
+
|
161
|
+
before do
|
162
|
+
brighton_cinema_body = File.read( File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'odeon-brighton.html') )
|
163
|
+
stub_request(:get, 'http://www.odeon.co.uk/cinemas/brighton/71/').to_return( status: 200, body: brighton_cinema_body, headers: {} )
|
164
|
+
end
|
165
|
+
|
166
|
+
it 'returns a string' do
|
167
|
+
subject.must_be_instance_of String
|
168
|
+
end
|
169
|
+
|
170
|
+
it 'returns the postcode' do
|
171
|
+
subject.must_equal 'BN1 2RE'
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
describe 'short address (London)' do
|
176
|
+
let(:cinema) { OdeonUk::Cinema.new('211', 'BFI Imax', '/cinemas/bfi_imax/211/') }
|
177
|
+
subject { cinema.postal_code }
|
178
|
+
|
179
|
+
before do
|
180
|
+
body = File.read( File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'odeon-bfi-imax.html') )
|
181
|
+
stub_request(:get, 'http://www.odeon.co.uk/cinemas/bfi_imax/211/').to_return( status: 200, body: body, headers: {} )
|
182
|
+
end
|
183
|
+
|
184
|
+
it 'returns the postcode' do
|
185
|
+
subject.must_equal 'SE1 8XR'
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
describe 'short address (extra London Postcode)' do
|
190
|
+
let(:cinema) { OdeonUk::Cinema.new('105', 'Leicester Square', '/cinemas/london_leicester_square/105/') }
|
191
|
+
subject { cinema.postal_code }
|
192
|
+
|
193
|
+
before do
|
194
|
+
body = File.read( File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'odeon-london-leicester-square.html') )
|
195
|
+
stub_request(:get, 'http://www.odeon.co.uk/cinemas/london_leicester_square/105/').to_return( status: 200, body: body, headers: {} )
|
196
|
+
end
|
197
|
+
|
198
|
+
it 'returns the postcode' do
|
199
|
+
subject.must_equal 'WC2H 7LQ'
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
88
204
|
describe '#screenings' do
|
89
205
|
let(:cinema) { OdeonUk::Cinema.new('71', 'Brighton', '/cinemas/brighton/71/') }
|
90
206
|
subject { cinema.screenings }
|
@@ -114,6 +230,26 @@ describe OdeonUk::Cinema do
|
|
114
230
|
subject.first.when.must_equal Time.utc(2013, 9, 14, 11, 20, 0)
|
115
231
|
subject.last.when.must_equal Time.utc(2013, 9, 19, 19, 40, 0)
|
116
232
|
end
|
233
|
+
|
234
|
+
it 'returns screening objects with correct varients' do
|
235
|
+
subject.each do |screening|
|
236
|
+
screening.varient.wont_be_nil
|
237
|
+
screening.varient.must_match /[23]D/
|
238
|
+
end
|
239
|
+
|
240
|
+
subject.first.varient.must_equal '2D'
|
241
|
+
subject.last.varient.must_equal '2D'
|
242
|
+
end
|
243
|
+
|
244
|
+
it 'returns screening objects with booking urls' do
|
245
|
+
subject.each do |screening|
|
246
|
+
screening.booking_url.wont_be_nil
|
247
|
+
screening.booking_url.must_be_instance_of String
|
248
|
+
end
|
249
|
+
|
250
|
+
subject.first.booking_url.must_equal 'http://www.odeon.co.uk/booking/init/MUZFRjAwMDAwMjNVRFBETVhHIzcxIzE0NDI2/'
|
251
|
+
subject.last.booking_url.must_equal 'http://www.odeon.co.uk/booking/init/RjhFRjAwMDAwMjNVRFBETVhHIzcxIzEzOTY3/'
|
252
|
+
end
|
117
253
|
end
|
118
254
|
|
119
255
|
describe '#screenings_of(film_or_string)' do
|
@@ -182,4 +318,23 @@ describe OdeonUk::Cinema do
|
|
182
318
|
end
|
183
319
|
end
|
184
320
|
|
321
|
+
describe '#street_address' do
|
322
|
+
describe 'short address' do
|
323
|
+
let(:cinema) { OdeonUk::Cinema.new('71', 'Brighton', '/cinemas/brighton/71/') }
|
324
|
+
subject { cinema.street_address }
|
325
|
+
|
326
|
+
before do
|
327
|
+
brighton_cinema_body = File.read( File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'odeon-brighton.html') )
|
328
|
+
stub_request(:get, 'http://www.odeon.co.uk/cinemas/brighton/71/').to_return( status: 200, body: brighton_cinema_body, headers: {} )
|
329
|
+
end
|
330
|
+
|
331
|
+
it 'returns a string' do
|
332
|
+
subject.must_be_instance_of String
|
333
|
+
end
|
334
|
+
|
335
|
+
it 'returns first line of address' do
|
336
|
+
subject.must_equal 'Kingswest'
|
337
|
+
end
|
338
|
+
end
|
339
|
+
end
|
185
340
|
end
|
@@ -10,4 +10,86 @@ describe OdeonUk::Film do
|
|
10
10
|
film.name.must_equal 'Iron Man 3'
|
11
11
|
end
|
12
12
|
end
|
13
|
+
|
14
|
+
describe 'Comparable' do
|
15
|
+
it 'includes comparable methods' do
|
16
|
+
film = OdeonUk::Film.new 'AAAA'
|
17
|
+
film.methods.must_include :<
|
18
|
+
film.methods.must_include :>
|
19
|
+
film.methods.must_include :==
|
20
|
+
film.methods.must_include :<=>
|
21
|
+
film.methods.must_include :<=
|
22
|
+
film.methods.must_include :>=
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'uniqueness' do
|
26
|
+
it 'defines #hash' do
|
27
|
+
film = OdeonUk::Film.new 'AAAA'
|
28
|
+
film.methods.must_include :hash
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#hash' do
|
32
|
+
it 'returns a hash of the slug' do
|
33
|
+
film = OdeonUk::Film.new 'AAAA'
|
34
|
+
film.hash == film.slug.hash
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'defines #eql?(other)' do
|
39
|
+
film = OdeonUk::Film.new 'AAAA'
|
40
|
+
film.methods.must_include :eql?
|
41
|
+
end
|
42
|
+
|
43
|
+
describe 'two identically named films' do
|
44
|
+
let(:film) { OdeonUk::Film.new 'AAAA' }
|
45
|
+
let(:otherfilm) { OdeonUk::Film.new 'AAAA' }
|
46
|
+
|
47
|
+
it 'retuns only one' do
|
48
|
+
result = [film, otherfilm].uniq
|
49
|
+
result.count.must_equal 1
|
50
|
+
result.must_equal [ OdeonUk::Film.new('AAAA') ]
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe '<=> (other)' do
|
56
|
+
subject { film <=> otherfilm }
|
57
|
+
|
58
|
+
describe 'film less than other' do
|
59
|
+
let(:film) { OdeonUk::Film.new 'AAAA' }
|
60
|
+
let(:otherfilm) { OdeonUk::Film.new 'BBBB' }
|
61
|
+
|
62
|
+
it 'retuns -1' do
|
63
|
+
subject.must_equal -1
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe 'film greater than other' do
|
68
|
+
let(:film) { OdeonUk::Film.new 'CCCC' }
|
69
|
+
let(:otherfilm) { OdeonUk::Film.new 'BBBB' }
|
70
|
+
|
71
|
+
it 'retuns 1' do
|
72
|
+
subject.must_equal 1
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe 'film same as other (exact name)' do
|
77
|
+
let(:film) { OdeonUk::Film.new 'AAAA' }
|
78
|
+
let(:otherfilm) { OdeonUk::Film.new 'AAAA' }
|
79
|
+
|
80
|
+
it 'retuns 0' do
|
81
|
+
subject.must_equal 0
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe 'film same as other (inexact name)' do
|
86
|
+
let(:film) { OdeonUk::Film.new 'blue jasmine' }
|
87
|
+
let(:otherfilm) { OdeonUk::Film.new 'Blue Jasmine' }
|
88
|
+
|
89
|
+
it 'retuns 0' do
|
90
|
+
subject.must_equal 0
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
13
95
|
end
|
@@ -114,8 +114,10 @@ describe OdeonUk::Internal::FilmWithScreeningsParser do
|
|
114
114
|
key.must_equal '2D'
|
115
115
|
value.must_be_instance_of Array
|
116
116
|
value.each do |element|
|
117
|
-
element.must_be_instance_of Time
|
118
|
-
element.zone.must_equal 'UTC'
|
117
|
+
element[0].must_be_instance_of Time
|
118
|
+
element[0].zone.must_equal 'UTC'
|
119
|
+
element[1].must_be_instance_of String
|
120
|
+
element[1].must_match 'http://www.odeon.co.uk/'
|
119
121
|
end
|
120
122
|
end
|
121
123
|
end
|
@@ -127,7 +129,7 @@ describe OdeonUk::Internal::FilmWithScreeningsParser do
|
|
127
129
|
it 'returns UTC times for showings' do
|
128
130
|
# about times are from British Summer Time UTC+1
|
129
131
|
# the actual show time is 20:30 from the fixture
|
130
|
-
subject['2D'].last.must_equal Time.utc(2013, 9, 19, 19, 30, 0)
|
132
|
+
subject['2D'].last[0].must_equal Time.utc(2013, 9, 19, 19, 30, 0)
|
131
133
|
end
|
132
134
|
end
|
133
135
|
|
@@ -140,8 +142,10 @@ describe OdeonUk::Internal::FilmWithScreeningsParser do
|
|
140
142
|
subject.values.each do |value|
|
141
143
|
value.must_be_instance_of Array
|
142
144
|
value.each do |element|
|
143
|
-
element.must_be_instance_of Time
|
144
|
-
element.zone.must_equal 'UTC'
|
145
|
+
element[0].must_be_instance_of Time
|
146
|
+
element[0].zone.must_equal 'UTC'
|
147
|
+
element[1].must_be_instance_of String
|
148
|
+
element[1].must_match 'http://www.odeon.co.uk/'
|
145
149
|
end
|
146
150
|
end
|
147
151
|
end
|
@@ -155,7 +159,7 @@ describe OdeonUk::Internal::FilmWithScreeningsParser do
|
|
155
159
|
it 'returns UTC times for showings' do
|
156
160
|
# about times are from GMT
|
157
161
|
# the actual show time is 00:01 from the fixture
|
158
|
-
subject['2D'].last.must_equal Time.utc(2013, 10, 30, 0, 1, 0)
|
162
|
+
subject['2D'].last[0].must_equal Time.utc(2013, 10, 30, 0, 1, 0)
|
159
163
|
end
|
160
164
|
end
|
161
165
|
end
|
@@ -6,24 +6,36 @@ describe OdeonUk::Screening do
|
|
6
6
|
|
7
7
|
describe '#new film_name, cinema_name, date, time, varient' do
|
8
8
|
it 'stores film_name, cinema_name & when (in UTC)' do
|
9
|
-
screening = OdeonUk::Screening.new 'Iron Man 3', 'Brighton', '2013-09-12
|
9
|
+
screening = OdeonUk::Screening.new 'Iron Man 3', 'Brighton', Time.parse('2013-09-12 12:00') # non-UTC time
|
10
10
|
screening.film_name.must_equal 'Iron Man 3'
|
11
11
|
screening.cinema_name.must_equal 'Brighton'
|
12
12
|
screening.when.must_equal Time.utc(2013, 9, 12, 11, 0)
|
13
|
+
screening.booking_url.must_equal nil
|
13
14
|
screening.varient.must_equal nil
|
14
15
|
end
|
15
16
|
|
16
17
|
it 'stores varient if passed' do
|
17
|
-
screening = OdeonUk::Screening.new 'Iron Man 3', 'Brighton',
|
18
|
+
screening = OdeonUk::Screening.new 'Iron Man 3', 'Brighton', Time.utc(2013, 9, 12, 11, 0), nil, '3d'
|
18
19
|
screening.film_name.must_equal 'Iron Man 3'
|
19
20
|
screening.cinema_name.must_equal 'Brighton'
|
20
21
|
screening.when.must_equal Time.utc(2013, 9, 12, 11, 0)
|
22
|
+
screening.booking_url.must_equal nil
|
21
23
|
screening.varient.must_equal '3d'
|
22
24
|
end
|
25
|
+
|
26
|
+
it 'stores booking_url if passed' do
|
27
|
+
screening = OdeonUk::Screening.new 'Iron Man 3', 'Brighton', Time.utc(2013, 9, 12, 11, 0), 'http://booking_url'
|
28
|
+
screening.film_name.must_equal 'Iron Man 3'
|
29
|
+
screening.cinema_name.must_equal 'Brighton'
|
30
|
+
screening.when.must_equal Time.utc(2013, 9, 12, 11, 0)
|
31
|
+
screening.when.must_equal Time.utc(2013, 9, 12, 11, 0)
|
32
|
+
screening.booking_url.must_equal 'http://booking_url'
|
33
|
+
screening.varient.must_equal nil
|
34
|
+
end
|
23
35
|
end
|
24
36
|
|
25
37
|
describe '#date' do
|
26
|
-
subject { OdeonUk::Screening.new('Iron Man 3', 'Brighton',
|
38
|
+
subject { OdeonUk::Screening.new('Iron Man 3', 'Brighton', Time.utc(2013, 9, 12, 11, 0), '3d').date }
|
27
39
|
it 'should return date of showing' do
|
28
40
|
subject.must_be_instance_of(Date)
|
29
41
|
subject.must_equal Date.new(2013, 9, 12)
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: odeon_uk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Andy Croll
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-11-05 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: webmock
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: httparty
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: nokogiri
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: tzinfo
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ! '>='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: tzinfo-data
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ! '>='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,19 +90,20 @@ dependencies:
|
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ! '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
description: An API to pull movie information from the ODEON.co.uk website
|
111
98
|
email:
|
112
|
-
-
|
99
|
+
- andy@goodscary.com
|
113
100
|
executables: []
|
114
101
|
extensions: []
|
115
102
|
extra_rdoc_files: []
|
116
103
|
files:
|
117
104
|
- .gitignore
|
105
|
+
- .rdoc_options
|
106
|
+
- .travis.yml
|
118
107
|
- Gemfile
|
119
108
|
- LICENSE.txt
|
120
109
|
- README.md
|
@@ -139,8 +128,10 @@ files:
|
|
139
128
|
- test/fixtures/brighton-showtimes/star-trek-into-darkness-2d.html
|
140
129
|
- test/fixtures/brighton-showtimes/ukjff-from-cable-street-to-brick-lane.html
|
141
130
|
- test/fixtures/manchester-showtimes/thor-the-dark-world.html
|
131
|
+
- test/fixtures/odeon-bfi-imax.html
|
142
132
|
- test/fixtures/odeon-brighton-showtimes.html
|
143
133
|
- test/fixtures/odeon-brighton.html
|
134
|
+
- test/fixtures/odeon-london-leicester-square.html
|
144
135
|
- test/fixtures/odeon-sitemap.html
|
145
136
|
- test/lib/odeon_uk/cinema_test.rb
|
146
137
|
- test/lib/odeon_uk/film_test.rb
|
@@ -150,27 +141,26 @@ files:
|
|
150
141
|
- test/test_helper.rb
|
151
142
|
homepage: http://github.com/andycroll/odeon_uk
|
152
143
|
licenses: []
|
144
|
+
metadata: {}
|
153
145
|
post_install_message:
|
154
146
|
rdoc_options: []
|
155
147
|
require_paths:
|
156
148
|
- lib
|
157
149
|
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
-
none: false
|
159
150
|
requirements:
|
160
151
|
- - ! '>='
|
161
152
|
- !ruby/object:Gem::Version
|
162
153
|
version: '0'
|
163
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
|
-
none: false
|
165
155
|
requirements:
|
166
156
|
- - ! '>='
|
167
157
|
- !ruby/object:Gem::Version
|
168
158
|
version: '0'
|
169
159
|
requirements: []
|
170
160
|
rubyforge_project:
|
171
|
-
rubygems_version: 1.
|
161
|
+
rubygems_version: 2.1.10
|
172
162
|
signing_key:
|
173
|
-
specification_version:
|
163
|
+
specification_version: 4
|
174
164
|
summary: It's a scraper, but a nice one
|
175
165
|
test_files:
|
176
166
|
- test/fixtures/brighton-showtimes/about-time.html
|
@@ -186,8 +176,10 @@ test_files:
|
|
186
176
|
- test/fixtures/brighton-showtimes/star-trek-into-darkness-2d.html
|
187
177
|
- test/fixtures/brighton-showtimes/ukjff-from-cable-street-to-brick-lane.html
|
188
178
|
- test/fixtures/manchester-showtimes/thor-the-dark-world.html
|
179
|
+
- test/fixtures/odeon-bfi-imax.html
|
189
180
|
- test/fixtures/odeon-brighton-showtimes.html
|
190
181
|
- test/fixtures/odeon-brighton.html
|
182
|
+
- test/fixtures/odeon-london-leicester-square.html
|
191
183
|
- test/fixtures/odeon-sitemap.html
|
192
184
|
- test/lib/odeon_uk/cinema_test.rb
|
193
185
|
- test/lib/odeon_uk/film_test.rb
|
@@ -195,3 +187,4 @@ test_files:
|
|
195
187
|
- test/lib/odeon_uk/screening_test.rb
|
196
188
|
- test/lib/odeon_uk/version_test.rb
|
197
189
|
- test/test_helper.rb
|
190
|
+
has_rdoc:
|