next_muni 0.1.1
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.
- data/CHANGELOG +3 -0
- data/Manifest +6 -0
- data/README +0 -0
- data/Rakefile +23 -0
- data/lib/next_muni/api.rb +20 -0
- data/lib/next_muni.rb +31 -0
- data/next_muni.gemspec +29 -0
- metadata +70 -0
data/CHANGELOG
ADDED
data/Manifest
ADDED
data/README
ADDED
File without changes
|
data/Rakefile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'echoe'
|
4
|
+
|
5
|
+
Echoe.new('next_muni', '0.1.1') do |p|
|
6
|
+
p.description = "A gem to access San Francisco's Next Muni API easily"
|
7
|
+
p.url = "http://www.github.com/hjhart/next_muni_gem"
|
8
|
+
p.author = "James Hart"
|
9
|
+
p.email = "hjhart@gmail.com"
|
10
|
+
p.ignore_pattern = ["tmp/*", "scripts/*"]
|
11
|
+
p.development_dependencies = []
|
12
|
+
end
|
13
|
+
|
14
|
+
def name
|
15
|
+
@name ||= Dir['*.gemspec'].first.split('.').first
|
16
|
+
end
|
17
|
+
|
18
|
+
task :default => [:test, :features]
|
19
|
+
|
20
|
+
desc "Open an irb session preloaded with this library"
|
21
|
+
task :console do
|
22
|
+
sh "irb -rubygems -r ./lib/#{name}.rb"
|
23
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module NextMuni
|
2
|
+
|
3
|
+
class Api
|
4
|
+
# get stops
|
5
|
+
# http://webservices.nextbus.com/service/publicXMLFeed?command=routeConfig&a=sf-muni&r=45
|
6
|
+
# get times
|
7
|
+
# http://webservices.nextbus.com/service/publicXMLFeed?command=predictions&a=sf-muni&r=<route tag>&d=<direction tag>&s=<stop tag>
|
8
|
+
# multiples
|
9
|
+
# http://webservices.nextbus.com/service/publicXMLFeed?command=predictionsForMultiStops&a=sf-muni&stops=45|45_IB2|6787&stops=45|45_IB2|6771
|
10
|
+
def self.build_url(route_number, stop_id = nil, dir_id = nil)
|
11
|
+
if stop_id.nil?
|
12
|
+
url = "http://webservices.nextbus.com/service/publicXMLFeed?command=routeConfig&a=sf-muni&r=#{route_number}"
|
13
|
+
else
|
14
|
+
url = "http://webservices.nextbus.com/service/publicXMLFeed?command=predictions&a=sf-muni&r=#{route_number}&s=#{stop_id}"
|
15
|
+
url += "&d=#{dir_id}" unless dir_id.nil?
|
16
|
+
end
|
17
|
+
url
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/next_muni.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
require 'rexml/document'
|
4
|
+
require 'net/http'
|
5
|
+
|
6
|
+
require 'next_muni/api'
|
7
|
+
|
8
|
+
module NextMuni
|
9
|
+
def self.get_stops(route)
|
10
|
+
url = NextMuni::Api.build_url(route)
|
11
|
+
xml = Net::HTTP.get(URI.parse(url))
|
12
|
+
doc = REXML::Document.new(xml)
|
13
|
+
stops = {}
|
14
|
+
doc.elements.each('body/route/stop') do |ele|
|
15
|
+
stops[ele.attributes['tag']] = ele.attributes['title']
|
16
|
+
end
|
17
|
+
stops
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.get_times(route_no, stop_no)
|
21
|
+
url = NextMuni::Api.build_url(route_no, stop_no)
|
22
|
+
xml = Net::HTTP.get(URI.parse(url))
|
23
|
+
|
24
|
+
doc = REXML::Document.new(xml)
|
25
|
+
times = []
|
26
|
+
doc.elements.each('body/predictions/direction/prediction') do |time|
|
27
|
+
times << time.attributes['minutes']
|
28
|
+
end
|
29
|
+
times
|
30
|
+
end
|
31
|
+
end
|
data/next_muni.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{next_muni}
|
5
|
+
s.version = "0.1.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["James Hart"]
|
9
|
+
s.date = %q{2011-03-14}
|
10
|
+
s.description = %q{A gem to access San Francisco's Next Muni API easily}
|
11
|
+
s.email = %q{hjhart@gmail.com}
|
12
|
+
s.extra_rdoc_files = ["CHANGELOG", "README", "lib/next_muni.rb", "lib/next_muni/api.rb"]
|
13
|
+
s.files = ["CHANGELOG", "README", "Rakefile", "lib/next_muni.rb", "lib/next_muni/api.rb", "Manifest", "next_muni.gemspec"]
|
14
|
+
s.homepage = %q{http://www.github.com/hjhart/next_muni_gem}
|
15
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Next_muni", "--main", "README"]
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubyforge_project = %q{next_muni}
|
18
|
+
s.rubygems_version = %q{1.5.3}
|
19
|
+
s.summary = %q{A gem to access San Francisco's Next Muni API easily}
|
20
|
+
|
21
|
+
if s.respond_to? :specification_version then
|
22
|
+
s.specification_version = 3
|
23
|
+
|
24
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
25
|
+
else
|
26
|
+
end
|
27
|
+
else
|
28
|
+
end
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: next_muni
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- James Hart
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-03-14 00:00:00 -07:00
|
14
|
+
default_executable:
|
15
|
+
dependencies: []
|
16
|
+
|
17
|
+
description: A gem to access San Francisco's Next Muni API easily
|
18
|
+
email: hjhart@gmail.com
|
19
|
+
executables: []
|
20
|
+
|
21
|
+
extensions: []
|
22
|
+
|
23
|
+
extra_rdoc_files:
|
24
|
+
- CHANGELOG
|
25
|
+
- README
|
26
|
+
- lib/next_muni.rb
|
27
|
+
- lib/next_muni/api.rb
|
28
|
+
files:
|
29
|
+
- CHANGELOG
|
30
|
+
- README
|
31
|
+
- Rakefile
|
32
|
+
- lib/next_muni.rb
|
33
|
+
- lib/next_muni/api.rb
|
34
|
+
- Manifest
|
35
|
+
- next_muni.gemspec
|
36
|
+
has_rdoc: true
|
37
|
+
homepage: http://www.github.com/hjhart/next_muni_gem
|
38
|
+
licenses: []
|
39
|
+
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options:
|
42
|
+
- --line-numbers
|
43
|
+
- --inline-source
|
44
|
+
- --title
|
45
|
+
- Next_muni
|
46
|
+
- --main
|
47
|
+
- README
|
48
|
+
require_paths:
|
49
|
+
- lib
|
50
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: "0"
|
56
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: "1.2"
|
62
|
+
requirements: []
|
63
|
+
|
64
|
+
rubyforge_project: next_muni
|
65
|
+
rubygems_version: 1.5.3
|
66
|
+
signing_key:
|
67
|
+
specification_version: 3
|
68
|
+
summary: A gem to access San Francisco's Next Muni API easily
|
69
|
+
test_files: []
|
70
|
+
|