diMLOrb 0.1.1 → 0.2.0
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/.rvmrc +1 -1
- data/Gemfile +2 -1
- data/Gemfile.lock +4 -0
- data/README.rdoc +3 -1
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/diMLOrb.gemspec +7 -1
- data/lib/diMLOrb.rb +9 -15
- data/lib/stations.rb +1 -0
- metadata +101 -120
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use 1.
|
1
|
+
rvm use 1.9.2@diMLOrb
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
crack (0.1.8)
|
4
5
|
diff-lcs (1.1.2)
|
5
6
|
git (1.2.5)
|
7
|
+
httparty (0.7.8)
|
8
|
+
crack (= 0.1.8)
|
6
9
|
jeweler (1.5.2)
|
7
10
|
bundler (~> 1.0.0)
|
8
11
|
git (>= 1.2.5)
|
@@ -24,6 +27,7 @@ PLATFORMS
|
|
24
27
|
|
25
28
|
DEPENDENCIES
|
26
29
|
bundler (~> 1.0.0)
|
30
|
+
httparty
|
27
31
|
jeweler (~> 1.5.2)
|
28
32
|
nokogiri
|
29
33
|
rcov
|
data/README.rdoc
CHANGED
@@ -10,8 +10,10 @@ Currently my little website _diMLOya_ supports only 2 stations of all the networ
|
|
10
10
|
|
11
11
|
Note that this gems depends on the diMLO website which oftenly tends to be down or not responsive.
|
12
12
|
|
13
|
+
== Installation
|
14
|
+
gem install diMLOrb
|
13
15
|
|
14
|
-
|
16
|
+
== Example of Usage
|
15
17
|
require 'diMLOrb'
|
16
18
|
#say I want to go from Pozuelo Oeste station to Colonia Jardín station
|
17
19
|
d = DiMLOrb::DiMLOrb.new(:PozueloOeste, :ColoniaJardin)
|
data/Rakefile
CHANGED
@@ -24,6 +24,7 @@ Jeweler::Tasks.new do |gem|
|
|
24
24
|
# gem.add_runtime_dependency 'jabber4r', '> 0.1'
|
25
25
|
# gem.add_development_dependency 'rspec', '> 1.2.3'
|
26
26
|
gem.add_runtime_dependency 'nokogiri'
|
27
|
+
gem.add_runtime_dependency 'httparty'
|
27
28
|
gem.add_development_dependency 'rspec', '~> 2.3.0'
|
28
29
|
end
|
29
30
|
Jeweler::RubygemsDotOrgTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/diMLOrb.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{diMLOrb}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["ariera"]
|
@@ -47,28 +47,34 @@ Gem::Specification.new do |s|
|
|
47
47
|
|
48
48
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
49
|
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
50
|
+
s.add_runtime_dependency(%q<httparty>, [">= 0"])
|
50
51
|
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
51
52
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
52
53
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
53
54
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
54
55
|
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
56
|
+
s.add_runtime_dependency(%q<httparty>, [">= 0"])
|
55
57
|
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
56
58
|
else
|
57
59
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
60
|
+
s.add_dependency(%q<httparty>, [">= 0"])
|
58
61
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
59
62
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
60
63
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
61
64
|
s.add_dependency(%q<rcov>, [">= 0"])
|
62
65
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
66
|
+
s.add_dependency(%q<httparty>, [">= 0"])
|
63
67
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
64
68
|
end
|
65
69
|
else
|
66
70
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
71
|
+
s.add_dependency(%q<httparty>, [">= 0"])
|
67
72
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
68
73
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
69
74
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
70
75
|
s.add_dependency(%q<rcov>, [">= 0"])
|
71
76
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
77
|
+
s.add_dependency(%q<httparty>, [">= 0"])
|
72
78
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
73
79
|
end
|
74
80
|
end
|
data/lib/diMLOrb.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
# encoding: UTF-8
|
2
|
-
require '
|
3
|
-
require 'uri'
|
2
|
+
require 'httparty'
|
4
3
|
require 'nokogiri'
|
5
|
-
require 'stations'
|
4
|
+
require File.join(File.dirname(__FILE__), 'stations')
|
6
5
|
|
7
6
|
module DiMLOrb
|
7
|
+
DIMLO_URI = "http://www.dimlo.es/Informate/calc.aspx"
|
8
8
|
class DiMLOrb
|
9
|
-
|
10
|
-
attr_accessor :
|
9
|
+
|
10
|
+
attr_accessor :proximo, :siguiente, :duracion, :from, :to
|
11
11
|
|
12
12
|
# DiMLOrb.new receives the Metro Ligero Oeste station you are going from and your desired destination
|
13
13
|
# it returns you an object with mainly 3 attributes:
|
@@ -16,8 +16,6 @@ module DiMLOrb
|
|
16
16
|
# => duraction = how long should it take to go from one station to the other
|
17
17
|
def initialize(from = :ColoniaJardin, to = :SomosaguasSur)
|
18
18
|
@from, @to = STATIONS[from], STATIONS[to]
|
19
|
-
@uri = URI.parse("http://www.dimlo.es/Informate/calc.aspx")
|
20
|
-
@http = Net::HTTP.new(@uri.host, @uri.port)
|
21
19
|
get_validations
|
22
20
|
get_times
|
23
21
|
end
|
@@ -25,7 +23,7 @@ module DiMLOrb
|
|
25
23
|
# diMLO website uses cookies and token validations (aka protect from forgery) in its forms
|
26
24
|
# *get_validations* grabs this values, namely: cookie, viewstate and eventvalidation
|
27
25
|
def get_validations
|
28
|
-
resp =
|
26
|
+
resp = HTTParty.get(DIMLO_URI)
|
29
27
|
raise "HTTP Error: #{resp.code}" if resp.code.to_i != 200
|
30
28
|
|
31
29
|
@cookie = resp.response['set-cookie'].split('; ')[0]
|
@@ -37,12 +35,8 @@ module DiMLOrb
|
|
37
35
|
# *get_times* asks diMLO website for the next metro timetable and parses the html
|
38
36
|
# to grab the values of _proximo_, _siguiente_ and _duracion_
|
39
37
|
def get_times
|
40
|
-
|
41
|
-
|
42
|
-
req.form_data = options
|
43
|
-
headers.each{ |k,v| req[k] = v }
|
44
|
-
@html = @http.start {|http| http.request(req) }
|
45
|
-
doc = Nokogiri::HTML(@html.body)
|
38
|
+
resp = HTTParty.post(DIMLO_URI, {:body => form_options, :headers => headers})
|
39
|
+
doc = Nokogiri::HTML(resp.body)
|
46
40
|
@proximo = doc.css('#ProximoTXT').inner_text
|
47
41
|
@siguiente = doc.css('#SiguienteTXT').inner_text
|
48
42
|
@duracion = doc.css('#DuracionTXT').inner_text
|
@@ -51,7 +45,7 @@ module DiMLOrb
|
|
51
45
|
protected
|
52
46
|
|
53
47
|
# options needed in the form to get the timetables
|
54
|
-
def
|
48
|
+
def form_options
|
55
49
|
{
|
56
50
|
'origenDDL' => @from,
|
57
51
|
'destinoDDL' => @to,
|
data/lib/stations.rb
CHANGED
metadata
CHANGED
@@ -1,139 +1,125 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: diMLOrb
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 1
|
10
|
-
version: 0.1.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- ariera
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
date: 2011-07-17 00:00:00 +02:00
|
12
|
+
date: 2011-07-17 00:00:00.000000000 +02:00
|
19
13
|
default_executable:
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
22
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: nokogiri
|
17
|
+
requirement: &2152966260 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
23
23
|
type: :runtime
|
24
|
-
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *2152966260
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: httparty
|
28
|
+
requirement: &2152965780 !ruby/object:Gem::Requirement
|
25
29
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
31
|
-
- 0
|
32
|
-
version: "0"
|
33
|
-
name: nokogiri
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
36
35
|
prerelease: false
|
37
|
-
|
38
|
-
|
36
|
+
version_requirements: *2152965780
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: rspec
|
39
|
+
requirement: &2152965300 !ruby/object:Gem::Requirement
|
39
40
|
none: false
|
40
|
-
requirements:
|
41
|
+
requirements:
|
41
42
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
hash: 3
|
44
|
-
segments:
|
45
|
-
- 2
|
46
|
-
- 3
|
47
|
-
- 0
|
43
|
+
- !ruby/object:Gem::Version
|
48
44
|
version: 2.3.0
|
49
|
-
name: rspec
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
prerelease: false
|
53
45
|
type: :development
|
54
|
-
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *2152965300
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: bundler
|
50
|
+
requirement: &2152964820 !ruby/object:Gem::Requirement
|
55
51
|
none: false
|
56
|
-
requirements:
|
52
|
+
requirements:
|
57
53
|
- - ~>
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
hash: 23
|
60
|
-
segments:
|
61
|
-
- 1
|
62
|
-
- 0
|
63
|
-
- 0
|
54
|
+
- !ruby/object:Gem::Version
|
64
55
|
version: 1.0.0
|
65
|
-
name: bundler
|
66
|
-
version_requirements: *id003
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
prerelease: false
|
69
56
|
type: :development
|
70
|
-
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *2152964820
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: jeweler
|
61
|
+
requirement: &2152964340 !ruby/object:Gem::Requirement
|
71
62
|
none: false
|
72
|
-
requirements:
|
63
|
+
requirements:
|
73
64
|
- - ~>
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
hash: 7
|
76
|
-
segments:
|
77
|
-
- 1
|
78
|
-
- 5
|
79
|
-
- 2
|
65
|
+
- !ruby/object:Gem::Version
|
80
66
|
version: 1.5.2
|
81
|
-
name: jeweler
|
82
|
-
version_requirements: *id004
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
prerelease: false
|
85
67
|
type: :development
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
- - ">="
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
hash: 3
|
92
|
-
segments:
|
93
|
-
- 0
|
94
|
-
version: "0"
|
68
|
+
prerelease: false
|
69
|
+
version_requirements: *2152964340
|
70
|
+
- !ruby/object:Gem::Dependency
|
95
71
|
name: rcov
|
96
|
-
|
97
|
-
|
72
|
+
requirement: &2152963860 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
type: :development
|
98
79
|
prerelease: false
|
80
|
+
version_requirements: *2152963860
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: nokogiri
|
83
|
+
requirement: &2152963380 !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
99
89
|
type: :runtime
|
100
|
-
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: *2152963380
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: httparty
|
94
|
+
requirement: &2152962900 !ruby/object:Gem::Requirement
|
101
95
|
none: false
|
102
|
-
requirements:
|
103
|
-
- -
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
|
106
|
-
|
107
|
-
- 0
|
108
|
-
version: "0"
|
109
|
-
name: nokogiri
|
110
|
-
version_requirements: *id006
|
111
|
-
- !ruby/object:Gem::Dependency
|
96
|
+
requirements:
|
97
|
+
- - ! '>='
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
type: :runtime
|
112
101
|
prerelease: false
|
113
|
-
|
114
|
-
|
102
|
+
version_requirements: *2152962900
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: rspec
|
105
|
+
requirement: &2152962420 !ruby/object:Gem::Requirement
|
115
106
|
none: false
|
116
|
-
requirements:
|
107
|
+
requirements:
|
117
108
|
- - ~>
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
hash: 3
|
120
|
-
segments:
|
121
|
-
- 2
|
122
|
-
- 3
|
123
|
-
- 0
|
109
|
+
- !ruby/object:Gem::Version
|
124
110
|
version: 2.3.0
|
125
|
-
|
126
|
-
|
127
|
-
|
111
|
+
type: :development
|
112
|
+
prerelease: false
|
113
|
+
version_requirements: *2152962420
|
114
|
+
description: This gem acts as an API to the MLO (Metro Ligero Oeste) public transportation
|
115
|
+
of Madrid, allowing the user get ETAs of the next 2 trains
|
128
116
|
email: ariera@gmail.com
|
129
117
|
executables: []
|
130
|
-
|
131
118
|
extensions: []
|
132
|
-
|
133
|
-
extra_rdoc_files:
|
119
|
+
extra_rdoc_files:
|
134
120
|
- LICENSE.txt
|
135
121
|
- README.rdoc
|
136
|
-
files:
|
122
|
+
files:
|
137
123
|
- .document
|
138
124
|
- .rspec
|
139
125
|
- .rvmrc
|
@@ -150,38 +136,33 @@ files:
|
|
150
136
|
- spec/spec_helper.rb
|
151
137
|
has_rdoc: true
|
152
138
|
homepage: http://github.com/ariera/diMLOrb
|
153
|
-
licenses:
|
139
|
+
licenses:
|
154
140
|
- MIT
|
155
141
|
post_install_message:
|
156
142
|
rdoc_options: []
|
157
|
-
|
158
|
-
require_paths:
|
143
|
+
require_paths:
|
159
144
|
- lib
|
160
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
161
146
|
none: false
|
162
|
-
requirements:
|
163
|
-
- -
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
|
166
|
-
segments:
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
segments:
|
167
152
|
- 0
|
168
|
-
|
169
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
|
+
hash: 591139527503701248
|
154
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
155
|
none: false
|
171
|
-
requirements:
|
172
|
-
- -
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
|
175
|
-
segments:
|
176
|
-
- 0
|
177
|
-
version: "0"
|
156
|
+
requirements:
|
157
|
+
- - ! '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
178
160
|
requirements: []
|
179
|
-
|
180
161
|
rubyforge_project:
|
181
162
|
rubygems_version: 1.6.2
|
182
163
|
signing_key:
|
183
164
|
specification_version: 3
|
184
165
|
summary: Ruby API for the diMLO web timetable service
|
185
|
-
test_files:
|
166
|
+
test_files:
|
186
167
|
- spec/diMLOrb_spec.rb
|
187
168
|
- spec/spec_helper.rb
|