vatsim_online 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,6 +2,15 @@
2
2
 
3
3
  ## Changelog
4
4
 
5
+ ### v. 0.6.0 - 08 October 2012
6
+
7
+ * The `vatsim_online` method now also supports a comma-separated list of full or
8
+ partial ICAO codes like this: `"LO,LB".vatsim_online`. This allows you to pull the
9
+ information for multiple airports or FIRs in a single request
10
+ * The comma-seprated list is not sensitive to whitespace, meaning you can use
11
+ `"LO,LB".vatsim_online` or `"LO, LB".vatsim_online` or `"LO , LB".vatsim_online` with
12
+ the same result
13
+
5
14
  ### v. 0.5.3 - 30 September 2012
6
15
 
7
16
  * fixed bug with exceptions on missing ATC remark
data/README.md CHANGED
@@ -32,8 +32,8 @@ Or install it yourself as:
32
32
 
33
33
  This gem provides one public method: `vatsim_online`, which can be applied to
34
34
  any string (or variable containing a string) representing a full or partial ICAO
35
- code. The provided ICAO code or fragment will be used as a search criteria and
36
- matched against the current vatsim data.
35
+ code or a comma-separated list of ICAO codes. The provided ICAO code or fragment
36
+ will be used as a search criteria and matched against the current vatsim data.
37
37
 
38
38
  For example if you want to retrieve all active stations (ATC positions and pilots)
39
39
  for Vienna airport (ICAO: LOWW), then you can use:
@@ -42,6 +42,9 @@ for Vienna airport (ICAO: LOWW), then you can use:
42
42
  # Attaching the method directly to a string:
43
43
  "LOWW".vatsim_online
44
44
 
45
+ # Attaching the method directly to a list of ICAOs:
46
+ "LOWW, LOWK".vatsim_online
47
+
45
48
  # Attaching the method to a variable containing a string:
46
49
  icao = "LOWW"
47
50
  icao.vatsim_online
@@ -59,7 +62,12 @@ airports and ATC station callsigns start with `"LO"`:
59
62
  # Attaching the method to a variable containing a string:
60
63
  icao = "LO"
61
64
  icao.vatsim_online
65
+
66
+ # Attaching the method to a list of ICAOs:
67
+ icao = "LO, LB"
68
+ icao.vatsim_online
62
69
  ```
70
+
63
71
  When parsing the pilot stations for particular airport or area, the library will
64
72
  return the pilots that are flying **to or from** the given area or airport,
65
73
  not the current enroute stations. The discovery algorithm is based on **origin
@@ -289,9 +297,23 @@ libraries too.
289
297
  * The ICAO string used as a search criteria **is not** case sensitive
290
298
  * Pilot stations returned are based on origin and destination airports, the
291
299
  current algorithm does not evaluate enroute flights.
300
+ * When attaching the `vatsim_online` method to a comma-separated list of full or
301
+ partial ICAO identifiers it does not matter whether there will be any spaces in
302
+ front or after the identifiers or the commas, i.e. you can use
303
+ `"LO,LB".vatsim_online` or `"LO, LB".vatsim_online` or `"LO , LB".vatsim_online` with
304
+ the same result.
292
305
 
293
306
  ## Changelog
294
307
 
308
+ ### v. 0.6.0 - 08 October 2012
309
+
310
+ * The `vatsim_online` method now also supports a comma-separated list of full or
311
+ partial ICAO codes like this: `"LO,LB".vatsim_online`. This allows you to pull the
312
+ information for multiple airports or FIRs in a single request
313
+ * The comma-seprated list is not sensitive to whitespace, meaning you can use
314
+ `"LO,LB".vatsim_online` or `"LO, LB".vatsim_online` or `"LO , LB".vatsim_online` with
315
+ the same result
316
+
295
317
  ### v. 0.5.3 - 30 September 2012
296
318
 
297
319
  * fixed bug with exceptions on missing ATC remark
@@ -14,7 +14,7 @@ module VatsimTools
14
14
  def initialize(icao, args = nil)
15
15
  VatsimTools::DataDownloader.new
16
16
  args.class == Hash ? @role = determine_role(args) : @role = "all"
17
- @icao = icao.upcase
17
+ @icao = icao.upcase.split(',').each {|s| s.strip!}
18
18
  @excluded = args[:exclude].upcase if args && args[:exclude]
19
19
  @gcmap_width = args[:gcmap_width] if args && args[:gcmap_width]
20
20
  @gcmap_height = args[:gcmap_height] if args && args[:gcmap_height]
@@ -31,8 +31,10 @@ module VatsimTools
31
31
  stations = []
32
32
  CSV.foreach(LOCAL_DATA, :col_sep =>':') do |row|
33
33
  callsign, origin, destination, client = row[0].to_s, row[11].to_s, row[13].to_s, row[3].to_s
34
- stations << row if (callsign[0...@icao.length] == @icao && client == "ATC") unless @role == "pilot"
35
- stations << row if (origin[0...@icao.length] == @icao || destination[0...@icao.length] == @icao) unless @role == "atc"
34
+ for icao in @icao
35
+ stations << row if (callsign[0...icao.length] == icao && client == "ATC") unless @role == "pilot"
36
+ stations << row if (origin[0...icao.length] == icao || destination[0...icao.length] == icao) unless @role == "atc"
37
+ end
36
38
  end
37
39
  stations
38
40
  end
@@ -49,7 +51,9 @@ module VatsimTools
49
51
  def sorted_station_objects
50
52
  atc = []; pilots = []; arrivals = []; departures = []
51
53
  station_objects.each {|sobj| sobj.role == "ATC" ? atc << sobj : pilots << sobj}
52
- pilots.each {|p| p.origin[0...@icao.length] == @icao ? departures << p : arrivals << p }
54
+ for icao in @icao
55
+ pilots.each {|p| p.origin[0...icao.length] == icao ? departures << p : arrivals << p }
56
+ end
53
57
  atc.delete_if {|a| @excluded && a.callsign[0...@excluded.length] == @excluded }
54
58
  {:atc => atc, :pilots => pilots, :arrivals => arrivals, :departures => departures}
55
59
  end
@@ -1,3 +1,3 @@
1
1
  module VatsimOnline
2
- VERSION = "0.5.3"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -134,6 +134,26 @@ describe VatsimTools::StationParser do
134
134
  target.new(icao, args).sorted_station_objects[:atc].size.should eq(2)
135
135
  end
136
136
 
137
+ it "should support multiple icaos" do
138
+ gem_data_file
139
+ icao = "LB"
140
+ target.new(icao).sorted_station_objects[:atc].size.should eq(4)
141
+ target.new(icao).sorted_station_objects[:pilots].size.should eq(2)
142
+ icao = "LO"
143
+ target.new(icao).sorted_station_objects[:pilots].size.should eq(12)
144
+ target.new(icao).sorted_station_objects[:atc].size.should eq(0)
145
+ gem_data_file
146
+ icao = "LO,LB"
147
+ target.new(icao).sorted_station_objects[:pilots].size.should eq(14)
148
+ target.new(icao).sorted_station_objects[:atc].size.should eq(4)
149
+ icao = "LO, LB"
150
+ target.new(icao).sorted_station_objects[:pilots].size.should eq(14)
151
+ target.new(icao).sorted_station_objects[:atc].size.should eq(4)
152
+ icao = "LO , LB"
153
+ target.new(icao).sorted_station_objects[:pilots].size.should eq(14)
154
+ target.new(icao).sorted_station_objects[:atc].size.should eq(4)
155
+ end
156
+
137
157
  end
138
158
 
139
159
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vatsim_online
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-30 00:00:00.000000000 Z
12
+ date: 2012-10-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec