class GtfsReader::Config::Source

A single source of GTFS data

Attributes

name[R]

Public Class Methods

new(name) click to toggle source
# File lib/gtfs_reader/config/source.rb, line 15
def initialize(name)
  @name = name
  @feed_definition = Config::Defaults::FEED_DEFINITION
  @feed_handler = FeedHandler.new {}
  @url = nil
  @before = nil
end

Public Instance Methods

before(&block) click to toggle source

Define a block to call before the source is read. If this block returns false, cancel processing the source

# File lib/gtfs_reader/config/source.rb, line 39
def before(&block)
  @before = block if block_given?
  @before
end
feed_definition(&block) click to toggle source
# File lib/gtfs_reader/config/source.rb, line 44
def feed_definition(&block)
  if block_given?
    @feed_definition = FeedDefinition.new.tap do |feed|
      feed.instance_exec(feed, &block)
    end
  end

  @feed_definition
end
handlers(*args, &block) click to toggle source
# File lib/gtfs_reader/config/source.rb, line 54
def handlers(*args, &block)
  if block_given?
    opts = args.last.try(:is_a?, Hash) ? args.pop : {}
    opts = opts.reverse_merge bulk: nil
    @feed_handler =
      if opts[:bulk]
        BulkFeedHandler.new(opts[:bulk], args, &block)
      else
        FeedHandler.new(args, &block)
      end
  end

  @feed_handler
end
title(title = nil) click to toggle source

@param title [String] if given, will be used as the title of this source @return [String] the title of this source

# File lib/gtfs_reader/config/source.rb, line 25
def title(title = nil)
  @title = title if title.present?
  @title
end
url(url = nil) click to toggle source

@param url [String] if given, will be used as the URL for this source @return [String] the URL this source's ZIP file

# File lib/gtfs_reader/config/source.rb, line 32
def url(url = nil)
  @url = url if url.present?
  @url
end