Module: NJTransit::GTFS

Defined in:
lib/njtransit/gtfs.rb,
lib/njtransit/gtfs/database.rb,
lib/njtransit/gtfs/importer.rb,
lib/njtransit/gtfs/models/stop.rb,
lib/njtransit/gtfs/models/route.rb,
lib/njtransit/gtfs/queries/schedule.rb,
lib/njtransit/gtfs/queries/routes_between.rb

Defined Under Namespace

Modules: Database, Models, Queries Classes: Importer, QueryInterface

Constant Summary collapse

SEARCH_PATHS =
[
  "./bus_data",
  "./vendor/bus_data",
  "./docs/api/njtransit/bus_data"
].freeze

Class Method Summary collapse

Class Method Details

.clear!Object



49
50
51
52
53
54
# File 'lib/njtransit/gtfs.rb', line 49

def clear!
  Database.connection(database_path)
  Database.clear!
  Database.disconnect
  FileUtils.rm_f(database_path)
end

.detect_gtfs_pathObject



43
44
45
46
47
# File 'lib/njtransit/gtfs.rb', line 43

def detect_gtfs_path
  SEARCH_PATHS.find do |path|
    File.directory?(path) && File.exist?(File.join(path, "agency.txt"))
  end
end

.import(source_path, force: false) ⇒ Object



19
20
21
22
23
# File 'lib/njtransit/gtfs.rb', line 19

def import(source_path, force: false)
  importer = Importer.new(source_path, database_path)
  validate_gtfs_directory!(importer, source_path)
  importer.import(force: force)
end

.newObject



32
33
34
35
36
37
38
39
40
41
# File 'lib/njtransit/gtfs.rb', line 32

def new
  path = database_path

  unless Database.exists?(path)
    detected = detect_gtfs_path
    raise GTFSNotImportedError.new(detected_path: detected)
  end

  QueryInterface.new(path)
end

.statusObject



25
26
27
28
29
30
# File 'lib/njtransit/gtfs.rb', line 25

def status
  path = database_path
  return { imported: false, path: path } unless Database.exists?(path)

  build_status_hash(path)
end