Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

changes for new files coming from google in the latest zip #44

Merged
merged 6 commits into from
Feb 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions lib/gtfs.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
require 'gtfs/fare_rule'
require 'gtfs/frequency'
require 'gtfs/transfer'
require 'gtfs/translation'
require 'gtfs/pathway'
require 'gtfs/attribution'
require 'gtfs/level'

require 'gtfs/source'
require 'gtfs/url_source'
Expand Down
20 changes: 20 additions & 0 deletions lib/gtfs/attribution.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
module GTFS
class Attribution
include GTFS::Model

has_required_attrs :organization_name
has_optional_attrs :attribution_id, :agency_id, :route_id, :trip_id, :is_producer,
:is_operator, :is_authority, :attribution_url, :attribution_email, :attribution_phone

attr_accessor *attrs

collection_name :attributions

required_file false
uses_filename 'attributions.txt'

def self.parse_attributions(data, options={})
return parse_models(data, options)
end
end
end
2 changes: 1 addition & 1 deletion lib/gtfs/fare_attribute.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class FareAttribute
include GTFS::Model

has_required_attrs :fare_id, :price, :currency_type, :payment_method, :transfers
has_optional_attrs :transfer_duration
has_optional_attrs :transfer_duration, :agency_id
attr_accessor *attrs

collection_name :fare_attributes
Expand Down
2 changes: 1 addition & 1 deletion lib/gtfs/feed_info.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class FeedInfo
include GTFS::Model

has_required_attrs :publisher_name, :publisher_url, :lang
has_optional_attrs :start_date, :end_date, :version
has_optional_attrs :start_date, :end_date, :version, :contact_email, :contact_url, :default_lang
attr_accessor *attrs

column_prefix :feed_
Expand Down
17 changes: 17 additions & 0 deletions lib/gtfs/level.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module GTFS
class Level
include GTFS::Model

has_required_attrs :level_id, :level_index
has_optional_attrs :level_name
attr_accessor *attrs

collection_name :levels
required_file false
uses_filename 'levels.txt'

def self.parse_levels(data, options={})
return parse_models(data, options)
end
end
end
2 changes: 1 addition & 1 deletion lib/gtfs/model.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def required_attrs
end

def attrs
required_attrs + optional_attrs
required_attrs + optional_attrs
end

#####################################
Expand Down
19 changes: 19 additions & 0 deletions lib/gtfs/pathway.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
module GTFS
class Pathway
include GTFS::Model

has_required_attrs :pathway_id, :from_stop_id, :to_stop_id, :pathway_mode, :is_bidirectional
has_optional_attrs :length, :traversal_time, :stair_count, :max_slope, :min_width, :signposted_as,
:reversed_signposted_as

attr_accessor *attrs
collection_name :pathways

required_file false
uses_filename 'pathways.txt'

def self.parse_pathways(data, options={})
return parse_models(data, options)
end
end
end
2 changes: 1 addition & 1 deletion lib/gtfs/route.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class Route
include GTFS::Model

has_required_attrs :id, :short_name, :long_name, :type
has_optional_attrs :agency_id, :desc, :url, :color, :text_color
has_optional_attrs :agency_id, :desc, :url, :color, :text_color, :sort_order
attr_accessor *attrs

column_prefix :route_
Expand Down
6 changes: 3 additions & 3 deletions lib/gtfs/source.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
module GTFS
class Source

ENTITIES = [GTFS::Agency, GTFS::Stop, GTFS::Route, GTFS::Trip, GTFS::StopTime,
GTFS::Calendar, GTFS::CalendarDate, GTFS::Shape, GTFS::FareAttribute,
GTFS::FareRule, GTFS::Frequency, GTFS::Transfer, GTFS::FeedInfo]
ENTITIES = [GTFS::Agency, GTFS::Stop, GTFS::Route, GTFS::Trip, GTFS::StopTime, GTFS::Calendar, GTFS::CalendarDate,
GTFS::Shape, GTFS::FareAttribute, GTFS::FareRule, GTFS::Frequency, GTFS::Transfer, GTFS::FeedInfo,
GTFS::Attribution, GTFS::Pathway, GTFS::Translation, GTFS::Level]

REQUIRED_SOURCE_FILES = ENTITIES.select(&:required_file?).map(&:filename)
OPTIONAL_SOURCE_FILES = ENTITIES.reject(&:required_file?).map(&:filename)
Expand Down
3 changes: 2 additions & 1 deletion lib/gtfs/stop.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ class Stop
include GTFS::Model

has_required_attrs :id, :name, :lat, :lon
has_optional_attrs :code, :desc, :zone_id, :url, :location_type, :parent_station, :timezone, :wheelchair_boarding
has_optional_attrs :code, :desc, :zone_id, :url, :location_type, :parent_station, :timezone, :wheelchair_boarding,
:level_id, :platform_code
column_prefix :stop_
attr_accessor *attrs

Expand Down
18 changes: 18 additions & 0 deletions lib/gtfs/translation.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
module GTFS
class Translation
include GTFS::Model

has_required_attrs :table_name, :field_name, :language, :translation
has_optional_attrs :record_id, :record_sub_id, :field_value

attr_accessor *attrs
collection_name :translations

required_file false
uses_filename 'translations.txt'

def self.parse_translations(data, options={})
return parse_models(data, options)
end
end
end
14 changes: 14 additions & 0 deletions spec/gtfs/attribution_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

describe GTFS::Attribution do
describe 'Attribution.parse_attributions' do
let(:header_line) {"organization_name\n"}
let(:invalid_header_line) {"\n"}
let(:valid_line) {"Transit Feed Solutions Tokyo\n"}
let(:invalid_line) {"\n"}

subject {GTFS::Attribution.parse_attributions(source_text, opts)}

include_examples 'models'
end
end
14 changes: 14 additions & 0 deletions spec/gtfs/level_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

describe GTFS::Level do
describe 'Level.parse_levels' do
let(:header_line) {"level_id,level_index\n"}
let(:invalid_header_line) {",level_index\n"}
let(:valid_line) {"L0,0\n"}
let(:invalid_line) {",1\n"}

subject {GTFS::Level.parse_levels(source_text, opts)}

include_examples 'models'
end
end
14 changes: 14 additions & 0 deletions spec/gtfs/pathway_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

describe GTFS::Pathway do
describe 'Pathway.parse_pathways' do
let(:header_line) {"pathway_id,from_stop_id,to_stop_id,pathway_mode,is_bidirectional\n"}
let(:invalid_header_line) {",rom_stop_id,to_stop_id,pathway_mode,is_bidirectional\n"}
let(:valid_line) {"E1N1,E1,N1,2,1\n"}
let(:invalid_line) {"E1N1,E1,,,1\n"}

subject {GTFS::Pathway.parse_pathways(source_text, opts)}

include_examples 'models'
end
end
14 changes: 14 additions & 0 deletions spec/gtfs/translation_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

describe GTFS::Translation do
describe 'Translation.parse_translations' do
let(:header_line) {"table_name,field_name,language,translation\n"}
let(:invalid_header_line) {",stop_name,,translation\n"}
let(:valid_line) {"stops,stop_name,en,Tokyo Station\n"}
let(:invalid_line) {",,,en\n"}

subject {GTFS::Translation.parse_translations(source_text, opts)}

include_examples 'models'
end
end