gtfs 0.3.0 → 0.4.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 +4 -4
- data/.github/workflows/ci.yml +28 -0
- data/Gemfile +1 -2
- data/Gemfile.lock +40 -25
- data/README.md +2 -2
- data/gtfs.gemspec +1 -1
- data/lib/gtfs/attribution.rb +20 -0
- data/lib/gtfs/fare_attribute.rb +1 -1
- data/lib/gtfs/feed_info.rb +1 -1
- data/lib/gtfs/level.rb +17 -0
- data/lib/gtfs/model.rb +3 -3
- data/lib/gtfs/pathway.rb +19 -0
- data/lib/gtfs/route.rb +1 -1
- data/lib/gtfs/source.rb +8 -8
- data/lib/gtfs/stop.rb +2 -1
- data/lib/gtfs/translation.rb +18 -0
- data/lib/gtfs/version.rb +1 -1
- data/lib/gtfs.rb +4 -0
- data/spec/gtfs/attribution_spec.rb +14 -0
- data/spec/gtfs/level_spec.rb +14 -0
- data/spec/gtfs/local_source_spec.rb +9 -5
- data/spec/gtfs/pathway_spec.rb +14 -0
- data/spec/gtfs/source_spec.rb +1 -1
- data/spec/gtfs/translation_spec.rb +14 -0
- data/spec/spec_helper.rb +1 -0
- metadata +17 -5
- data/.travis.yml +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc9d7e6c89a8e5a32b02fa4beeb688871c6f341bc1e019148f3fd4fdc0ba077b
|
4
|
+
data.tar.gz: 2850718a407d7fba536d7d0472e0b886713d4a5c387594d5ad94a52175d0d10a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8990b4d336656ef5b02c1cd2acdcf1e1886533f35534cbd9acd5b384b9aee2d386320a671d781a6576e18f746f4b9920f26e3cea88f7c27f3af9af2ebd65053
|
7
|
+
data.tar.gz: 3f2f724cd7d8cf336cd8aabef553d21d036e0c1769053324afca22872d504a2cc792b9144b8eafdd1c96092b6864a055ae89ff36a1143514c566cda6e9366dd0
|
@@ -0,0 +1,28 @@
|
|
1
|
+
name: Run CI Tasks
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
|
13
|
+
strategy:
|
14
|
+
matrix:
|
15
|
+
ruby-version: ['2.7', '3.0', '3.1']
|
16
|
+
|
17
|
+
steps:
|
18
|
+
- uses: actions/checkout@v2
|
19
|
+
|
20
|
+
- name: Set up Ruby
|
21
|
+
uses: ruby/setup-ruby@v1
|
22
|
+
with:
|
23
|
+
ruby-version: ${{ matrix.ruby-version }}
|
24
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
25
|
+
|
26
|
+
- name: Run Tests
|
27
|
+
run: |
|
28
|
+
bundle exec rake -t
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,39 +1,53 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
gtfs (0.3.0)
|
5
|
+
multi_json
|
6
|
+
rake
|
7
|
+
rubyzip (~> 1.1)
|
8
|
+
|
1
9
|
GEM
|
2
10
|
remote: https://rubygems.org/
|
3
11
|
specs:
|
4
|
-
addressable (2.
|
12
|
+
addressable (2.8.0)
|
5
13
|
public_suffix (>= 2.0.2, < 5.0)
|
6
|
-
|
7
|
-
|
8
|
-
|
14
|
+
byebug (11.1.3)
|
15
|
+
crack (0.4.5)
|
16
|
+
rexml
|
17
|
+
diff-lcs (1.5.0)
|
18
|
+
docile (1.4.0)
|
19
|
+
fakeweb (1.3.0)
|
9
20
|
hashdiff (1.0.1)
|
10
|
-
multi_json (1.0
|
11
|
-
public_suffix (4.0.
|
12
|
-
rake (13.0.
|
13
|
-
|
14
|
-
|
15
|
-
rspec-
|
16
|
-
rspec-
|
17
|
-
|
18
|
-
|
19
|
-
|
21
|
+
multi_json (1.15.0)
|
22
|
+
public_suffix (4.0.7)
|
23
|
+
rake (13.0.6)
|
24
|
+
rexml (3.2.5)
|
25
|
+
rspec (3.11.0)
|
26
|
+
rspec-core (~> 3.11.0)
|
27
|
+
rspec-expectations (~> 3.11.0)
|
28
|
+
rspec-mocks (~> 3.11.0)
|
29
|
+
rspec-core (3.11.0)
|
30
|
+
rspec-support (~> 3.11.0)
|
31
|
+
rspec-expectations (3.11.0)
|
20
32
|
diff-lcs (>= 1.2.0, < 2.0)
|
21
|
-
rspec-support (~> 3.
|
33
|
+
rspec-support (~> 3.11.0)
|
22
34
|
rspec-its (1.3.0)
|
23
35
|
rspec-core (>= 3.0.0)
|
24
36
|
rspec-expectations (>= 3.0.0)
|
25
|
-
rspec-mocks (3.
|
37
|
+
rspec-mocks (3.11.1)
|
26
38
|
diff-lcs (>= 1.2.0, < 2.0)
|
27
|
-
rspec-support (~> 3.
|
28
|
-
rspec-support (3.
|
39
|
+
rspec-support (~> 3.11.0)
|
40
|
+
rspec-support (3.11.0)
|
29
41
|
rubyzip (1.3.0)
|
30
|
-
simplecov (0.
|
42
|
+
simplecov (0.21.2)
|
31
43
|
docile (~> 1.1)
|
32
44
|
simplecov-html (~> 0.11)
|
45
|
+
simplecov_json_formatter (~> 0.1)
|
33
46
|
simplecov-html (0.12.3)
|
34
|
-
|
35
|
-
|
36
|
-
|
47
|
+
simplecov_json_formatter (0.1.4)
|
48
|
+
vcr (6.1.0)
|
49
|
+
webmock (3.14.0)
|
50
|
+
addressable (>= 2.8.0)
|
37
51
|
crack (>= 0.3.2)
|
38
52
|
hashdiff (>= 0.4.0, < 2.0.0)
|
39
53
|
|
@@ -41,14 +55,15 @@ PLATFORMS
|
|
41
55
|
ruby
|
42
56
|
|
43
57
|
DEPENDENCIES
|
44
|
-
|
58
|
+
byebug
|
59
|
+
fakeweb
|
60
|
+
gtfs!
|
45
61
|
rake
|
46
62
|
rspec
|
47
63
|
rspec-its
|
48
|
-
rubyzip (~> 1.1)
|
49
64
|
simplecov
|
50
65
|
vcr
|
51
66
|
webmock
|
52
67
|
|
53
68
|
BUNDLED WITH
|
54
|
-
2.
|
69
|
+
2.3.6
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
[](https://travis-ci.org/nerdEd/gtfs)
|
2
|
-
|
3
1
|
### GTFS Ruby
|
4
2
|
|
3
|
+
[](https://github.com/nerdEd/gtfs/actions/workflows/ci.yml)
|
4
|
+
|
5
5
|
A Ruby wrapper for the [General Transit Feed Specification](https://developers.google.com/transit/gtfs/)
|
6
6
|
|
7
7
|
### Getting started
|
data/gtfs.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |gem|
|
|
24
24
|
|
25
25
|
gem.add_development_dependency 'rspec', ['>= 2.0.0']
|
26
26
|
gem.add_development_dependency 'simplecov'
|
27
|
-
gem.add_development_dependency '
|
27
|
+
gem.add_development_dependency 'byebug'
|
28
28
|
gem.add_development_dependency 'vcr'
|
29
29
|
gem.add_development_dependency 'fakeweb'
|
30
30
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module GTFS
|
2
|
+
class Attribution
|
3
|
+
include GTFS::Model
|
4
|
+
|
5
|
+
has_required_attrs :organization_name
|
6
|
+
has_optional_attrs :attribution_id, :agency_id, :route_id, :trip_id, :is_producer,
|
7
|
+
:is_operator, :is_authority, :attribution_url, :attribution_email, :attribution_phone
|
8
|
+
|
9
|
+
attr_accessor *attrs
|
10
|
+
|
11
|
+
collection_name :attributions
|
12
|
+
|
13
|
+
required_file false
|
14
|
+
uses_filename 'attributions.txt'
|
15
|
+
|
16
|
+
def self.parse_attributions(data, options={})
|
17
|
+
return parse_models(data, options)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/gtfs/fare_attribute.rb
CHANGED
@@ -3,7 +3,7 @@ module GTFS
|
|
3
3
|
include GTFS::Model
|
4
4
|
|
5
5
|
has_required_attrs :fare_id, :price, :currency_type, :payment_method, :transfers
|
6
|
-
has_optional_attrs :transfer_duration
|
6
|
+
has_optional_attrs :transfer_duration, :agency_id
|
7
7
|
attr_accessor *attrs
|
8
8
|
|
9
9
|
collection_name :fare_attributes
|
data/lib/gtfs/feed_info.rb
CHANGED
@@ -3,7 +3,7 @@ module GTFS
|
|
3
3
|
include GTFS::Model
|
4
4
|
|
5
5
|
has_required_attrs :publisher_name, :publisher_url, :lang
|
6
|
-
has_optional_attrs :start_date, :end_date, :version
|
6
|
+
has_optional_attrs :start_date, :end_date, :version, :contact_email, :contact_url, :default_lang
|
7
7
|
attr_accessor *attrs
|
8
8
|
|
9
9
|
column_prefix :feed_
|
data/lib/gtfs/level.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
module GTFS
|
2
|
+
class Level
|
3
|
+
include GTFS::Model
|
4
|
+
|
5
|
+
has_required_attrs :level_id, :level_index
|
6
|
+
has_optional_attrs :level_name
|
7
|
+
attr_accessor *attrs
|
8
|
+
|
9
|
+
collection_name :levels
|
10
|
+
required_file false
|
11
|
+
uses_filename 'levels.txt'
|
12
|
+
|
13
|
+
def self.parse_levels(data, options={})
|
14
|
+
return parse_models(data, options)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/gtfs/model.rb
CHANGED
@@ -39,7 +39,7 @@ module GTFS
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def attrs
|
42
|
-
|
42
|
+
required_attrs + optional_attrs
|
43
43
|
end
|
44
44
|
|
45
45
|
#####################################
|
@@ -77,8 +77,8 @@ module GTFS
|
|
77
77
|
self.define_singleton_method(:filename) {filename}
|
78
78
|
end
|
79
79
|
|
80
|
-
def each(filename)
|
81
|
-
CSV.foreach(filename, :headers => true) do |row|
|
80
|
+
def each(filename, options)
|
81
|
+
CSV.foreach(filename, :headers => true, :encoding => options[:encoding]) do |row|
|
82
82
|
yield parse_model(row.to_hash)
|
83
83
|
end
|
84
84
|
end
|
data/lib/gtfs/pathway.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
module GTFS
|
2
|
+
class Pathway
|
3
|
+
include GTFS::Model
|
4
|
+
|
5
|
+
has_required_attrs :pathway_id, :from_stop_id, :to_stop_id, :pathway_mode, :is_bidirectional
|
6
|
+
has_optional_attrs :length, :traversal_time, :stair_count, :max_slope, :min_width, :signposted_as,
|
7
|
+
:reversed_signposted_as
|
8
|
+
|
9
|
+
attr_accessor *attrs
|
10
|
+
collection_name :pathways
|
11
|
+
|
12
|
+
required_file false
|
13
|
+
uses_filename 'pathways.txt'
|
14
|
+
|
15
|
+
def self.parse_pathways(data, options={})
|
16
|
+
return parse_models(data, options)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/gtfs/route.rb
CHANGED
@@ -3,7 +3,7 @@ module GTFS
|
|
3
3
|
include GTFS::Model
|
4
4
|
|
5
5
|
has_required_attrs :id, :short_name, :long_name, :type
|
6
|
-
has_optional_attrs :agency_id, :desc, :url, :color, :text_color
|
6
|
+
has_optional_attrs :agency_id, :desc, :url, :color, :text_color, :sort_order
|
7
7
|
attr_accessor *attrs
|
8
8
|
|
9
9
|
column_prefix :route_
|
data/lib/gtfs/source.rb
CHANGED
@@ -5,15 +5,15 @@ require 'zip'
|
|
5
5
|
module GTFS
|
6
6
|
class Source
|
7
7
|
|
8
|
-
ENTITIES = [GTFS::Agency, GTFS::Stop, GTFS::Route, GTFS::Trip, GTFS::StopTime,
|
9
|
-
GTFS::
|
10
|
-
GTFS::
|
8
|
+
ENTITIES = [GTFS::Agency, GTFS::Stop, GTFS::Route, GTFS::Trip, GTFS::StopTime, GTFS::Calendar, GTFS::CalendarDate,
|
9
|
+
GTFS::Shape, GTFS::FareAttribute, GTFS::FareRule, GTFS::Frequency, GTFS::Transfer, GTFS::FeedInfo,
|
10
|
+
GTFS::Attribution, GTFS::Pathway, GTFS::Translation, GTFS::Level]
|
11
11
|
|
12
12
|
REQUIRED_SOURCE_FILES = ENTITIES.select(&:required_file?).map(&:filename)
|
13
13
|
OPTIONAL_SOURCE_FILES = ENTITIES.reject(&:required_file?).map(&:filename)
|
14
14
|
SOURCE_FILES = ENTITIES.map(&:filename)
|
15
15
|
|
16
|
-
DEFAULT_OPTIONS = {strict: true}
|
16
|
+
DEFAULT_OPTIONS = {strict: true, encoding: "utf-8"}
|
17
17
|
|
18
18
|
attr_accessor :source, :archive, :options
|
19
19
|
|
@@ -64,13 +64,13 @@ module GTFS
|
|
64
64
|
|
65
65
|
ENTITIES.each do |entity|
|
66
66
|
define_method entity.name.to_sym do
|
67
|
-
parse_file entity.filename do |f|
|
67
|
+
parse_file entity.filename, options do |f|
|
68
68
|
entity.send("parse_#{entity.name}".to_sym, f.read, options)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
72
|
define_method "each_#{entity.singular_name}".to_sym do |&block|
|
73
|
-
entity.each(File.join(@tmp_dir, entity.filename)) { |model| block.call model }
|
73
|
+
entity.each(File.join(@tmp_dir, entity.filename), options) { |model| block.call model }
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
@@ -78,9 +78,9 @@ module GTFS
|
|
78
78
|
@files ||= {}
|
79
79
|
end
|
80
80
|
|
81
|
-
def parse_file(filename)
|
81
|
+
def parse_file(filename, options)
|
82
82
|
raise_if_missing_source filename
|
83
|
-
open File.join(@tmp_dir, '/', filename),
|
83
|
+
open File.join(@tmp_dir, '/', filename), "r:#{options[:encoding]}" do |f|
|
84
84
|
files[filename] ||= yield f
|
85
85
|
end
|
86
86
|
end
|
data/lib/gtfs/stop.rb
CHANGED
@@ -3,7 +3,8 @@ module GTFS
|
|
3
3
|
include GTFS::Model
|
4
4
|
|
5
5
|
has_required_attrs :id, :name, :lat, :lon
|
6
|
-
has_optional_attrs :code, :desc, :zone_id, :url, :location_type, :parent_station, :timezone, :wheelchair_boarding
|
6
|
+
has_optional_attrs :code, :desc, :zone_id, :url, :location_type, :parent_station, :timezone, :wheelchair_boarding,
|
7
|
+
:level_id, :platform_code
|
7
8
|
column_prefix :stop_
|
8
9
|
attr_accessor *attrs
|
9
10
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module GTFS
|
2
|
+
class Translation
|
3
|
+
include GTFS::Model
|
4
|
+
|
5
|
+
has_required_attrs :table_name, :field_name, :language, :translation
|
6
|
+
has_optional_attrs :record_id, :record_sub_id, :field_value
|
7
|
+
|
8
|
+
attr_accessor *attrs
|
9
|
+
collection_name :translations
|
10
|
+
|
11
|
+
required_file false
|
12
|
+
uses_filename 'translations.txt'
|
13
|
+
|
14
|
+
def self.parse_translations(data, options={})
|
15
|
+
return parse_models(data, options)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/gtfs/version.rb
CHANGED
data/lib/gtfs.rb
CHANGED
@@ -14,6 +14,10 @@ require 'gtfs/fare_attribute'
|
|
14
14
|
require 'gtfs/fare_rule'
|
15
15
|
require 'gtfs/frequency'
|
16
16
|
require 'gtfs/transfer'
|
17
|
+
require 'gtfs/translation'
|
18
|
+
require 'gtfs/pathway'
|
19
|
+
require 'gtfs/attribution'
|
20
|
+
require 'gtfs/level'
|
17
21
|
|
18
22
|
require 'gtfs/source'
|
19
23
|
require 'gtfs/url_source'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe GTFS::Attribution do
|
4
|
+
describe 'Attribution.parse_attributions' do
|
5
|
+
let(:header_line) {"organization_name\n"}
|
6
|
+
let(:invalid_header_line) {"\n"}
|
7
|
+
let(:valid_line) {"Transit Feed Solutions Tokyo\n"}
|
8
|
+
let(:invalid_line) {"\n"}
|
9
|
+
|
10
|
+
subject {GTFS::Attribution.parse_attributions(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::Level do
|
4
|
+
describe 'Level.parse_levels' do
|
5
|
+
let(:header_line) {"level_id,level_index\n"}
|
6
|
+
let(:invalid_header_line) {",level_index\n"}
|
7
|
+
let(:valid_line) {"L0,0\n"}
|
8
|
+
let(:invalid_line) {",1\n"}
|
9
|
+
|
10
|
+
subject {GTFS::Level.parse_levels(source_text, opts)}
|
11
|
+
|
12
|
+
include_examples 'models'
|
13
|
+
end
|
14
|
+
end
|
@@ -2,24 +2,28 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
2
|
|
3
3
|
describe GTFS::LocalSource do
|
4
4
|
describe '#new' do
|
5
|
-
subject {lambda{GTFS::LocalSource.new(source_path)}}
|
6
|
-
|
7
5
|
context 'with a local source path that is invalid' do
|
8
6
|
let(:source_path) {File.expand_path(File.dirname(__FILE__) + '/../fixtures/not_here.zip')}
|
9
7
|
|
10
|
-
it
|
8
|
+
it 'throws an exception' do
|
9
|
+
expect { GTFS::LocalSource.new(source_path) }.to raise_error(GTFS::InvalidSourceException)
|
10
|
+
end
|
11
11
|
end
|
12
12
|
|
13
13
|
context 'with a local source path to a zip w/o required files' do
|
14
14
|
let(:source_path) {File.expand_path(File.dirname(__FILE__) + '/../fixtures/missing_files_gtfs.zip')}
|
15
15
|
|
16
|
-
it
|
16
|
+
it 'throws an exception' do
|
17
|
+
expect { GTFS::LocalSource.new(source_path) }.to raise_error(GTFS::InvalidSourceException)
|
18
|
+
end
|
17
19
|
end
|
18
20
|
|
19
21
|
context 'with a local source path to a valid source zip' do
|
20
22
|
let(:source_path) {File.expand_path(File.dirname(__FILE__) + '/../fixtures/valid_gtfs.zip')}
|
21
23
|
|
22
|
-
it
|
24
|
+
it 'throws an exception' do
|
25
|
+
expect { GTFS::LocalSource.new(source_path) }.to_not raise_error(GTFS::InvalidSourceException)
|
26
|
+
end
|
23
27
|
end
|
24
28
|
end
|
25
29
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe GTFS::Pathway do
|
4
|
+
describe 'Pathway.parse_pathways' do
|
5
|
+
let(:header_line) {"pathway_id,from_stop_id,to_stop_id,pathway_mode,is_bidirectional\n"}
|
6
|
+
let(:invalid_header_line) {",rom_stop_id,to_stop_id,pathway_mode,is_bidirectional\n"}
|
7
|
+
let(:valid_line) {"E1N1,E1,N1,2,1\n"}
|
8
|
+
let(:invalid_line) {"E1N1,E1,,,1\n"}
|
9
|
+
|
10
|
+
subject {GTFS::Pathway.parse_pathways(source_text, opts)}
|
11
|
+
|
12
|
+
include_examples 'models'
|
13
|
+
end
|
14
|
+
end
|
data/spec/gtfs/source_spec.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe GTFS::Translation do
|
4
|
+
describe 'Translation.parse_translations' do
|
5
|
+
let(:header_line) {"table_name,field_name,language,translation\n"}
|
6
|
+
let(:invalid_header_line) {",stop_name,,translation\n"}
|
7
|
+
let(:valid_line) {"stops,stop_name,en,Tokyo Station\n"}
|
8
|
+
let(:invalid_line) {",,,en\n"}
|
9
|
+
|
10
|
+
subject {GTFS::Translation.parse_translations(source_text, opts)}
|
11
|
+
|
12
|
+
include_examples 'models'
|
13
|
+
end
|
14
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gtfs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nerdEd
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: byebug
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
@@ -130,8 +130,8 @@ executables: []
|
|
130
130
|
extensions: []
|
131
131
|
extra_rdoc_files: []
|
132
132
|
files:
|
133
|
+
- ".github/workflows/ci.yml"
|
133
134
|
- ".gitignore"
|
134
|
-
- ".travis.yml"
|
135
135
|
- Gemfile
|
136
136
|
- Gemfile.lock
|
137
137
|
- LICENSE
|
@@ -140,6 +140,7 @@ files:
|
|
140
140
|
- gtfs.gemspec
|
141
141
|
- lib/gtfs.rb
|
142
142
|
- lib/gtfs/agency.rb
|
143
|
+
- lib/gtfs/attribution.rb
|
143
144
|
- lib/gtfs/calendar.rb
|
144
145
|
- lib/gtfs/calendar_date.rb
|
145
146
|
- lib/gtfs/custom_exceptions.rb
|
@@ -147,14 +148,17 @@ files:
|
|
147
148
|
- lib/gtfs/fare_rule.rb
|
148
149
|
- lib/gtfs/feed_info.rb
|
149
150
|
- lib/gtfs/frequency.rb
|
151
|
+
- lib/gtfs/level.rb
|
150
152
|
- lib/gtfs/local_source.rb
|
151
153
|
- lib/gtfs/model.rb
|
154
|
+
- lib/gtfs/pathway.rb
|
152
155
|
- lib/gtfs/route.rb
|
153
156
|
- lib/gtfs/shape.rb
|
154
157
|
- lib/gtfs/source.rb
|
155
158
|
- lib/gtfs/stop.rb
|
156
159
|
- lib/gtfs/stop_time.rb
|
157
160
|
- lib/gtfs/transfer.rb
|
161
|
+
- lib/gtfs/translation.rb
|
158
162
|
- lib/gtfs/trip.rb
|
159
163
|
- lib/gtfs/url_source.rb
|
160
164
|
- lib/gtfs/version.rb
|
@@ -163,19 +167,23 @@ files:
|
|
163
167
|
- spec/fixtures/missing_files.zip
|
164
168
|
- spec/fixtures/valid_gtfs.zip
|
165
169
|
- spec/gtfs/agency_spec.rb
|
170
|
+
- spec/gtfs/attribution_spec.rb
|
166
171
|
- spec/gtfs/calendar_date_spec.rb
|
167
172
|
- spec/gtfs/calendar_spec.rb
|
168
173
|
- spec/gtfs/fare_attribute_spec.rb
|
169
174
|
- spec/gtfs/fare_rule_spec.rb
|
170
175
|
- spec/gtfs/feed_info_spec.rb
|
171
176
|
- spec/gtfs/frequency_spec.rb
|
177
|
+
- spec/gtfs/level_spec.rb
|
172
178
|
- spec/gtfs/local_source_spec.rb
|
179
|
+
- spec/gtfs/pathway_spec.rb
|
173
180
|
- spec/gtfs/route_spec.rb
|
174
181
|
- spec/gtfs/shape_spec.rb
|
175
182
|
- spec/gtfs/source_spec.rb
|
176
183
|
- spec/gtfs/stop_spec.rb
|
177
184
|
- spec/gtfs/stop_time_spec.rb
|
178
185
|
- spec/gtfs/transfer_spec.rb
|
186
|
+
- spec/gtfs/translation_spec.rb
|
179
187
|
- spec/gtfs/trip_spec.rb
|
180
188
|
- spec/gtfs/url_source_spec.rb
|
181
189
|
- spec/spec_helper.rb
|
@@ -199,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
207
|
- !ruby/object:Gem::Version
|
200
208
|
version: '0'
|
201
209
|
requirements: []
|
202
|
-
rubygems_version: 3.
|
210
|
+
rubygems_version: 3.2.32
|
203
211
|
signing_key:
|
204
212
|
specification_version: 4
|
205
213
|
summary: Load and read GTFS data from zip bundles
|
@@ -209,19 +217,23 @@ test_files:
|
|
209
217
|
- spec/fixtures/missing_files.zip
|
210
218
|
- spec/fixtures/valid_gtfs.zip
|
211
219
|
- spec/gtfs/agency_spec.rb
|
220
|
+
- spec/gtfs/attribution_spec.rb
|
212
221
|
- spec/gtfs/calendar_date_spec.rb
|
213
222
|
- spec/gtfs/calendar_spec.rb
|
214
223
|
- spec/gtfs/fare_attribute_spec.rb
|
215
224
|
- spec/gtfs/fare_rule_spec.rb
|
216
225
|
- spec/gtfs/feed_info_spec.rb
|
217
226
|
- spec/gtfs/frequency_spec.rb
|
227
|
+
- spec/gtfs/level_spec.rb
|
218
228
|
- spec/gtfs/local_source_spec.rb
|
229
|
+
- spec/gtfs/pathway_spec.rb
|
219
230
|
- spec/gtfs/route_spec.rb
|
220
231
|
- spec/gtfs/shape_spec.rb
|
221
232
|
- spec/gtfs/source_spec.rb
|
222
233
|
- spec/gtfs/stop_spec.rb
|
223
234
|
- spec/gtfs/stop_time_spec.rb
|
224
235
|
- spec/gtfs/transfer_spec.rb
|
236
|
+
- spec/gtfs/translation_spec.rb
|
225
237
|
- spec/gtfs/trip_spec.rb
|
226
238
|
- spec/gtfs/url_source_spec.rb
|
227
239
|
- spec/spec_helper.rb
|