vatsim 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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 [![Build Status](https://secure.travis-ci.org/tdawe/vatsim.png?branch=master)](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
|