gtfs 0.2.1 → 0.3.0
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/.travis.yml +13 -2
- data/Gemfile +11 -8
- data/Gemfile.lock +41 -29
- data/LICENSE +21 -0
- data/README.md +15 -17
- data/Rakefile +2 -0
- data/gtfs.gemspec +5 -2
- data/lib/gtfs.rb +1 -0
- data/lib/gtfs/agency.rb +3 -3
- data/lib/gtfs/calendar.rb +2 -2
- data/lib/gtfs/calendar_date.rb +2 -2
- data/lib/gtfs/fare_attribute.rb +3 -3
- data/lib/gtfs/fare_rule.rb +2 -2
- data/lib/gtfs/feed_info.rb +19 -0
- data/lib/gtfs/frequency.rb +2 -2
- data/lib/gtfs/model.rb +28 -9
- data/lib/gtfs/route.rb +2 -2
- data/lib/gtfs/shape.rb +2 -2
- data/lib/gtfs/source.rb +19 -11
- data/lib/gtfs/stop.rb +3 -3
- data/lib/gtfs/stop_time.rb +3 -3
- data/lib/gtfs/transfer.rb +2 -2
- data/lib/gtfs/trip.rb +3 -3
- data/lib/gtfs/url_source.rb +1 -1
- data/lib/gtfs/version.rb +1 -2
- data/spec/fixtures/cassettes/invalid_gtfs_uri.yml +58 -65
- data/spec/fixtures/cassettes/valid_gtfs_uri.yml +55 -122
- data/spec/gtfs/agency_spec.rb +2 -2
- data/spec/gtfs/calendar_date_spec.rb +1 -1
- data/spec/gtfs/calendar_spec.rb +1 -1
- data/spec/gtfs/fare_attribute_spec.rb +14 -0
- data/spec/gtfs/fare_rule_spec.rb +13 -0
- data/spec/gtfs/feed_info_spec.rb +14 -0
- data/spec/gtfs/frequency_spec.rb +14 -0
- data/spec/gtfs/route_spec.rb +1 -1
- data/spec/gtfs/shape_spec.rb +1 -1
- data/spec/gtfs/source_spec.rb +23 -11
- data/spec/gtfs/stop_spec.rb +1 -1
- data/spec/gtfs/stop_time_spec.rb +2 -2
- data/spec/gtfs/transfer_spec.rb +14 -0
- data/spec/gtfs/trip_spec.rb +2 -2
- data/spec/gtfs/url_source_spec.rb +4 -4
- data/spec/spec_helper.rb +7 -3
- data/spec/support/model_shared_examples.rb +46 -22
- metadata +46 -52
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe GTFS::FareRule do
|
4
|
+
describe '.parse_fare_rules' do
|
5
|
+
let(:header_line) {"fare_id,route_id,origin_id,destination_id,contains_id\n"}
|
6
|
+
let(:invalid_header_line) {",route_id,origin_id,destination_id,contains_id\n"}
|
7
|
+
let(:valid_line) {"1,2,TWS,,\n"}
|
8
|
+
let(:invalid_line) {",2,TWS,,\n"}
|
9
|
+
subject {GTFS::FareRule.parse_fare_rules(source_text, opts)}
|
10
|
+
|
11
|
+
include_examples 'models'
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe GTFS::FeedInfo do
|
4
|
+
describe 'FeedInfo.parse_feed_infos' do
|
5
|
+
let(:header_line) {"feed_publisher_name,feed_publisher_url,feed_lang,feed_start_date,feed_end_date,feed_version\n"}
|
6
|
+
let(:invalid_header_line) {"feed_publisher_name,feed_publisher_url,feed_start_date,feed_end_date,feed_version\n"}
|
7
|
+
let(:valid_line) {"Torrance Transit,http://Transit.TorranceCA.gov,en,20141102,20151003,1413\n"}
|
8
|
+
let(:invalid_line) {"Torrance Transit,http://Transit.TorranceCA.gov\n"}
|
9
|
+
|
10
|
+
subject {GTFS::FeedInfo.parse_feed_infos(source_text, opts)}
|
11
|
+
|
12
|
+
include_examples 'models'
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe GTFS::Frequency do
|
4
|
+
describe '#parse_frequncies' do
|
5
|
+
let(:header_line) {"trip_id,start_time,end_time,headway_secs\n"}
|
6
|
+
let(:invalid_header_line) {",,end_time,headway_secs\n"}
|
7
|
+
let(:valid_line) {"AWE1,05:30:00,06:30:00,300\n"}
|
8
|
+
let(:invalid_line) {",,06:30:00,300\n"}
|
9
|
+
|
10
|
+
subject {GTFS::Frequency.parse_frequencies(source_text, opts)}
|
11
|
+
|
12
|
+
include_examples 'models'
|
13
|
+
end
|
14
|
+
end
|
data/spec/gtfs/route_spec.rb
CHANGED
@@ -7,7 +7,7 @@ describe GTFS::Route do
|
|
7
7
|
let(:valid_line) {"4679,1,001,SINAI - FORT McHENRY,,3,,0000FF,FFFFFF\n"}
|
8
8
|
let(:invalid_line) {",1,,,,3,,,FFFFFF\n"}
|
9
9
|
|
10
|
-
subject {GTFS::Route.parse_routes(source_text)}
|
10
|
+
subject {GTFS::Route.parse_routes(source_text, opts)}
|
11
11
|
|
12
12
|
include_examples 'models'
|
13
13
|
end
|
data/spec/gtfs/shape_spec.rb
CHANGED
@@ -7,7 +7,7 @@ describe GTFS::Shape do
|
|
7
7
|
let(:valid_line) {"59135,39.354286,-76.662453,19,0.8136\n"}
|
8
8
|
let(:invalid_line) {",39.354286,,,0.8136\n"}
|
9
9
|
|
10
|
-
subject {GTFS::Shape.parse_shapes(source_text)}
|
10
|
+
subject {GTFS::Shape.parse_shapes(source_text, opts)}
|
11
11
|
|
12
12
|
include_examples 'models'
|
13
13
|
end
|
data/spec/gtfs/source_spec.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
2
|
|
3
3
|
describe GTFS::Source do
|
4
|
+
before(:each) do
|
5
|
+
VCR.insert_cassette 'valid_gtfs_uri'
|
6
|
+
end
|
7
|
+
after(:each) do
|
8
|
+
VCR.eject_cassette
|
9
|
+
end
|
10
|
+
|
4
11
|
let(:valid_local_source) do
|
5
12
|
File.expand_path(File.dirname(__FILE__) + '/../fixtures/valid_gtfs.zip')
|
6
13
|
end
|
@@ -10,29 +17,35 @@ describe GTFS::Source do
|
|
10
17
|
end
|
11
18
|
|
12
19
|
describe '#build' do
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
GTFS::URLSource.stub(:new).and_return('URLSource')
|
17
|
-
GTFS::LocalSource.stub(:new).and_return('LocalSource')
|
18
|
-
end
|
20
|
+
let(:opts) {{}}
|
21
|
+
let(:data_source) {valid_local_source}
|
22
|
+
subject {GTFS::Source.build(data_source, opts)}
|
19
23
|
|
20
24
|
context 'with a url as a data root' do
|
21
|
-
let(:data_source) {'
|
25
|
+
let(:data_source) {'https://developers.google.com/transit/gtfs/examples/sample-feed.zip'}
|
22
26
|
|
23
|
-
it {should
|
27
|
+
it {should be_instance_of GTFS::URLSource}
|
28
|
+
its(:options) {should == GTFS::Source::DEFAULT_OPTIONS}
|
24
29
|
end
|
25
30
|
|
26
31
|
context 'with a file path as a data root' do
|
27
32
|
let(:data_source) {valid_local_source}
|
28
33
|
|
29
|
-
it {should
|
34
|
+
it {should be_instance_of GTFS::LocalSource}
|
35
|
+
its(:options) {should == GTFS::Source::DEFAULT_OPTIONS}
|
30
36
|
end
|
31
37
|
|
32
38
|
context 'with a file object as a data root' do
|
33
39
|
let(:data_source) {File.open(valid_local_source)}
|
34
40
|
|
35
|
-
it {should
|
41
|
+
it {should be_instance_of GTFS::LocalSource}
|
42
|
+
its(:options) {should == GTFS::Source::DEFAULT_OPTIONS}
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'with options to disable strict checks' do
|
46
|
+
let(:opts) {{strict: false}}
|
47
|
+
|
48
|
+
its(:options) {should == {strict: false}}
|
36
49
|
end
|
37
50
|
end
|
38
51
|
|
@@ -51,7 +64,6 @@ describe GTFS::Source do
|
|
51
64
|
it {should_not be_empty}
|
52
65
|
its(:first) {should be_an_instance_of(GTFS::Agency)}
|
53
66
|
end
|
54
|
-
|
55
67
|
end
|
56
68
|
|
57
69
|
describe '#stops' do
|
data/spec/gtfs/stop_spec.rb
CHANGED
@@ -7,7 +7,7 @@ describe GTFS::Stop do
|
|
7
7
|
let(:valid_line) {"3,C093,LANIER & SINAI HOSPITAL,39.351145,-76.663113,,,,\n"}
|
8
8
|
let(:invalid_line) {"3,,,,-76.663113,,,,\n"}
|
9
9
|
|
10
|
-
subject {GTFS::Stop.parse_stops(source_text)}
|
10
|
+
subject {GTFS::Stop.parse_stops(source_text, opts)}
|
11
11
|
|
12
12
|
include_examples 'models'
|
13
13
|
end
|
data/spec/gtfs/stop_time_spec.rb
CHANGED
@@ -2,12 +2,12 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
2
|
|
3
3
|
describe GTFS::StopTime do
|
4
4
|
describe 'StopTime.parse_stop_times' do
|
5
|
-
let(:header_line) {"trip_id,arrival_time,departure_time,stop_id,stop_sequence,stop_headsign,pickup_type,drop_off_type,shape_dist_traveled\n"}
|
5
|
+
let(:header_line) {"trip_id,arrival_time,departure_time,stop_id,stop_sequence,stop_headsign,pickup_type,drop_off_type,shape_dist_traveled,timepoint\n"}
|
6
6
|
let(:invalid_header_line) {",arrival_time,,stop_id,,stop_headsign,,drop_off_type,\n"}
|
7
7
|
let(:valid_line) {"982385,4:34:00,4:34:00,277,1,,0,0,\n"}
|
8
8
|
let(:invalid_line) {",,4:34:00,,1,,,0,\n"}
|
9
9
|
|
10
|
-
subject {GTFS::StopTime.parse_stop_times(source_text)}
|
10
|
+
subject {GTFS::StopTime.parse_stop_times(source_text, opts)}
|
11
11
|
|
12
12
|
include_examples 'models'
|
13
13
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe GTFS::Transfer do
|
4
|
+
describe '#parse_transfers' do
|
5
|
+
let(:header_line) {"from_stop_id,to_stop_id,transfer_type,min_transfer_time\n"}
|
6
|
+
let(:invalid_header_line) {",toxxtop_id,transfer_type,min_transfer_time\n"}
|
7
|
+
let(:valid_line) {"S6,S7,2,300\n"}
|
8
|
+
let(:invalid_line) {",S7,2,300\n"}
|
9
|
+
|
10
|
+
subject {GTFS::Transfer.parse_transfers(source_text, opts)}
|
11
|
+
|
12
|
+
include_examples 'models'
|
13
|
+
end
|
14
|
+
end
|
data/spec/gtfs/trip_spec.rb
CHANGED
@@ -2,12 +2,12 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
2
|
|
3
3
|
describe GTFS::Trip do
|
4
4
|
describe 'Trip.parse_trips' do
|
5
|
-
let(:header_line) {"route_id,service_id,trip_id,trip_headsign,direction_id,block_id,shape_id\n"}
|
5
|
+
let(:header_line) {"route_id,service_id,trip_id,trip_headsign,direction_id,block_id,shape_id,bikes_allowed\n"}
|
6
6
|
let(:invalid_header_line) {",,,,direction_id,block_id,shape_id\n"}
|
7
7
|
let(:valid_line) {"4679,1,982394,1 FT McHENRY,0,189021,59135\n"}
|
8
8
|
let(:invalid_line) {",1,,1 FT McHENRY,,189021,\n"}
|
9
9
|
|
10
|
-
subject {GTFS::Trip.parse_trips(source_text)}
|
10
|
+
subject {GTFS::Trip.parse_trips(source_text, opts)}
|
11
11
|
|
12
12
|
include_examples 'models'
|
13
13
|
end
|
@@ -2,19 +2,19 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
2
|
|
3
3
|
describe GTFS::URLSource do
|
4
4
|
context 'with a URI to a valid source zip' do
|
5
|
-
let(:source_path) {'
|
5
|
+
let(:source_path) {'https://developers.google.com/transit/gtfs/examples/sample-feed.zip'}
|
6
6
|
it 'should create a new source successfully' do
|
7
7
|
VCR.use_cassette('valid_gtfs_uri') do
|
8
|
-
lambda {GTFS::URLSource.new(source_path)}.should_not raise_error(GTFS::InvalidSourceException)
|
8
|
+
lambda {GTFS::URLSource.new(source_path, {})}.should_not raise_error(GTFS::InvalidSourceException)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
13
|
context 'with a non-existent URI' do
|
14
|
-
let(:source_path) {'
|
14
|
+
let(:source_path) {'https://example.org/gtfs.zip'}
|
15
15
|
it 'should raise an exception' do
|
16
16
|
VCR.use_cassette('invalid_gtfs_uri') do
|
17
|
-
lambda {GTFS::URLSource.new(source_path)}.should raise_error(GTFS::InvalidSourceException)
|
17
|
+
lambda {GTFS::URLSource.new(source_path, {})}.should raise_error(GTFS::InvalidSourceException)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -6,16 +6,20 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
6
6
|
|
7
7
|
require 'bundler/setup'
|
8
8
|
require 'rspec'
|
9
|
+
require 'rspec/its'
|
9
10
|
require 'vcr'
|
10
11
|
require 'gtfs'
|
11
12
|
|
12
13
|
require File.expand_path(File.dirname(__FILE__) + '/support/model_shared_examples')
|
13
14
|
|
14
15
|
RSpec.configure do |config|
|
15
|
-
|
16
|
+
config.expect_with :rspec do |expectations|
|
17
|
+
expectations.syntax = [:should , :expect]
|
18
|
+
expectations.on_potential_false_positives = :nothing
|
19
|
+
end
|
16
20
|
end
|
17
21
|
|
18
|
-
VCR.
|
22
|
+
VCR.configure do |c|
|
19
23
|
c.cassette_library_dir = File.join(File.dirname(__FILE__), '/fixtures/cassettes')
|
20
|
-
c.
|
24
|
+
c.hook_into :webmock
|
21
25
|
end
|
@@ -1,31 +1,55 @@
|
|
1
1
|
shared_examples 'models' do |collection_class|
|
2
|
-
context 'with a nil source' do
|
3
|
-
let(:source_text) {nil}
|
4
|
-
it {should == []}
|
5
|
-
end
|
6
2
|
|
7
|
-
context 'with
|
8
|
-
let(:
|
9
|
-
it {should == []}
|
10
|
-
end
|
3
|
+
context 'with default options' do
|
4
|
+
let(:opts) {{}}
|
11
5
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
6
|
+
context 'with a nil source' do
|
7
|
+
let(:source_text) {nil}
|
8
|
+
it {should == []}
|
9
|
+
end
|
16
10
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
11
|
+
context 'with an empty source' do
|
12
|
+
let(:source_text) {''}
|
13
|
+
it {should == []}
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'with a source w/ only headers' do
|
17
|
+
let(:source_text) {header_line}
|
18
|
+
it {should == []}
|
19
|
+
end
|
21
20
|
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
context 'with a valid row of data' do
|
22
|
+
let(:source_text) {header_line + valid_line}
|
23
|
+
its(:size) {should == 1}
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'with multiple valid rows of data' do
|
27
|
+
let(:source_text) {header_line + valid_line + valid_line}
|
28
|
+
its(:size) {should == 2}
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'with 1 invalid and 1 valid row of data' do
|
32
|
+
let(:source_text) {header_line + valid_line + invalid_line}
|
33
|
+
its(:size) {should == 1}
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'with an invalid line' do
|
37
|
+
let(:source_text) {header_line + invalid_line}
|
38
|
+
its(:size) {should == 0}
|
39
|
+
end
|
25
40
|
end
|
26
41
|
|
27
|
-
context 'with
|
28
|
-
let(:
|
29
|
-
|
42
|
+
context 'with options set to turn off strict checking' do
|
43
|
+
let(:opts) {{strict: false}}
|
44
|
+
|
45
|
+
context 'with an invalid line' do
|
46
|
+
let(:source_text) {header_line + invalid_line}
|
47
|
+
its(:size) {should == 1}
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'with 1 invalid and 1 valid row of data' do
|
51
|
+
let(:source_text) {header_line + valid_line + invalid_line}
|
52
|
+
its(:size) {should == 2}
|
53
|
+
end
|
30
54
|
end
|
31
55
|
end
|
metadata
CHANGED
@@ -1,145 +1,128 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gtfs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- nerdEd
|
9
|
-
autorequire:
|
8
|
+
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2021-02-19 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
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
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
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: multi_json
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
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
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rubyzip
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
47
|
+
version: '1.1'
|
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
|
61
|
-
version: '
|
54
|
+
version: '1.1'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rspec
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: 2.0.0
|
70
62
|
type: :development
|
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
|
77
68
|
version: 2.0.0
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: simplecov
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
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
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: ruby-debug19
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ">="
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
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
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: vcr
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: fakeweb
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - ">="
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - ">="
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
|
-
description:
|
125
|
+
description: "gtfs reads GTFS data from a google-compliant Zip bundle \n and
|
143
126
|
returns an object representing the CSV data inside"
|
144
127
|
email:
|
145
128
|
- ed@nerded.net
|
@@ -147,10 +130,11 @@ executables: []
|
|
147
130
|
extensions: []
|
148
131
|
extra_rdoc_files: []
|
149
132
|
files:
|
150
|
-
- .gitignore
|
151
|
-
- .travis.yml
|
133
|
+
- ".gitignore"
|
134
|
+
- ".travis.yml"
|
152
135
|
- Gemfile
|
153
136
|
- Gemfile.lock
|
137
|
+
- LICENSE
|
154
138
|
- README.md
|
155
139
|
- Rakefile
|
156
140
|
- gtfs.gemspec
|
@@ -161,6 +145,7 @@ files:
|
|
161
145
|
- lib/gtfs/custom_exceptions.rb
|
162
146
|
- lib/gtfs/fare_attribute.rb
|
163
147
|
- lib/gtfs/fare_rule.rb
|
148
|
+
- lib/gtfs/feed_info.rb
|
164
149
|
- lib/gtfs/frequency.rb
|
165
150
|
- lib/gtfs/local_source.rb
|
166
151
|
- lib/gtfs/model.rb
|
@@ -180,39 +165,43 @@ files:
|
|
180
165
|
- spec/gtfs/agency_spec.rb
|
181
166
|
- spec/gtfs/calendar_date_spec.rb
|
182
167
|
- spec/gtfs/calendar_spec.rb
|
168
|
+
- spec/gtfs/fare_attribute_spec.rb
|
169
|
+
- spec/gtfs/fare_rule_spec.rb
|
170
|
+
- spec/gtfs/feed_info_spec.rb
|
171
|
+
- spec/gtfs/frequency_spec.rb
|
183
172
|
- spec/gtfs/local_source_spec.rb
|
184
173
|
- spec/gtfs/route_spec.rb
|
185
174
|
- spec/gtfs/shape_spec.rb
|
186
175
|
- spec/gtfs/source_spec.rb
|
187
176
|
- spec/gtfs/stop_spec.rb
|
188
177
|
- spec/gtfs/stop_time_spec.rb
|
178
|
+
- spec/gtfs/transfer_spec.rb
|
189
179
|
- spec/gtfs/trip_spec.rb
|
190
180
|
- spec/gtfs/url_source_spec.rb
|
191
181
|
- spec/spec_helper.rb
|
192
182
|
- spec/support/model_shared_examples.rb
|
193
183
|
homepage: https://github.com/nerdEd/gtfs
|
194
|
-
licenses:
|
195
|
-
|
184
|
+
licenses:
|
185
|
+
- MIT
|
186
|
+
metadata: {}
|
187
|
+
post_install_message:
|
196
188
|
rdoc_options: []
|
197
189
|
require_paths:
|
198
190
|
- lib
|
199
191
|
required_ruby_version: !ruby/object:Gem::Requirement
|
200
|
-
none: false
|
201
192
|
requirements:
|
202
|
-
- -
|
193
|
+
- - ">="
|
203
194
|
- !ruby/object:Gem::Version
|
204
|
-
version:
|
195
|
+
version: 1.9.2
|
205
196
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
|
-
none: false
|
207
197
|
requirements:
|
208
|
-
- -
|
198
|
+
- - ">="
|
209
199
|
- !ruby/object:Gem::Version
|
210
200
|
version: '0'
|
211
201
|
requirements: []
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
specification_version: 3
|
202
|
+
rubygems_version: 3.1.2
|
203
|
+
signing_key:
|
204
|
+
specification_version: 4
|
216
205
|
summary: Load and read GTFS data from zip bundles
|
217
206
|
test_files:
|
218
207
|
- spec/fixtures/cassettes/invalid_gtfs_uri.yml
|
@@ -222,12 +211,17 @@ test_files:
|
|
222
211
|
- spec/gtfs/agency_spec.rb
|
223
212
|
- spec/gtfs/calendar_date_spec.rb
|
224
213
|
- spec/gtfs/calendar_spec.rb
|
214
|
+
- spec/gtfs/fare_attribute_spec.rb
|
215
|
+
- spec/gtfs/fare_rule_spec.rb
|
216
|
+
- spec/gtfs/feed_info_spec.rb
|
217
|
+
- spec/gtfs/frequency_spec.rb
|
225
218
|
- spec/gtfs/local_source_spec.rb
|
226
219
|
- spec/gtfs/route_spec.rb
|
227
220
|
- spec/gtfs/shape_spec.rb
|
228
221
|
- spec/gtfs/source_spec.rb
|
229
222
|
- spec/gtfs/stop_spec.rb
|
230
223
|
- spec/gtfs/stop_time_spec.rb
|
224
|
+
- spec/gtfs/transfer_spec.rb
|
231
225
|
- spec/gtfs/trip_spec.rb
|
232
226
|
- spec/gtfs/url_source_spec.rb
|
233
227
|
- spec/spec_helper.rb
|