tubestatus 0.0.2

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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/tubestatus +2 -0
  3. data/lib/tubestatus.rb +91 -0
  4. metadata +46 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e98c987f6ece283e970c314264b35a359ec46d72
4
+ data.tar.gz: e0eab7098df9d11821d9f2ff70c85319040ddf5e
5
+ SHA512:
6
+ metadata.gz: 968c71ca36872640e9864ce97fa7a6bfb28a667a715fe56f5272738036af629285a5795cb452a4024c1026497ab297b92e025e8c7607a983a5bf16a4eb784f16
7
+ data.tar.gz: bd7f1b578b95b5f4dc333d19e22eeddbdb7483fdb1af44fc43bdc0e385a3f7efea4d0c5c4040ff6ae67e6228728ff345084dd8ded9c24658be2dddad38fd476f
data/bin/tubestatus ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ruby
2
+ require "tubestatus"
data/lib/tubestatus.rb ADDED
@@ -0,0 +1,91 @@
1
+ #!/usr/bin/env ruby
2
+ require "optparse"
3
+ require "open-uri"
4
+ require 'net/http'
5
+ require "json"
6
+ require 'text-table'
7
+ require 'colorize'
8
+ #API provided by tubeupdates.com
9
+
10
+ def getAll(url)
11
+ exchanges = []
12
+ begin
13
+ open(url) do |d|
14
+ json = JSON.parse(d.read)
15
+ json.each do |a|
16
+ exchanges << a
17
+ end
18
+ end
19
+ return true, exchanges
20
+ end
21
+ rescue SocketError => e
22
+ return false, "Could not connect to the API"
23
+ end
24
+
25
+ def getLine(url, symbol)
26
+ begin
27
+ open(url) do |d|
28
+ json = JSON.parse(d.read)
29
+ json.each do |a|
30
+ a[1]['lines'].each do |v|
31
+ if v['id'] == symbol
32
+ return true, v
33
+ end
34
+ end
35
+ end
36
+ return false, "Could not find line. Please use one of the following ID's bakerloo, central, district, docklands, hammersmithcity, jubilee, metropolitan, northern, piccadilly, overground, victoria, waterloocity"
37
+ end
38
+ rescue SocketError => e
39
+ return false, "Could not connect to the API"
40
+ end
41
+ end
42
+
43
+
44
+ table = Text::Table.new :horizontal_padding => 1,
45
+ :vertical_boundary => '-',
46
+ :horizontal_boundary => '|',
47
+ :boundary_intersection => '-'
48
+
49
+ case ARGV[0]
50
+ when nil
51
+ info = getAll("http://api.tubeupdates.com/?method=get.status&format=json")
52
+ #if failed to connect then display the error message
53
+ if info[0] == false
54
+ puts info[1]
55
+ else
56
+ table.head = ["Line", "Status"]
57
+ info[1][0][1]["lines"].each_with_index do |lines|
58
+ status = "%s" % lines["status"].split.map(&:capitalize).join(' ')
59
+ names = "%s" % lines["name"].gsub("\&amp;", '&')
60
+ table.rows << [names, status]
61
+ end
62
+ puts table.to_s
63
+ end
64
+ else
65
+
66
+ info = getLine("http://api.tubeupdates.com/?method=get.status&format=json", ARGV[0])
67
+
68
+ if info[0] == false
69
+ puts info[1]
70
+ else
71
+ name = info[1]['name'].gsub("\&amp;", '&')
72
+ status = info[1]['status'].split.map(&:capitalize).join(' ')
73
+ if status == "Good Service"
74
+ status = status.green
75
+ else
76
+ status = status.red
77
+ end
78
+
79
+ puts "Line: " + name
80
+ puts "Status: " + status
81
+ if info[1]['messages'].empty?
82
+ puts "Messages: None"
83
+ else
84
+ puts "Messages: "
85
+ info[1]['messages'].each do |d|
86
+ puts d.gsub("\&amp;", '&')
87
+ puts "\n"
88
+ end
89
+ end
90
+ end
91
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tubestatus
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Minesh Mandalia
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-01 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Provides London Tube updates in your Terminal
14
+ email:
15
+ - minesh@mandalia.me
16
+ executables:
17
+ - tubestatus
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - bin/tubestatus
22
+ - lib/tubestatus.rb
23
+ homepage: http://mineshmandalia.com/
24
+ licenses: []
25
+ metadata: {}
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 2.2.2
43
+ signing_key:
44
+ specification_version: 4
45
+ summary: Tube Status in your Terminal
46
+ test_files: []