tube 0.2.3 → 0.2.4

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.
@@ -7,7 +7,7 @@ class String
7
7
  end
8
8
 
9
9
  LINE_COLORS = {
10
- :bakerloo => [:bright_white, :yellow_bg],
10
+ :bakerloo => [:bright_white, :red_bg],
11
11
  :central => [:white, :bright_red_bg],
12
12
  :circle => [:blue, :bright_yellow_bg],
13
13
  :district => [:bright_white, :green_bg],
@@ -17,7 +17,9 @@ LINE_COLORS = {
17
17
  :northern => [:bright_white, :black_bg],
18
18
  :piccadilly => [:bright_white, :blue_bg],
19
19
  :victoria => [:bright_white, :bright_blue_bg],
20
- :waterlooandcity => [:blue, :bright_cyan_bg]
20
+ :waterlooandcity => [:blue, :bright_cyan_bg],
21
+ :dlr => [:bright_white, :cyan_bg],
22
+ :overground => [:bright_white, :yellow_bg]
21
23
  }
22
24
  STATUS_COLOR = [:blue, :bright_white_bg]
23
25
  PROBLEM_COLOR = STATUS_COLOR + [:negative]
@@ -9,11 +9,13 @@ module Tube # :nodoc:
9
9
 
10
10
  def parse( html_doc )
11
11
  html_doc.gsub!( / /, " " )
12
- service_board = Nokogiri::HTML( html_doc ).at_css( "#service-board" )
12
+ doc = Nokogiri::HTML( html_doc )
13
13
 
14
- updated_element = service_board.previous_element.at_css( "h2" )
14
+ updated_element = doc.at_css( "div.hd-row > h2" )
15
15
  updated = parse_updated( updated_element )
16
16
 
17
+ service_board = doc.at_css( "#service-board" )
18
+
17
19
  line_elements = service_board.css( "ul#lines > li.ltn-line" )
18
20
  lines = line_elements.map( &method( :parse_line ) )
19
21
 
@@ -31,8 +33,9 @@ module Tube # :nodoc:
31
33
  end
32
34
 
33
35
  def parse_line( line_element )
34
- name = line_element.at_css( "h3.ltn-name" ).content
35
- html_class = line_element["class"].split.first
36
+ name_element = line_element.at_css( "h3.ltn-name" )
37
+ name = name_element.content
38
+ html_class = name_element["class"].split.first
36
39
  status = parse_status( line_element.at_css( "div.status" ) )
37
40
 
38
41
  {:name => name, :html_class => html_class, :status => status}
data/test/dummy.html CHANGED
@@ -31,15 +31,20 @@
31
31
  <p>Get advance warning of weekend closures</p>
32
32
  </div>
33
33
  </div>
34
+
35
+ <div class="short-form">
36
+ <div class="clear"></div>
37
+ </div>
38
+
34
39
  <div id="service-board">
35
40
  <h2>Tube lines</h2>
36
41
  <ul id="lines">
37
- <li class="central ltn-line">
42
+ <li class="ltn-line">
38
43
  <h3 class="central ltn-name">Central</h3>
39
44
  <div class="status">Good service</div>
40
45
  </li>
41
46
 
42
- <li class="district ltn-line">
47
+ <li class="ltn-line">
43
48
  <h3 class="district ltn-name">District</h3>
44
49
  <div class="problem status">
45
50
  <h4 class="ltn-title">Part closure</h4>
@@ -55,7 +60,7 @@
55
60
  </div>
56
61
  </li>
57
62
 
58
- <li class="waterlooandcity ltn-line">
63
+ <li class="ltn-line">
59
64
  <h3 class="waterlooandcity ltn-name">Waterloo &amp; City</h3>
60
65
  <div class="problem status">
61
66
  <h4 class="ltn-title">Planned closure</h4>
@@ -20,7 +20,7 @@ class TestStatusParser < Test::Unit::TestCase
20
20
  end
21
21
 
22
22
  def test_parse_line
23
- document = Nokogiri::HTML(%Q{<li class="central ltn-line"><h3 class="central ltn-name">Central</h3><div class="status">Good service</div></li>})
23
+ document = Nokogiri::HTML(%Q{<li class="ltn-line"><h3 class="central ltn-name">Central</h3><div class="status">Good service</div></li>})
24
24
  element = document.at_css("li")
25
25
  result = Tube::StatusParser.parse_line(element)
26
26
 
@@ -30,7 +30,7 @@ class TestStatusParser < Test::Unit::TestCase
30
30
  end
31
31
 
32
32
  def test_parse_line_with_complex_name
33
- document = Nokogiri::HTML(%Q{<li class="waterlooandcity ltn-line"><h3 class="waterlooandcity ltn-name">Waterloo &amp; City</h3><div class="status">Good service</div></li>})
33
+ document = Nokogiri::HTML(%Q{<li class="ltn-line"><h3 class="waterlooandcity ltn-name">Waterloo &amp; City</h3><div class="status">Good service</div></li>})
34
34
  element = document.at_css("li")
35
35
  result = Tube::StatusParser.parse_line(element)
36
36
 
metadata CHANGED
@@ -1,12 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tube
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 2
8
- - 3
9
- version: 0.2.3
4
+ version: 0.2.4
10
5
  platform: ruby
11
6
  authors:
12
7
  - Matthew Sadler
@@ -14,23 +9,19 @@ autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
11
 
17
- date: 2010-04-14 00:00:00 +01:00
12
+ date: 2010-05-24 00:00:00 +01:00
18
13
  default_executable:
19
14
  dependencies:
20
15
  - !ruby/object:Gem::Dependency
21
16
  name: nokogiri
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
24
20
  requirements:
25
21
  - - ">="
26
22
  - !ruby/object:Gem::Version
27
- segments:
28
- - 1
29
- - 4
30
- - 1
31
23
  version: 1.4.1
32
- type: :runtime
33
- version_requirements: *id001
24
+ version:
34
25
  description: A simple Ruby library to access the status of the London Underground network.
35
26
  email: mat@sourcetagsandcodes.com
36
27
  executables: []
@@ -62,20 +53,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
62
53
  requirements:
63
54
  - - ">="
64
55
  - !ruby/object:Gem::Version
65
- segments:
66
- - 0
67
56
  version: "0"
57
+ version:
68
58
  required_rubygems_version: !ruby/object:Gem::Requirement
69
59
  requirements:
70
60
  - - ">="
71
61
  - !ruby/object:Gem::Version
72
- segments:
73
- - 0
74
62
  version: "0"
63
+ version:
75
64
  requirements: []
76
65
 
77
66
  rubyforge_project:
78
- rubygems_version: 1.3.6
67
+ rubygems_version: 1.3.5
79
68
  signing_key:
80
69
  specification_version: 3
81
70
  summary: Access the status of the London Underground network.