amtrak 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ded5ede2e0ccd7bc11b93632610adf0c8fb16f34
4
- data.tar.gz: b6aaa52969153fad2b4ff9d72dd9c8e7f45bf9fb
3
+ metadata.gz: 7bfefa0ae21671dd8f1c99c07c6bd049f4af4846
4
+ data.tar.gz: b4472693448ac1dd807623727b35f72b948b5a35
5
5
  SHA512:
6
- metadata.gz: 01848e66414956a446a827e170fa0020cdd9f50c07ccb4e1c0122c2d9ad9915b32d935c68b9fd5d4959f6298a08bf4640fc07f30e33eb0d1102f78ffbe03664f
7
- data.tar.gz: 159f1a415e2b49d7f19cc25176ae5cc08e0f0dbf48fcc0d05ee663baca7f2ff38d556d53706a5bc19b9fbe3b39ee7baa6d1cf2055e303e8c2773094d150c555f
6
+ metadata.gz: 9880dcc9313a95f4a4d795ed5c07ba527f68b5e2d585e4892ccc1a8306800332fd8a2717a37ea6b15f6a812360beea89f56f86d2fcf86f509e47b04ee34461f5
7
+ data.tar.gz: 1371237f1f683d90589602c4b392827a555aad340ea6fa3262c1cb5f64951af7590d3392ec448adb0475e78f0fb2db8c51995b9f739640f504ca298d605cad16
@@ -13,8 +13,16 @@ module Amtrak
13
13
  @date = date
14
14
  end
15
15
 
16
- def page
17
- @page ||= Excon.post(
16
+ def request
17
+ retries ||= 3
18
+ _request
19
+ rescue SocketError, TimeoutError
20
+ retries -= 1
21
+ retry unless retries.zero?
22
+ end
23
+
24
+ def _request
25
+ @request ||= Excon.post(
18
26
  'http://tickets.amtrak.com/itd/amtrak',
19
27
  headers: headers,
20
28
  body: URI.encode_www_form(body),
@@ -53,7 +61,7 @@ module Amtrak
53
61
  end
54
62
 
55
63
  def session_id
56
- page.headers['Set-Cookie'].match(/JSESSIONID=([^;]*)/)[1]
64
+ request.headers['Set-Cookie'].match(/JSESSIONID=([^;]*)/)[1]
57
65
  end
58
66
 
59
67
  def total_pages
@@ -61,7 +69,7 @@ module Amtrak
61
69
  end
62
70
 
63
71
  def extract_listing_length
64
- page.body.match(/var availabilityLength = '(\d+)';/)[1]
72
+ request.body.match(/var availabilityLength = '(\d+)';/)[1]
65
73
  end
66
74
  end
67
75
  end
@@ -20,6 +20,14 @@ module Amtrak
20
20
  end
21
21
 
22
22
  def request
23
+ retries ||= 3
24
+ _request
25
+ rescue SocketError, TimeoutError
26
+ retries -= 1
27
+ retry unless retries.zero?
28
+ end
29
+
30
+ def _request
23
31
  @request ||= Excon.get(
24
32
  'https://tickets.amtrak.com/itd/amtrak/TrainStatusRequest',
25
33
  headers: headers,
@@ -1,6 +1,6 @@
1
1
  module Amtrak
2
2
  # This module holds the Amtrak version
3
3
  module Version
4
- VERSION = '1.0.1'
4
+ VERSION = '1.0.2'
5
5
  end
6
6
  end
@@ -57,18 +57,18 @@ describe Amtrak::TrainFetcher::MainPage do
57
57
  end
58
58
  end
59
59
 
60
- describe '#page' do
60
+ describe '#request' do
61
61
  context 'when Excon raises' do
62
62
  subject { described_class.new('', '') }
63
63
 
64
64
  it 'returns a TrainFetcher::Error' do
65
65
  expect(Excon).to receive(:post) { fail Excon::Errors::ClientError, '' }
66
- expect { subject.page }.to raise_error(Amtrak::TrainFetcher::Error)
66
+ expect { subject.request }.to raise_error(Amtrak::TrainFetcher::Error)
67
67
  end
68
68
 
69
69
  it 'returns a TrainFetcher::Error' do
70
70
  expect(Excon).to receive(:post) { fail Excon::Errors::ServerError, '' }
71
- expect { subject.page }.to raise_error(Amtrak::TrainFetcher::Error)
71
+ expect { subject.request }.to raise_error(Amtrak::TrainFetcher::Error)
72
72
  end
73
73
  end
74
74
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amtrak
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Todd Lunter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-30 00:00:00.000000000 Z
11
+ date: 2015-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon