vatsim 0.0.3 → 0.0.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.
- data/.travis.yml +9 -0
- data/Gemfile +4 -0
- data/README.md +3 -2
- data/lib/vatsim.rb +4 -0
- data/lib/vatsim/atc.rb +7 -0
- data/lib/vatsim/client.rb +0 -1
- data/lib/vatsim/data.rb +38 -46
- data/lib/vatsim/pilot.rb +7 -0
- data/lib/vatsim/prefile.rb +1 -1
- data/lib/vatsim/server.rb +19 -0
- data/lib/vatsim/version.rb +1 -1
- data/lib/vatsim/voice_server.rb +19 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/vatsim_spec.rb +133 -15
- data/vatsim.gemspec +4 -0
- metadata +73 -3
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
CHANGED
@@ -1,12 +1,13 @@
|
|
1
|
-
# vatsim.rb
|
1
|
+
# vatsim.rb [](http://travis-ci.org/tdawe/vatsim)
|
2
2
|
vatsim.rb is a Ruby library for retrieving online status for Pilots and ATC connections on the [VATSIM] network.
|
3
3
|
|
4
4
|
[VATSIM]: http://www.vatsim.net
|
5
5
|
|
6
6
|
## Installation
|
7
|
-
gem install vatsim
|
7
|
+
gem install vatsim
|
8
8
|
|
9
9
|
## Documentation
|
10
10
|
[http://rdoc.info/gems/vatsim][documentation]
|
11
11
|
|
12
12
|
[documentation]: http://rdoc.info/gems/vatsim
|
13
|
+
|
data/lib/vatsim.rb
CHANGED
data/lib/vatsim/atc.rb
ADDED
data/lib/vatsim/client.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
module Vatsim
|
2
2
|
# Connected clients
|
3
3
|
class Client
|
4
|
-
attr_reader :callsign, :cid, :realname, :clienttype, :frequency, :latitude, :longitude, :altitude, :groundspeed, :planned_aircraft, :planned_tascruise, :planned_depairport, :planned_altitude, :planned_destairport, :server, :protrevision, :rating, :transponder, :facilitytype, :visualrange, :planned_revision, :planned_flighttype, :planned_deptime, :planned_actdeptime, :planned_hrsenroute, :planned_minenroute, :planned_hrsfuel, :planned_minfuel, :planned_altairport, :planned_remarks, :planned_route, :planned_depairport_lat, :planned_depairport_lon, :planned_destairport_lat, :planned_destairport_lon, :atis_message, :time_last_atis_received, :time_logon, :heading, :QNH_iHg, :QNH_Mb
|
5
4
|
|
6
5
|
# Initialize Client with colon delimited line from vatsim-data.txt format
|
7
6
|
def initialize line
|
data/lib/vatsim/data.rb
CHANGED
@@ -6,87 +6,79 @@ module Vatsim
|
|
6
6
|
# Stores parsed data from vatsim data format
|
7
7
|
class Data
|
8
8
|
|
9
|
-
attr_reader :
|
9
|
+
attr_reader :pilots, :atc, :prefiles, :general, :servers, :voice_servers
|
10
10
|
|
11
11
|
STATUS_URL = "http://status.vatsim.net/status.txt"
|
12
12
|
STATUS_DOWNLOAD_INTERVAL = 60*60*6 # 6 hours
|
13
13
|
DATA_DOWNLOAD_INTERVAL = 60*2 # 2 minutes
|
14
|
+
STATUS_FILE_PATH = Dir::tmpdir + "/vatsim-status.txt"
|
15
|
+
DATA_FILE_PATH = Dir::tmpdir + "/vatsim-data.txt"
|
14
16
|
|
15
|
-
def initialize
|
16
|
-
@
|
17
|
+
def initialize
|
18
|
+
@pilots = Array.new
|
19
|
+
@atc = Array.new
|
17
20
|
@prefiles = Array.new
|
21
|
+
@servers = Array.new
|
22
|
+
@voice_servers = Array.new
|
18
23
|
@general = Hash.new
|
19
24
|
|
20
|
-
@status_file_path = Dir::tmpdir + "/vatsim-status.txt"
|
21
|
-
@data_file_path = Dir::tmpdir + "/vatsim-data.txt"
|
22
|
-
@refresh_files = true
|
23
|
-
|
24
|
-
if !properties.nil?
|
25
|
-
@status_file_path = properties["status_file_path"] if properties.has_key?("status_file_path")
|
26
|
-
@data_file_path = properties["data_file_path"] if properties.has_key?("data_file_path")
|
27
|
-
@refresh_files = properties["download_files"] if properties.has_key?("download_files")
|
28
|
-
end
|
29
|
-
|
30
25
|
parse
|
31
26
|
end
|
32
27
|
|
33
|
-
# Returns all connected Pilots
|
34
|
-
def pilots
|
35
|
-
pilots = Array.new
|
36
|
-
@clients.each { |client|
|
37
|
-
pilots << client if client.clienttype.eql? "PILOT"
|
38
|
-
}
|
39
|
-
return pilots
|
40
|
-
end
|
41
|
-
|
42
|
-
# Returns all connected ATC
|
43
|
-
def atc
|
44
|
-
atc = Array.new
|
45
|
-
@clients.each { |client|
|
46
|
-
atc << client if client.clienttype.eql? "ATC"
|
47
|
-
}
|
48
|
-
return atc
|
49
|
-
end
|
50
|
-
|
51
28
|
private
|
52
29
|
|
53
30
|
# Parse the vatsim data file and store output as necessary
|
54
31
|
def parse
|
55
|
-
download_files
|
32
|
+
download_files
|
56
33
|
|
57
34
|
parsing_clients = false
|
58
35
|
parsing_prefile = false
|
59
36
|
parsing_general = false
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
37
|
+
parsing_servers = false
|
38
|
+
parsing_voice_servers = false
|
39
|
+
|
40
|
+
File.open(DATA_FILE_PATH, 'r:ascii-8bit').each { |line|
|
41
|
+
|
42
|
+
if line.start_with? ";"
|
43
|
+
parsing_clients = false
|
44
|
+
parsing_prefile = false
|
45
|
+
parsing_general = false
|
46
|
+
parsing_servers = false
|
47
|
+
parsing_voice_servers = false
|
48
|
+
elsif parsing_clients
|
49
|
+
clienttype = line.split(":")[3]
|
50
|
+
if clienttype.eql? "PILOT"
|
51
|
+
@pilots << Pilot.new(line)
|
52
|
+
elsif clienttype.eql? "ATC"
|
53
|
+
@atc << ATC.new(line)
|
54
|
+
end
|
69
55
|
elsif parsing_prefile
|
70
56
|
@prefiles << Prefile.new(line)
|
71
57
|
elsif parsing_general
|
72
58
|
line_split = line.split("=")
|
73
59
|
@general[line_split[0].strip.downcase.gsub(" ", "_")] = line_split[1].strip
|
60
|
+
elsif parsing_servers
|
61
|
+
@servers << Server.new(line)
|
62
|
+
elsif parsing_voice_servers
|
63
|
+
@voice_servers << VoiceServer.new(line) if line.length > 2 # ignore last, empty line for voice server that contains 2 characters
|
74
64
|
end
|
75
65
|
|
76
66
|
parsing_clients = true if line.start_with? "!CLIENTS:"
|
77
67
|
parsing_prefile = true if line.start_with? "!PREFILE:"
|
78
68
|
parsing_general = true if line.start_with? "!GENERAL:"
|
69
|
+
parsing_servers = true if line.start_with? "!SERVERS:"
|
70
|
+
parsing_voice_servers = true if line.start_with? "!VOICE SERVERS:"
|
79
71
|
}
|
80
72
|
end
|
81
73
|
|
82
74
|
# Initialize the system by downloading status and vatsim data files
|
83
75
|
def download_files
|
84
|
-
if !File.exists?(
|
85
|
-
download_to_file STATUS_URL,
|
76
|
+
if !File.exists?(STATUS_FILE_PATH) or File.mtime(STATUS_FILE_PATH) < Time.now - STATUS_DOWNLOAD_INTERVAL
|
77
|
+
download_to_file STATUS_URL, STATUS_FILE_PATH
|
86
78
|
end
|
87
79
|
|
88
|
-
if !File.exists?(
|
89
|
-
download_to_file random_data_url,
|
80
|
+
if !File.exists?(DATA_FILE_PATH) or File.mtime(DATA_FILE_PATH) < Time.now - DATA_DOWNLOAD_INTERVAL
|
81
|
+
download_to_file random_data_url, DATA_FILE_PATH
|
90
82
|
end
|
91
83
|
end
|
92
84
|
|
@@ -107,7 +99,7 @@ module Vatsim
|
|
107
99
|
# Return random vatsim data url from status file
|
108
100
|
def random_data_url
|
109
101
|
url0s = Array.new
|
110
|
-
file = File.open(
|
102
|
+
file = File.open(STATUS_FILE_PATH)
|
111
103
|
file.each {|line|
|
112
104
|
if line.start_with? "url0"
|
113
105
|
url0s << line.split("=").last
|
data/lib/vatsim/pilot.rb
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
module Vatsim
|
2
|
+
# Connected pilot
|
3
|
+
class Pilot < Client
|
4
|
+
attr_reader :callsign, :cid, :realname, :clienttype, :latitude, :longitude, :altitude, :groundspeed, :planned_aircraft, :planned_tascruise, :planned_depairport, :planned_altitude, :planned_destairport, :server, :protrevision, :rating, :transponder, :planned_revision, :planned_flighttype, :planned_deptime, :planned_actdeptime, :planned_hrsenroute, :planned_minenroute, :planned_hrsfuel, :planned_minfuel, :planned_altairport, :planned_remarks, :planned_route, :planned_depairport_lat, :planned_depairport_lon, :planned_destairport_lat, :planned_destairport_lon, :time_logon, :heading, :QNH_iHg, :QNH_Mb
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
data/lib/vatsim/prefile.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Vatsim
|
2
2
|
# Prefiled clients
|
3
3
|
class Prefile
|
4
|
-
attr_reader :callsign, :cid, :realname, :
|
4
|
+
attr_reader :callsign, :cid, :realname, :planned_aircraft, :planned_tascruise, :planned_depairport, :planned_altitude, :planned_destairport, :planned_revision, :planned_flighttype, :planned_deptime, :planned_actdeptime, :planned_hrsenroute, :planned_minenroute, :planned_hrsfuel, :planned_minfuel, :planned_altairport, :planned_remarks, :planned_route, :planned_depairport_lat, :planned_depairport_lon, :planned_destairport_lat, :planned_destairport_lon
|
5
5
|
|
6
6
|
def initialize line
|
7
7
|
attributes = [:callsign, :cid, :realname, :clienttype, :frequency, :latitude, :longitude, :altitude, :groundspeed, :planned_aircraft, :planned_tascruise, :planned_depairport, :planned_altitude, :planned_destairport, :server, :protrevision, :rating, :transponder, :facilitytype, :visualrange, :planned_revision, :planned_flighttype, :planned_deptime, :planned_actdeptime, :planned_hrsenroute, :planned_minenroute, :planned_hrsfuel, :planned_minfuel, :planned_altairport, :planned_remarks, :planned_route, :planned_depairport_lat, :planned_depairport_lon, :planned_destairport_lat, :planned_destairport_lon, :atis_message, :time_last_atis_received, :time_logon, :heading, :QNH_iHg, :QNH_Mb]
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Vatsim
|
2
|
+
# Server to which clients can connect
|
3
|
+
class Server
|
4
|
+
|
5
|
+
attr_reader :ident, :hostname_or_IP, :location, :name, :clients_connection_allowed
|
6
|
+
|
7
|
+
# Initialize Server with colon delimited line from vatsim-data.txt format
|
8
|
+
def initialize line
|
9
|
+
attributes = [:ident, :hostname_or_IP, :location, :name, :clients_connection_allowed]
|
10
|
+
|
11
|
+
line_split = line.split(":")
|
12
|
+
|
13
|
+
attributes.each_with_index.map { |attribute, index|
|
14
|
+
instance_variable_set("@#{attribute}", line_split[index]) if self.respond_to?(attribute)
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
data/lib/vatsim/version.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
module Vatsim
|
2
|
+
# Voice server that clients can use
|
3
|
+
class VoiceServer
|
4
|
+
|
5
|
+
attr_reader :hostname_or_IP, :location, :name, :clients_connection_allowed, :type_of_voice_server
|
6
|
+
|
7
|
+
# Initialize Server with colon delimited line from vatsim-data.txt format
|
8
|
+
def initialize line
|
9
|
+
attributes = [:hostname_or_IP, :location, :name, :clients_connection_allowed, :type_of_voice_server]
|
10
|
+
|
11
|
+
line_split = line.split(":")
|
12
|
+
|
13
|
+
attributes.each_with_index.map { |attribute, index|
|
14
|
+
instance_variable_set("@#{attribute}", line_split[index]) if self.respond_to?(attribute)
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,16 @@
|
|
1
|
+
unless ENV['CI']
|
2
|
+
require 'simplecov'
|
3
|
+
SimpleCov.start do
|
4
|
+
add_filter 'spec'
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
1
8
|
require 'vatsim'
|
9
|
+
require 'webmock/rspec'
|
2
10
|
|
3
11
|
RSpec.configure do |config|
|
4
12
|
config.treat_symbols_as_metadata_keys_with_true_values = true
|
5
13
|
config.run_all_when_everything_filtered = true
|
6
14
|
config.filter_run :focus
|
7
15
|
end
|
16
|
+
|
data/spec/vatsim_spec.rb
CHANGED
@@ -1,32 +1,150 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Vatsim::VERSION do
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
it "should return a non nil version" do
|
5
|
+
Vatsim::VERSION.should_not == nil
|
6
|
+
end
|
7
7
|
end
|
8
8
|
|
9
9
|
describe Vatsim::Data do
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
10
|
+
|
11
|
+
before do
|
12
|
+
WebMock.disable_net_connect!
|
13
|
+
File.delete(Vatsim::Data::STATUS_FILE_PATH) if File.exists?(Vatsim::Data::STATUS_FILE_PATH)
|
14
|
+
File.delete(Vatsim::Data::DATA_FILE_PATH) if File.exists?(Vatsim::Data::DATA_FILE_PATH)
|
15
|
+
stub_request(:get, "http://status.vatsim.net/status.txt").to_return(:body => File.new(File.dirname(__FILE__) + "/vatsim-status.txt"))
|
16
|
+
stub_request(:get, "http://www.net-flyer.net/DataFeed/vatsim-data.txt").to_return(:body => File.new(File.dirname(__FILE__) + "/vatsim-data.txt"))
|
17
|
+
stub_request(:get, "http://www.klain.net/sidata/vatsim-data.txt").to_return(:body => File.new(File.dirname(__FILE__) + "/vatsim-data.txt"))
|
18
|
+
stub_request(:get, "http://fsproshop.com/servinfo/vatsim-data.txt").to_return(:body => File.new(File.dirname(__FILE__) + "/vatsim-data.txt"))
|
19
|
+
stub_request(:get, "http://info.vroute.net/vatsim-data.txt").to_return(:body => File.new(File.dirname(__FILE__) + "/vatsim-data.txt"))
|
20
|
+
stub_request(:get, "http://data.vattastic.com/vatsim-data.txt").to_return(:body => File.new(File.dirname(__FILE__) + "/vatsim-data.txt"))
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return correct number of pilots, prefiles, servers, and atc" do
|
24
|
+
data = Vatsim::Data.new
|
25
|
+
data.pilots.length.should equal(379)
|
26
|
+
data.atc.length.should equal(122)
|
27
|
+
data.servers.length.should equal(8)
|
28
|
+
data.voice_servers.length.should equal(11)
|
19
29
|
data.prefiles.length.should equal(6)
|
20
|
-
|
30
|
+
end
|
21
31
|
|
22
32
|
it "should return correct values for general properties" do
|
23
|
-
|
33
|
+
data = Vatsim::Data.new
|
24
34
|
data.general.length.should equal(5)
|
25
35
|
data.general["version"].should == "8"
|
26
36
|
data.general["reload"].should == "2"
|
27
37
|
data.general["update"].should == "20120504011745"
|
28
38
|
data.general["atis_allow_min"].should == "5"
|
29
39
|
data.general["connected_clients"].should == "502"
|
30
|
-
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should return correct values for a specific pilot" do
|
43
|
+
data = Vatsim::Data.new
|
44
|
+
pilot = data.pilots[19]
|
45
|
+
pilot.callsign.should == "ACA021"
|
46
|
+
pilot.cid.should == "1216364"
|
47
|
+
pilot.realname.should == "Sam Bouz CYUL"
|
48
|
+
pilot.clienttype.should == "PILOT"
|
49
|
+
pilot.latitude.should == "52.36574"
|
50
|
+
pilot.longitude.should == "38.94341"
|
51
|
+
pilot.altitude.should == "33799"
|
52
|
+
pilot.groundspeed.should == "486"
|
53
|
+
pilot.planned_aircraft.should == "H/A333"
|
54
|
+
pilot.planned_tascruise.should == "480"
|
55
|
+
pilot.planned_depairport.should == "UUEE"
|
56
|
+
pilot.planned_altitude.should == "FL340"
|
57
|
+
pilot.planned_destairport.should == "LTAC"
|
58
|
+
pilot.server.should == "EUROPE-CW2"
|
59
|
+
pilot.protrevision.should == "100"
|
60
|
+
pilot.rating.should == "1"
|
61
|
+
pilot.transponder.should == "3437"
|
62
|
+
pilot.planned_revision.should == "0"
|
63
|
+
pilot.planned_flighttype.should == "I"
|
64
|
+
pilot.planned_deptime.should == "0"
|
65
|
+
pilot.planned_actdeptime.should == "0"
|
66
|
+
pilot.planned_hrsenroute.should == "2"
|
67
|
+
pilot.planned_minenroute.should == "38"
|
68
|
+
pilot.planned_hrsfuel.should == "4"
|
69
|
+
pilot.planned_minfuel.should == "7"
|
70
|
+
pilot.planned_altairport.should == "LTBA"
|
71
|
+
pilot.planned_remarks.should == " /T/"
|
72
|
+
pilot.planned_route.should == "KS LUKOS 6E8 LO 6E18 DK CRDR6 FV R11 TS R808 UUOO R368 KUBOK UA279 GR UP29 SUMOL UW100 INB UM853 BUK UW71 ILHAN"
|
73
|
+
pilot.planned_depairport_lat.should == "0"
|
74
|
+
pilot.planned_depairport_lon.should == "0"
|
75
|
+
pilot.planned_destairport_lat.should == "0"
|
76
|
+
pilot.planned_destairport_lon.should == "0"
|
77
|
+
pilot.time_logon.should == "20120503235431"
|
78
|
+
pilot.heading.should == "169"
|
79
|
+
pilot.QNH_iHg.should == "29.7"
|
80
|
+
pilot.QNH_Mb.should == "1005"
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should return correct values for a specific prefile" do
|
84
|
+
data = Vatsim::Data.new
|
85
|
+
prefile = data.prefiles[1]
|
86
|
+
prefile.callsign.should == "DAV10674"
|
87
|
+
prefile.cid.should == "1207105"
|
88
|
+
prefile.realname.should == "Randy Harrill KCMO"
|
89
|
+
prefile.planned_aircraft.should == "T/MD90/W"
|
90
|
+
prefile.planned_tascruise.should == "360"
|
91
|
+
prefile.planned_depairport.should == "KATL"
|
92
|
+
prefile.planned_altitude.should == "F290"
|
93
|
+
prefile.planned_destairport.should == "KMIA"
|
94
|
+
prefile.planned_revision.should == "0"
|
95
|
+
prefile.planned_flighttype.should == "I"
|
96
|
+
prefile.planned_deptime.should == "45"
|
97
|
+
prefile.planned_actdeptime.should == "45"
|
98
|
+
prefile.planned_hrsenroute.should == "1"
|
99
|
+
prefile.planned_minenroute.should == "50"
|
100
|
+
prefile.planned_hrsfuel.should == "2"
|
101
|
+
prefile.planned_minfuel.should == "50"
|
102
|
+
prefile.planned_altairport.should == "KPBI"
|
103
|
+
prefile.planned_remarks.should == "+VFPS+/V/ "
|
104
|
+
prefile.planned_route.should == "THRSR6 LUCKK SZW SSCOT1"
|
105
|
+
prefile.planned_depairport_lat.should == "0"
|
106
|
+
prefile.planned_depairport_lon.should == "0"
|
107
|
+
prefile.planned_destairport_lat.should == "0"
|
108
|
+
prefile.planned_destairport_lon.should == "0"
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should return correct values for a specific ATC" do
|
112
|
+
data = Vatsim::Data.new
|
113
|
+
atc = data.atc[20]
|
114
|
+
atc.callsign.should == "CZEG_CTR"
|
115
|
+
atc.cid.should == "1096034"
|
116
|
+
atc.realname.should == "Brett Zubot"
|
117
|
+
atc.clienttype.should == "ATC"
|
118
|
+
atc.frequency.should == "132.850"
|
119
|
+
atc.latitude.should == "53.18500"
|
120
|
+
atc.longitude.should == "-113.86667"
|
121
|
+
atc.server.should == "USA-N"
|
122
|
+
atc.protrevision.should == "100"
|
123
|
+
atc.rating.should == "5"
|
124
|
+
atc.facilitytype.should == "6"
|
125
|
+
atc.visualrange.should == "600"
|
126
|
+
atc.time_logon.should == "20120504004825"
|
127
|
+
end
|
128
|
+
|
129
|
+
it "should return correct values for a specific server" do
|
130
|
+
data = Vatsim::Data.new
|
131
|
+
server = data.servers[6]
|
132
|
+
server.ident.should == "USA-N"
|
133
|
+
server.hostname_or_IP.should == "204.244.237.21"
|
134
|
+
server.location.should == "Vancouver, CANADA"
|
135
|
+
server.name.should == "USA North"
|
136
|
+
server.clients_connection_allowed.should == "1"
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should return correct values for a specific voice server" do
|
140
|
+
data = Vatsim::Data.new
|
141
|
+
voice_server = data.voice_servers[4]
|
142
|
+
voice_server.hostname_or_IP.should == "voice.zhuartcc.net"
|
143
|
+
voice_server.location.should == "Sponsored by Houston ARTCC"
|
144
|
+
voice_server.name.should == "ZHU-ARTCC"
|
145
|
+
voice_server.clients_connection_allowed.should == "1"
|
146
|
+
voice_server.type_of_voice_server.should == "R"
|
147
|
+
end
|
148
|
+
|
31
149
|
end
|
32
150
|
|
data/vatsim.gemspec
CHANGED
@@ -10,4 +10,8 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.files = `git ls-files`.split("\n")
|
11
11
|
s.require_paths = ['lib']
|
12
12
|
s.homepage = 'https://github.com/tdawe/vatsim'
|
13
|
+
s.add_development_dependency 'rake'
|
14
|
+
s.add_development_dependency 'rspec'
|
15
|
+
s.add_development_dependency 'webmock'
|
16
|
+
s.add_development_dependency 'simplecov'
|
13
17
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vatsim
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,72 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
13
|
-
dependencies:
|
12
|
+
date: 2012-05-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rspec
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: webmock
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: simplecov
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
14
78
|
description: Ruby gem to retrieve Pilot/ATC online status
|
15
79
|
email: trevor.dawe@gmail.com
|
16
80
|
executables: []
|
@@ -19,13 +83,19 @@ extra_rdoc_files: []
|
|
19
83
|
files:
|
20
84
|
- .gitignore
|
21
85
|
- .rspec
|
86
|
+
- .travis.yml
|
87
|
+
- Gemfile
|
22
88
|
- README.md
|
23
89
|
- Rakefile
|
24
90
|
- lib/vatsim.rb
|
91
|
+
- lib/vatsim/atc.rb
|
25
92
|
- lib/vatsim/client.rb
|
26
93
|
- lib/vatsim/data.rb
|
94
|
+
- lib/vatsim/pilot.rb
|
27
95
|
- lib/vatsim/prefile.rb
|
96
|
+
- lib/vatsim/server.rb
|
28
97
|
- lib/vatsim/version.rb
|
98
|
+
- lib/vatsim/voice_server.rb
|
29
99
|
- spec/spec_helper.rb
|
30
100
|
- spec/vatsim-data.txt
|
31
101
|
- spec/vatsim-status.txt
|