GithubHelp home page GithubHelp logo

sangster / gtfs_reader Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 5.0 223 KB

GTFS Reader is a gem designed to help process the contents of a "GTFS Feed"

License: GNU General Public License v2.0

Ruby 100.00%

gtfs_reader's Introduction

Personal Project Stats

https://raw.githubusercontent.com/sangster/sangster/master/languages.svg https://raw.githubusercontent.com/sangster/sangster/master/overview.svg

gtfs_reader's People

Contributors

chesterbr avatar dependabot[bot] avatar merlos avatar sangster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

gtfs_reader's Issues

CSV formating error

Gtfs_reader produces that error:
Encoding::UndefinedConversionError: "\xEF" from ASCII-8BIT to UTF-8
from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:994:in `encode' ...

Im not sure why this happends.
My code is similar to the example:

GtfsReader.config do
  return_hashes true
  sources do
    madrid do
      url "https://servicios.emtmadrid.es:8443/gtfs/transitemt.zip"
      before { |etag| puts "Processing source with tag #{etag}..." }
      handlers do
        #Data Exports To DB code must be here.
        stops  {|row| puts row }#createStation(row)}
        calendar {|row| puts row }#createService(row)}
        #calendar_dates {|row| createService(row)} <= This services are special
        trips {|row| puts row }#createtrip(row)}
        stop_times {|row| puts row }#createStoptime(row)}
      end
    end

  end
end
GtfsReader.update :madrid

Complete Error:

Processing source with tag false...
Encoding::UndefinedConversionError: "\xEF" from ASCII-8BIT to UTF-8
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:994:in `encode'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:994:in `block in <class:CSV>'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:2168:in `[]'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:2168:in `block (2 levels) in convert_fields'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:2166:in `each'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:2166:in `block in convert_fields'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:2165:in `map'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:2165:in `with_index'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:2165:in `convert_fields'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:2206:in `parse_headers'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:1882:in `block in shift'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:1774:in `loop'
    from /home/vagrant/.rvm/rubies/ruby-2.1.0-preview1/lib/ruby/2.1.0/csv.rb:1774:in `shift'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/gtfs-reader-0.2.8/lib/gtfs_reader/file_reader.rb:27:in `initialize'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/gtfs-reader-0.2.8/lib/gtfs_reader/source_updater.rb:62:in `new'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/gtfs-reader-0.2.8/lib/gtfs_reader/source_updater.rb:62:in `block (2 levels) in check_columns'
... 6 levels...
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/gtfs-reader-0.2.8/lib/gtfs_reader/source_updater.rb:60:in `check_columns'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/gtfs-reader-0.2.8/lib/gtfs_reader/core.rb:52:in `block in update_verbosely'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/gtfs-reader-0.2.8/lib/gtfs_reader/core.rb:47:in `instance_exec'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/gtfs-reader-0.2.8/lib/gtfs_reader/core.rb:47:in `update_verbosely'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/gtfs-reader-0.2.8/lib/gtfs_reader/core.rb:36:in `block in update'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/gtfs-reader-0.2.8/lib/gtfs_reader/log.rb:44:in `quiet'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/gtfs-reader-0.2.8/lib/gtfs_reader/core.rb:36:in `update'
    from /vagrant/transit/lib/gtfs_retriever.rb:26:in `updateData'
    from (irb):12
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/railties-4.1.1/lib/rails/commands/console.rb:90:in `start'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/railties-4.1.1/lib/rails/commands/console.rb:9:in `start'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:69:in `console'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
    from /home/vagrant/.rvm/gems/ruby-2.1.0-preview1/gems/railties-4.1.1/lib/rails/commands.rb:17:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

source_updater combines business and view logic

The file source_updater.rb combines both logic for downloading and parsing zip files and the logic for pretty-printing information about the process on the console. These two aspects should be split into two classes.

[Bug] NameError: undefined local variable or method `parent_station'

May be related to #4, but the GTFS feed for the Nashville MTA throws an exception when attempting to parse it.

NameError: undefined local variable or method `parent_station' for #<GtfsReader::ParserContext:0x007f993f8a40c8>
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/file_row.rb:63:in `method_missing'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/config/defaults/gtfs_feed_definition.rb:38:in `block (4 levels) in <module:Defaults>'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/file_row.rb:31:in `instance_exec'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/file_row.rb:31:in `[]'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/file_row.rb:45:in `block in to_hash'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/file_row.rb:45:in `each'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/file_row.rb:45:in `inject'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/file_row.rb:45:in `to_hash'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/file_reader.rb:45:in `each'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/feed_handler.rb:16:in `handle_file'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/source_updater.rb:176:in `process_from_temp_file'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/source_updater.rb:78:in `block in process_files'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/source_updater.rb:76:in `each'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/source_updater.rb:76:in `process_files'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/core.rb:54:in `block in update_verbosely'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/core.rb:48:in `instance_exec'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/core.rb:48:in `update_verbosely'
  /Users/yeargism/Sites/wego-bus-map/vendor/bundle/ruby/2.4.0/gems/gtfs_reader-1.2.0/lib/gtfs_reader/core.rb:34:in `update'
  bin/updateGtfsData:47:in `<top (required)>'

The file in question has null values for parent_station.

screen shot 2018-09-17 at 2 14 08 pm

New gem release needed for Ruby 3 compatibility

Hello!

I noticed #17 got merged ๐Ÿ™‡, however it seems the latest version of the gem still doesn't include the change.

I didn't notice it before because I was using either a manual fix or my own server.

Are there any plans to release a new one?

Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.