gtfs_engine 1.5.3 → 2.0.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 +5 -5
- data/Rakefile +6 -5
- data/app/controllers/gtfs_engine/agencies_controller.rb +2 -14
- data/app/controllers/gtfs_engine/application_controller.rb +2 -14
- data/app/controllers/gtfs_engine/calendar_dates_controller.rb +2 -14
- data/app/controllers/gtfs_engine/calendars_controller.rb +7 -19
- data/app/controllers/gtfs_engine/data_sets_controller.rb +10 -24
- data/app/controllers/gtfs_engine/fare_attributes_controller.rb +2 -14
- data/app/controllers/gtfs_engine/fare_rules_controller.rb +2 -14
- data/app/controllers/gtfs_engine/feed_infos_controller.rb +2 -14
- data/app/controllers/gtfs_engine/frequencies_controller.rb +2 -14
- data/app/controllers/gtfs_engine/routes_controller.rb +2 -14
- data/app/controllers/gtfs_engine/shapes_controller.rb +2 -14
- data/app/controllers/gtfs_engine/stop_times_controller.rb +2 -14
- data/app/controllers/gtfs_engine/stops_controller.rb +2 -14
- data/app/controllers/gtfs_engine/transfers_controller.rb +9 -21
- data/app/controllers/gtfs_engine/trips_controller.rb +4 -16
- data/app/helpers/gtfs_engine/default_views_helper.rb +8 -21
- data/app/helpers/gtfs_engine/fields_helper.rb +3 -15
- data/app/models/gtfs_engine/agency.rb +3 -15
- data/app/models/gtfs_engine/calendar.rb +21 -38
- data/app/models/gtfs_engine/calendar_date.rb +5 -17
- data/app/models/gtfs_engine/data_set.rb +20 -32
- data/app/models/gtfs_engine/fare_attribute.rb +3 -15
- data/app/models/gtfs_engine/fare_rule.rb +9 -23
- data/app/models/gtfs_engine/feed_info.rb +3 -15
- data/app/models/gtfs_engine/frequency.rb +5 -17
- data/app/models/gtfs_engine/route.rb +4 -17
- data/app/models/gtfs_engine/shape.rb +5 -17
- data/app/models/gtfs_engine/stop.rb +5 -18
- data/app/models/gtfs_engine/stop_time.rb +5 -19
- data/app/models/gtfs_engine/transfer.rb +5 -17
- data/app/models/gtfs_engine/trip.rb +8 -25
- data/app/views/gtfs_engine/calendars/dates.json.jsend +3 -17
- data/app/views/gtfs_engine/data_sets/index.json.jsend +4 -18
- data/app/views/gtfs_engine/data_sets/show.json.jsend +2 -16
- data/app/views/gtfs_engine/gtfs/index.json.jsend +1 -15
- data/app/views/gtfs_engine/gtfs/show.json.jsend +1 -15
- data/app/views/gtfs_engine/transfers/from.json.jsend +1 -15
- data/app/views/gtfs_engine/transfers/from_to.json.jsend +1 -15
- data/app/views/gtfs_engine/transfers/to.json.jsend +1 -15
- data/app/views/gtfs_engine/trips/block.json.jsend +1 -15
- data/bin/rails +5 -3
- data/config/routes.rb +3 -16
- data/db/migrate/20140320045108_create_gtfs_engine_data_sets.rb +2 -0
- data/db/migrate/20140320045232_create_gtfs_engine_calendars.rb +2 -0
- data/db/migrate/20140320045751_create_gtfs_engine_calendar_dates.rb +2 -0
- data/db/migrate/20140320050100_create_gtfs_engine_shapes.rb +2 -0
- data/db/migrate/20140320051140_create_gtfs_engine_routes.rb +4 -2
- data/db/migrate/20140320052005_create_gtfs_engine_stops.rb +4 -2
- data/db/migrate/20140320052508_create_gtfs_engine_trips.rb +3 -1
- data/db/migrate/20140320052907_create_gtfs_engine_stop_times.rb +2 -0
- data/db/migrate/20140401032609_create_gtfs_engine_agencies.rb +2 -0
- data/db/migrate/20140405235947_create_gtfs_engine_fare_attributes.rb +2 -0
- data/db/migrate/20140406063500_create_gtfs_engine_fare_rules.rb +3 -1
- data/db/migrate/20140406071922_create_gtfs_engine_frequencies.rb +2 -0
- data/db/migrate/20140406072309_create_gtfs_engine_transfers.rb +2 -0
- data/db/migrate/20140406073548_create_gtfs_engine_feed_infos.rb +2 -0
- data/lib/gtfs_engine.rb +2 -14
- data/lib/gtfs_engine/concerns.rb +2 -14
- data/lib/gtfs_engine/concerns/controllers.rb +10 -18
- data/lib/gtfs_engine/concerns/controllers/data_access.rb +28 -40
- data/lib/gtfs_engine/concerns/controllers/gtfs.rb +17 -50
- data/lib/gtfs_engine/engine.rb +2 -15
- data/lib/gtfs_engine/exceptions.rb +4 -19
- data/lib/gtfs_engine/json_responder.rb +9 -23
- data/lib/gtfs_engine/middleware/base.rb +6 -19
- data/lib/gtfs_engine/middleware/json_parse_errors.rb +6 -20
- data/lib/gtfs_engine/sources.rb +33 -44
- data/lib/gtfs_engine/version.rb +30 -37
- data/lib/tasks/gtfs_engine_tasks.rake +15 -25
- metadata +36 -43
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
# The KNOWtime server is free software: you can redistribute it and/or modify it
|
|
4
|
-
# under the terms of the GNU General Public License as published by the Free
|
|
5
|
-
# Software Foundation, either version 3 of the License, or (at your option) any
|
|
6
|
-
# later version.
|
|
7
|
-
#
|
|
8
|
-
# The KNOWtime server is distributed in the hope that it will be useful, but
|
|
9
|
-
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
10
|
-
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
11
|
-
# details.
|
|
12
|
-
#
|
|
13
|
-
# You should have received a copy of the GNU General Public License
|
|
14
|
-
# along with the KNOWtime server. If not, see <http://www.gnu.org/licenses/>.
|
|
1
|
+
# frozen_string_literal: true
|
|
15
2
|
|
|
16
3
|
# The following line is required for jsend_wrapper/rails to be available when
|
|
17
4
|
# mounted in another rails application.
|
|
@@ -20,23 +7,23 @@ module GtfsEngine
|
|
|
20
7
|
class Base
|
|
21
8
|
attr_reader :app
|
|
22
9
|
|
|
23
|
-
HEADERS = { 'Content-Type' => 'application/json' }
|
|
10
|
+
HEADERS = { 'Content-Type' => 'application/json' }.freeze
|
|
24
11
|
|
|
25
12
|
def initialize(app)
|
|
26
13
|
@app = app
|
|
27
14
|
end
|
|
28
15
|
|
|
29
|
-
|
|
16
|
+
protected
|
|
30
17
|
|
|
31
18
|
def accepts_json?(env)
|
|
32
|
-
request = ActionDispatch::Request.new
|
|
19
|
+
request = ActionDispatch::Request.new(env)
|
|
33
20
|
!!collector.negotiate_format(request)
|
|
34
21
|
end
|
|
35
22
|
|
|
36
|
-
|
|
23
|
+
private
|
|
37
24
|
|
|
38
25
|
def collector
|
|
39
|
-
@collector ||= ActionController::MimeResponds::Collector.new
|
|
26
|
+
@collector ||= ActionController::MimeResponds::Collector.new(['json'])
|
|
40
27
|
end
|
|
41
28
|
end
|
|
42
29
|
end
|
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
# The KNOWtime server is free software: you can redistribute it and/or modify it
|
|
4
|
-
# under the terms of the GNU General Public License as published by the Free
|
|
5
|
-
# Software Foundation, either version 3 of the License, or (at your option) any
|
|
6
|
-
# later version.
|
|
7
|
-
#
|
|
8
|
-
# The KNOWtime server is distributed in the hope that it will be useful, but
|
|
9
|
-
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
10
|
-
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
11
|
-
# details.
|
|
12
|
-
#
|
|
13
|
-
# You should have received a copy of the GNU General Public License
|
|
14
|
-
# along with the KNOWtime server. If not, see <http://www.gnu.org/licenses/>.
|
|
1
|
+
# frozen_string_literal: true
|
|
15
2
|
|
|
16
3
|
# The following line is required for jsend_wrapper/rails to be available when
|
|
17
4
|
# mounted in another rails application.
|
|
@@ -31,15 +18,14 @@ module GtfsEngine
|
|
|
31
18
|
MESSAGE = 'The body of your request is not valid JSON'
|
|
32
19
|
|
|
33
20
|
def call(env)
|
|
34
|
-
app.call
|
|
21
|
+
app.call(env)
|
|
22
|
+
rescue ActionDispatch::ParamsParser::ParseError => e
|
|
23
|
+
raise e unless accepts_json?(env)
|
|
35
24
|
|
|
36
|
-
|
|
37
|
-
raise error unless accepts_json? env
|
|
38
|
-
|
|
39
|
-
[ 400, HEADERS, [create_json(error)] ]
|
|
25
|
+
[400, HEADERS, [create_json(e)]]
|
|
40
26
|
end
|
|
41
27
|
|
|
42
|
-
|
|
28
|
+
private
|
|
43
29
|
|
|
44
30
|
def create_json(cause)
|
|
45
31
|
JsendWrapper::ErrorRenderer.new(
|
data/lib/gtfs_engine/sources.rb
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
# The KNOWtime server is free software: you can redistribute it and/or modify it
|
|
4
|
-
# under the terms of the GNU General Public License as published by the Free
|
|
5
|
-
# Software Foundation, either version 3 of the License, or (at your option) any
|
|
6
|
-
# later version.
|
|
7
|
-
#
|
|
8
|
-
# The KNOWtime server is distributed in the hope that it will be useful, but
|
|
9
|
-
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
10
|
-
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
11
|
-
# details.
|
|
12
|
-
#
|
|
13
|
-
# You should have received a copy of the GNU General Public License
|
|
14
|
-
# along with the KNOWtime server. If not, see <http://www.gnu.org/licenses/>.
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
15
3
|
require 'set'
|
|
16
4
|
require 'activerecord-import'
|
|
17
5
|
|
|
@@ -23,52 +11,53 @@ module GtfsEngine
|
|
|
23
11
|
end
|
|
24
12
|
|
|
25
13
|
def method_missing(name, &block)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
14
|
+
@config.sources.__send__(name).tap do |source|
|
|
15
|
+
add_default_importers(source)
|
|
16
|
+
source.instance_exec(source, &block) if ::Kernel.block_given?
|
|
17
|
+
end
|
|
30
18
|
end
|
|
31
19
|
|
|
32
20
|
private
|
|
33
21
|
|
|
34
22
|
def add_default_importers(source)
|
|
35
23
|
id = source.__id__
|
|
36
|
-
return if @source_ids.include?
|
|
37
|
-
|
|
24
|
+
return if @source_ids.include?(id)
|
|
25
|
+
|
|
26
|
+
@source_ids.add(id)
|
|
38
27
|
|
|
39
28
|
get_method = ::Kernel.instance_method(:method).bind self
|
|
40
|
-
bulk_importer = get_method.call
|
|
41
|
-
set_id = ::OpenStruct.new
|
|
29
|
+
bulk_importer = get_method.call(:bulk_importer)
|
|
30
|
+
set_id = ::OpenStruct.new(id: -1)
|
|
42
31
|
|
|
43
32
|
source.before do |etag|
|
|
44
33
|
if DataSet.where(name: source.name, etag: etag).empty?
|
|
45
|
-
set = DataSet.create
|
|
34
|
+
set = DataSet.create(name: source.name,
|
|
46
35
|
title: source.title,
|
|
47
36
|
etag: etag,
|
|
48
|
-
url: source.url
|
|
37
|
+
url: source.url)
|
|
49
38
|
set.reload
|
|
50
39
|
set_id.id = set.id
|
|
51
40
|
else
|
|
52
|
-
::Kernel.raise
|
|
53
|
-
"Data Pull already exists for #{etag}"
|
|
41
|
+
::Kernel.raise(::GtfsReader::SkipSourceError,
|
|
42
|
+
"Data Pull already exists for #{etag}")
|
|
54
43
|
end
|
|
55
44
|
end
|
|
56
45
|
|
|
57
|
-
source.handlers
|
|
58
|
-
agency
|
|
59
|
-
calendar
|
|
60
|
-
calendar_dates
|
|
61
|
-
fare_attributes
|
|
62
|
-
fare_rules
|
|
63
|
-
feed_info
|
|
64
|
-
frequencies
|
|
65
|
-
stop_times
|
|
66
|
-
routes
|
|
67
|
-
shapes
|
|
68
|
-
stops
|
|
69
|
-
stop_times
|
|
70
|
-
transfers
|
|
71
|
-
trips
|
|
46
|
+
source.handlers(bulk_importer, set_id, bulk: 1024) do |importer, set_id|
|
|
47
|
+
agency(&importer.call(Agency, set_id))
|
|
48
|
+
calendar(&importer.call(Calendar, set_id))
|
|
49
|
+
calendar_dates(&importer.call(CalendarDate, set_id))
|
|
50
|
+
fare_attributes(&importer.call(FareAttribute, set_id))
|
|
51
|
+
fare_rules(&importer.call(FareRule, set_id))
|
|
52
|
+
feed_info(&importer.call(FeedInfo, set_id))
|
|
53
|
+
frequencies(&importer.call(Frequency, set_id))
|
|
54
|
+
stop_times(&importer.call(StopTime, set_id))
|
|
55
|
+
routes(&importer.call(Route, set_id))
|
|
56
|
+
shapes(&importer.call(Shape, set_id))
|
|
57
|
+
stops(&importer.call(Stop, set_id))
|
|
58
|
+
stop_times(&importer.call(StopTime, set_id))
|
|
59
|
+
transfers(&importer.call(Transfer, set_id))
|
|
60
|
+
trips(&importer.call(Trip, set_id))
|
|
72
61
|
end
|
|
73
62
|
end
|
|
74
63
|
|
|
@@ -76,9 +65,9 @@ module GtfsEngine
|
|
|
76
65
|
::Proc.new do
|
|
77
66
|
bulk do |values, count, total, columns|
|
|
78
67
|
id = data_set_id_holder.id
|
|
79
|
-
values.each {|v| v << id }
|
|
80
|
-
model_class.import
|
|
81
|
-
::Rails.logger.info
|
|
68
|
+
values.each { |v| v << id }
|
|
69
|
+
model_class.import((columns + [:data_set_id]), values)
|
|
70
|
+
::Rails.logger.info("Inserted #{count} #{model_class} records (total: #{total})")
|
|
82
71
|
end
|
|
83
72
|
end
|
|
84
73
|
end
|
data/lib/gtfs_engine/version.rb
CHANGED
|
@@ -1,37 +1,27 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
# The KNOWtime server is free software: you can redistribute it and/or modify it
|
|
4
|
-
# under the terms of the GNU General Public License as published by the Free
|
|
5
|
-
# Software Foundation, either version 3 of the License, or (at your option) any
|
|
6
|
-
# later version.
|
|
7
|
-
#
|
|
8
|
-
# The KNOWtime server is distributed in the hope that it will be useful, but
|
|
9
|
-
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
10
|
-
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
11
|
-
# details.
|
|
12
|
-
#
|
|
13
|
-
# You should have received a copy of the GNU General Public License
|
|
14
|
-
# along with the KNOWtime server. If not, see <http://www.gnu.org/licenses/>.
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
15
3
|
module GtfsEngine
|
|
16
4
|
module Version
|
|
17
5
|
# The following four lines are generated, so don't mess with them.
|
|
18
|
-
MAJOR =
|
|
19
|
-
MINOR =
|
|
20
|
-
PATCH =
|
|
6
|
+
MAJOR = 2
|
|
7
|
+
MINOR = 0
|
|
8
|
+
PATCH = 0
|
|
21
9
|
BUILD = nil
|
|
22
10
|
|
|
23
11
|
def self.to_s
|
|
24
|
-
[MAJOR, MINOR, PATCH, BUILD].compact.join
|
|
12
|
+
[MAJOR, MINOR, PATCH, BUILD].compact.join('.')
|
|
25
13
|
end
|
|
26
14
|
|
|
27
15
|
# A helper class which bumps the version number stored in this file
|
|
28
16
|
class Bumper
|
|
29
|
-
PARTS = %i[major minor patch]
|
|
30
|
-
PATTERN =
|
|
17
|
+
PARTS = %i[major minor patch].freeze
|
|
18
|
+
PATTERN = /(\s+)MAJOR = \d+\s+MINOR = \d+\s+PATCH = \d+\s+BUILD = .+/.freeze
|
|
19
|
+
|
|
20
|
+
def initialize(filename = __FILE__, part)
|
|
21
|
+
raise "#{part} not one of #{PARTS}" unless PARTS.include?(part)
|
|
31
22
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
@filename, @part = filename, part
|
|
23
|
+
@filename = filename
|
|
24
|
+
@part = part
|
|
35
25
|
end
|
|
36
26
|
|
|
37
27
|
# Increase the version number and write it to this file
|
|
@@ -40,18 +30,18 @@ module GtfsEngine
|
|
|
40
30
|
text = '\1' + ["MAJOR = #{parts[:major]}",
|
|
41
31
|
"MINOR = #{parts[:minor]}",
|
|
42
32
|
"PATCH = #{parts[:patch]}",
|
|
43
|
-
"BUILD = #{parts[:build] || 'nil'}"].join(
|
|
33
|
+
"BUILD = #{parts[:build] || 'nil'}"].join('\1')
|
|
44
34
|
|
|
45
|
-
out_data = File.read(
|
|
46
|
-
#puts out_data
|
|
47
|
-
File.open(
|
|
48
|
-
puts "Bumped version to #{
|
|
35
|
+
out_data = File.read(@filename).gsub(PATTERN, text)
|
|
36
|
+
# puts out_data
|
|
37
|
+
File.open(@filename, 'w') { |out| out << out_data }
|
|
38
|
+
puts "Bumped version to #{self}"
|
|
49
39
|
end
|
|
50
40
|
|
|
51
|
-
|
|
41
|
+
# @return [String] What the new version string will be.
|
|
52
42
|
def to_s
|
|
53
43
|
p = new_version
|
|
54
|
-
[p[:major], p[:minor], p[:patch], p[:build]].compact.join
|
|
44
|
+
[p[:major], p[:minor], p[:patch], p[:build]].compact.join('.')
|
|
55
45
|
end
|
|
56
46
|
|
|
57
47
|
private
|
|
@@ -60,23 +50,26 @@ module GtfsEngine
|
|
|
60
50
|
@vers ||= { major: MAJOR,
|
|
61
51
|
minor: MINOR,
|
|
62
52
|
patch: PATCH,
|
|
63
|
-
build: BUILD }.merge
|
|
53
|
+
build: BUILD }.merge(new_parts)
|
|
64
54
|
end
|
|
65
55
|
|
|
66
56
|
def new_parts
|
|
67
57
|
case @part
|
|
68
|
-
when :major
|
|
58
|
+
when :major
|
|
59
|
+
{
|
|
69
60
|
major: MAJOR + 1,
|
|
70
61
|
minor: 0,
|
|
71
62
|
patch: 0
|
|
72
|
-
|
|
73
|
-
when :minor
|
|
63
|
+
}
|
|
64
|
+
when :minor
|
|
65
|
+
{
|
|
74
66
|
minor: MINOR + 1,
|
|
75
67
|
patch: 0
|
|
76
|
-
|
|
77
|
-
else
|
|
68
|
+
}
|
|
69
|
+
else
|
|
70
|
+
{
|
|
78
71
|
patch: PATCH + 1
|
|
79
|
-
|
|
72
|
+
}
|
|
80
73
|
end
|
|
81
74
|
end
|
|
82
75
|
end
|
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
# The KNOWtime server is free software: you can redistribute it and/or modify it
|
|
4
|
-
# under the terms of the GNU General Public License as published by the Free
|
|
5
|
-
# Software Foundation, either version 3 of the License, or (at your option) any
|
|
6
|
-
# later version.
|
|
7
|
-
#
|
|
8
|
-
# The KNOWtime server is distributed in the hope that it will be useful, but
|
|
9
|
-
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
10
|
-
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
11
|
-
# details.
|
|
12
|
-
#
|
|
13
|
-
# You should have received a copy of the GNU General Public License
|
|
14
|
-
# along with the KNOWtime server. If not, see <http://www.gnu.org/licenses/>.
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
15
3
|
require 'colorize'
|
|
16
4
|
|
|
17
5
|
namespace :gtfs_engine do
|
|
@@ -23,7 +11,7 @@ namespace :gtfs_engine do
|
|
|
23
11
|
end
|
|
24
12
|
|
|
25
13
|
if args.name
|
|
26
|
-
GtfsReader.update
|
|
14
|
+
GtfsReader.update(args.name.to_sym)
|
|
27
15
|
else
|
|
28
16
|
GtfsReader.update_all!
|
|
29
17
|
end
|
|
@@ -35,14 +23,15 @@ namespace :gtfs_engine do
|
|
|
35
23
|
desc 'List the data sets for each source'
|
|
36
24
|
task list: :environment do
|
|
37
25
|
GtfsEngine::DataSet.distinct.pluck(:name).each do |name|
|
|
38
|
-
list_source_data_sets
|
|
26
|
+
list_source_data_sets(name)
|
|
39
27
|
end
|
|
40
28
|
end
|
|
41
29
|
|
|
42
30
|
desc 'Delete a data set and all the models from it'
|
|
43
|
-
task :delete, [
|
|
44
|
-
set = GtfsEngine::DataSet.find_by
|
|
45
|
-
name
|
|
31
|
+
task :delete, %i[name etag] => :environment do |_, args|
|
|
32
|
+
set = GtfsEngine::DataSet.find_by(name: args.name, etag: args.etag)
|
|
33
|
+
name = args.name.to_s.light_blue
|
|
34
|
+
etag = args.etag.yellow
|
|
46
35
|
|
|
47
36
|
if set
|
|
48
37
|
set.delete
|
|
@@ -54,12 +43,13 @@ namespace :gtfs_engine do
|
|
|
54
43
|
end
|
|
55
44
|
|
|
56
45
|
desc 'Count the number of models in a data set'
|
|
57
|
-
task :count, [
|
|
58
|
-
set = GtfsEngine::DataSet.find_by
|
|
59
|
-
name
|
|
46
|
+
task :count, %i[name etag] => :environment do |_, args|
|
|
47
|
+
set = GtfsEngine::DataSet.find_by(name: args.name, etag: args.etag)
|
|
48
|
+
name = args.name.to_s.light_blue
|
|
49
|
+
etag = args.etag.yellow
|
|
60
50
|
puts "Model count for #{name} data set with etag #{etag}"
|
|
61
51
|
|
|
62
|
-
width = model_lists.inject(0) {|max, n| [max, n.to_s.length].max }
|
|
52
|
+
width = model_lists.inject(0) { |max, n| [max, n.to_s.length].max }
|
|
63
53
|
model_lists.each do |list|
|
|
64
54
|
count = set.send(list).count
|
|
65
55
|
puts "\t#{list.to_s.rjust(width).yellow}: #{count}"
|
|
@@ -71,7 +61,7 @@ end
|
|
|
71
61
|
def list_source_data_sets(name)
|
|
72
62
|
puts name.underline.green
|
|
73
63
|
|
|
74
|
-
sets = GtfsEngine::DataSet.where(name: name).order
|
|
64
|
+
sets = GtfsEngine::DataSet.where(name: name).order(:created_at)
|
|
75
65
|
if sets.count == 0
|
|
76
66
|
puts "\tnone".light_black
|
|
77
67
|
else
|
|
@@ -84,6 +74,6 @@ end
|
|
|
84
74
|
def model_lists
|
|
85
75
|
@model_lists ||= begin
|
|
86
76
|
has_many = GtfsEngine::DataSet.reflect_on_all_associations(:has_many)
|
|
87
|
-
has_many.collect
|
|
77
|
+
has_many.collect(&:name)
|
|
88
78
|
end
|
|
89
79
|
end
|
metadata
CHANGED
|
@@ -1,175 +1,169 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gtfs_engine
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jon Sangster
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-05-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: activerecord-import
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '6.0'
|
|
20
|
-
- - ">="
|
|
17
|
+
- - "~>"
|
|
21
18
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '
|
|
19
|
+
version: '1.0'
|
|
23
20
|
type: :runtime
|
|
24
21
|
prerelease: false
|
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
23
|
requirements:
|
|
27
|
-
- - "
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
version: '6.0'
|
|
30
|
-
- - ">="
|
|
24
|
+
- - "~>"
|
|
31
25
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
26
|
+
version: '1.0'
|
|
33
27
|
- !ruby/object:Gem::Dependency
|
|
34
|
-
name:
|
|
28
|
+
name: gtfs_reader
|
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
|
36
30
|
requirements:
|
|
37
31
|
- - "~>"
|
|
38
32
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
33
|
+
version: '4.0'
|
|
40
34
|
type: :runtime
|
|
41
35
|
prerelease: false
|
|
42
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
43
37
|
requirements:
|
|
44
38
|
- - "~>"
|
|
45
39
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '
|
|
40
|
+
version: '4.0'
|
|
47
41
|
- !ruby/object:Gem::Dependency
|
|
48
|
-
name:
|
|
42
|
+
name: rails
|
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
|
50
44
|
requirements:
|
|
51
45
|
- - "~>"
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '
|
|
47
|
+
version: '6.0'
|
|
54
48
|
type: :runtime
|
|
55
49
|
prerelease: false
|
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
51
|
requirements:
|
|
58
52
|
- - "~>"
|
|
59
53
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '
|
|
54
|
+
version: '6.0'
|
|
61
55
|
- !ruby/object:Gem::Dependency
|
|
62
|
-
name:
|
|
56
|
+
name: responders
|
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
|
64
58
|
requirements:
|
|
65
59
|
- - "~>"
|
|
66
60
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '0
|
|
61
|
+
version: '3.0'
|
|
68
62
|
type: :runtime
|
|
69
63
|
prerelease: false
|
|
70
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
65
|
requirements:
|
|
72
66
|
- - "~>"
|
|
73
67
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: '0
|
|
68
|
+
version: '3.0'
|
|
75
69
|
- !ruby/object:Gem::Dependency
|
|
76
70
|
name: jbuilder
|
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
|
78
72
|
requirements:
|
|
79
73
|
- - "~>"
|
|
80
74
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: '2.
|
|
75
|
+
version: '2.10'
|
|
82
76
|
type: :runtime
|
|
83
77
|
prerelease: false
|
|
84
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
85
79
|
requirements:
|
|
86
80
|
- - "~>"
|
|
87
81
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '2.
|
|
82
|
+
version: '2.10'
|
|
89
83
|
- !ruby/object:Gem::Dependency
|
|
90
84
|
name: jsend_wrapper-rails
|
|
91
85
|
requirement: !ruby/object:Gem::Requirement
|
|
92
86
|
requirements:
|
|
93
87
|
- - "~>"
|
|
94
88
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '0.
|
|
89
|
+
version: '0.4'
|
|
96
90
|
type: :runtime
|
|
97
91
|
prerelease: false
|
|
98
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
99
93
|
requirements:
|
|
100
94
|
- - "~>"
|
|
101
95
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '0.
|
|
96
|
+
version: '0.4'
|
|
103
97
|
- !ruby/object:Gem::Dependency
|
|
104
|
-
name: pry-
|
|
98
|
+
name: pry-byebug
|
|
105
99
|
requirement: !ruby/object:Gem::Requirement
|
|
106
100
|
requirements:
|
|
107
101
|
- - "~>"
|
|
108
102
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: '
|
|
103
|
+
version: '3.9'
|
|
110
104
|
type: :development
|
|
111
105
|
prerelease: false
|
|
112
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
113
107
|
requirements:
|
|
114
108
|
- - "~>"
|
|
115
109
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: '
|
|
110
|
+
version: '3.9'
|
|
117
111
|
- !ruby/object:Gem::Dependency
|
|
118
|
-
name:
|
|
112
|
+
name: bundler
|
|
119
113
|
requirement: !ruby/object:Gem::Requirement
|
|
120
114
|
requirements:
|
|
121
115
|
- - "~>"
|
|
122
116
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: '
|
|
117
|
+
version: '2.1'
|
|
124
118
|
type: :development
|
|
125
119
|
prerelease: false
|
|
126
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
127
121
|
requirements:
|
|
128
122
|
- - "~>"
|
|
129
123
|
- !ruby/object:Gem::Version
|
|
130
|
-
version: '
|
|
124
|
+
version: '2.1'
|
|
131
125
|
- !ruby/object:Gem::Dependency
|
|
132
|
-
name:
|
|
126
|
+
name: guard-rspec
|
|
133
127
|
requirement: !ruby/object:Gem::Requirement
|
|
134
128
|
requirements:
|
|
135
129
|
- - "~>"
|
|
136
130
|
- !ruby/object:Gem::Version
|
|
137
|
-
version: '
|
|
131
|
+
version: '4.7'
|
|
138
132
|
type: :development
|
|
139
133
|
prerelease: false
|
|
140
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
141
135
|
requirements:
|
|
142
136
|
- - "~>"
|
|
143
137
|
- !ruby/object:Gem::Version
|
|
144
|
-
version: '
|
|
138
|
+
version: '4.7'
|
|
145
139
|
- !ruby/object:Gem::Dependency
|
|
146
|
-
name:
|
|
140
|
+
name: juwelier
|
|
147
141
|
requirement: !ruby/object:Gem::Requirement
|
|
148
142
|
requirements:
|
|
149
143
|
- - "~>"
|
|
150
144
|
- !ruby/object:Gem::Version
|
|
151
|
-
version: '2.
|
|
145
|
+
version: '2.4'
|
|
152
146
|
type: :development
|
|
153
147
|
prerelease: false
|
|
154
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
155
149
|
requirements:
|
|
156
150
|
- - "~>"
|
|
157
151
|
- !ruby/object:Gem::Version
|
|
158
|
-
version: '2.
|
|
152
|
+
version: '2.4'
|
|
159
153
|
- !ruby/object:Gem::Dependency
|
|
160
|
-
name:
|
|
154
|
+
name: yard
|
|
161
155
|
requirement: !ruby/object:Gem::Requirement
|
|
162
156
|
requirements:
|
|
163
157
|
- - "~>"
|
|
164
158
|
- !ruby/object:Gem::Version
|
|
165
|
-
version: '
|
|
159
|
+
version: '0.9'
|
|
166
160
|
type: :development
|
|
167
161
|
prerelease: false
|
|
168
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
169
163
|
requirements:
|
|
170
164
|
- - "~>"
|
|
171
165
|
- !ruby/object:Gem::Version
|
|
172
|
-
version: '
|
|
166
|
+
version: '0.9'
|
|
173
167
|
description: 'A Rails Engine to provide a basic RESTful interface for GTFS feeds.
|
|
174
168
|
GTFS Spec: https://developers.google.com/transit/gtfs'
|
|
175
169
|
email: jon@ertt.ca
|
|
@@ -269,8 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
269
263
|
- !ruby/object:Gem::Version
|
|
270
264
|
version: '0'
|
|
271
265
|
requirements: []
|
|
272
|
-
|
|
273
|
-
rubygems_version: 2.6.11
|
|
266
|
+
rubygems_version: 3.0.3
|
|
274
267
|
signing_key:
|
|
275
268
|
specification_version: 4
|
|
276
269
|
summary: Read General Transit Feed Specification zip files
|