Sha256: ab051725a209bf082a02b9fafb31c9122b5e6f2e9453d1071644751ff65c7a79

Contents?: true

Size: 743 Bytes

Versions: 2

Compression:

Stored size: 743 Bytes

Contents

require 'mash'
module Muni
  class NextBusError < StandardError; end
  class Base < Mash
    class << self
      private
        def fetch(command, options = nil)
          url = build_url(command, options)
          xml = Net::HTTP.get(URI.parse(url))
          doc = XmlSimple.xml_in(xml)
          fail NextBusError, doc['Error'].first['content'].gsub(/\n/,'') if doc['Error']
          doc
        end
      
        def build_url(command, options = nil)
          url = "http://webservices.nextbus.com/service/publicXMLFeed?command=%s&a=sf-muni" %  command
          if options
            options.each { |key,value|
              url << "&#{key}=#{value}"
            }
          end
          url
        end
        
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
muni-0.0.2 lib/muni/base.rb
muni-0.0.1 lib/muni/base.rb