current_metar 0.1.1 → 0.1.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.
- data/lib/current_metar/metar.rb +22 -18
- metadata +31 -51
data/lib/current_metar/metar.rb
CHANGED
@@ -1,51 +1,55 @@
|
|
1
1
|
class CurrentMetar::Metar
|
2
2
|
require 'rexml/document'
|
3
|
-
|
3
|
+
require 'time'
|
4
|
+
attr_accessor :wind_speed, :wind_direction, :wind_gust_speed, :observation_time, :visibility, :temperature, :available, :no_results, :observation_time
|
4
5
|
attr_reader :icao
|
5
6
|
|
6
|
-
METAR_ATTRIBUTE_MAPPING = {
|
7
|
-
:wind_speed => "wind_speed_kt",
|
8
|
-
:wind_direction => "wind_dir_degrees",
|
9
|
-
:wind_gust_speed => "wind_gust_kt",
|
10
|
-
:visibility => "visibility_statute_mi"
|
11
|
-
}
|
7
|
+
METAR_ATTRIBUTE_MAPPING = {
|
8
|
+
:wind_speed => "wind_speed_kt",
|
9
|
+
:wind_direction => "wind_dir_degrees",
|
10
|
+
:wind_gust_speed => "wind_gust_kt",
|
11
|
+
:visibility => "visibility_statute_mi"
|
12
|
+
}
|
12
13
|
|
13
14
|
def initialize(icao)
|
14
15
|
@icao = icao
|
15
16
|
end
|
16
17
|
|
17
18
|
def self.get_metar(icao)
|
18
|
-
|
19
|
-
metar = CurrentMetar::Metar.new(icao)
|
19
|
+
|
20
|
+
metar = CurrentMetar::Metar.new(icao)
|
20
21
|
begin
|
21
|
-
metar_response_body = REXML::Document.new(CurrentMetar::Request.query_adds(metar.icao))
|
22
|
+
metar_response_body = REXML::Document.new(CurrentMetar::Request.query_adds(metar.icao))
|
22
23
|
if metar_response_body.root.elements['data'].attributes.get_attribute('num_results').value == '0'
|
23
|
-
metar.available = false
|
24
|
+
metar.available = false
|
24
25
|
metar.no_results = true
|
25
26
|
else
|
26
27
|
metar_response_body.root.elements.each("data/METAR") do |metar_xml|
|
27
28
|
unless metar_xml.elements['temp_c'].nil?
|
28
29
|
metar.temperature = (9/5.0 * metar_xml.elements['temp_c'].text.to_i + 32).round
|
29
30
|
end
|
31
|
+
unless metar_xml.elements['observation_time'].nil?
|
32
|
+
metar.observation_time = Time.parse(metar_xml.elements['observation_time'].text)
|
33
|
+
end
|
30
34
|
metar.parse_standard_attributes(metar_xml)
|
31
35
|
end
|
32
36
|
metar.available = true
|
33
37
|
metar.no_results = false
|
34
38
|
end
|
35
39
|
rescue
|
36
|
-
metar.available = false
|
40
|
+
metar.available = false
|
37
41
|
metar.no_results = false
|
38
42
|
ensure
|
39
43
|
return metar
|
40
44
|
end
|
41
45
|
end
|
42
46
|
|
43
|
-
def parse_standard_attributes(metar_xml)
|
47
|
+
def parse_standard_attributes(metar_xml)
|
44
48
|
METAR_ATTRIBUTE_MAPPING.each do |key, value|
|
45
|
-
unless metar_xml.elements[value].nil?
|
46
|
-
self.send( "#{key}=", metar_xml.elements[value].text)
|
47
|
-
end
|
49
|
+
unless metar_xml.elements[value].nil?
|
50
|
+
self.send( "#{key}=", metar_xml.elements[value].text)
|
51
|
+
end
|
48
52
|
end
|
49
|
-
end
|
50
|
-
|
53
|
+
end
|
54
|
+
|
51
55
|
end
|
metadata
CHANGED
@@ -1,83 +1,63 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: current_metar
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 1
|
10
|
-
version: 0.1.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Nathan Humbert
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-11-08 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: fakeweb
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &16209180 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :development
|
33
|
-
|
34
|
-
|
35
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *16209180
|
25
|
+
description: current_metar queries the ADDS Experimental server to pull back current
|
26
|
+
weather data for a specific reporting station
|
27
|
+
email:
|
36
28
|
- nathan.humbert@gmail.com
|
37
29
|
executables: []
|
38
|
-
|
39
30
|
extensions: []
|
40
|
-
|
41
31
|
extra_rdoc_files: []
|
42
|
-
|
43
|
-
files:
|
32
|
+
files:
|
44
33
|
- README
|
45
34
|
- MIT_LICENSE
|
46
35
|
- lib/current_metar/metar.rb
|
47
36
|
- lib/current_metar/request.rb
|
48
37
|
- lib/current_metar.rb
|
49
38
|
homepage: https://github.com/nathanhumbert/current_metar
|
50
|
-
licenses:
|
39
|
+
licenses:
|
51
40
|
- MIT
|
52
41
|
post_install_message:
|
53
42
|
rdoc_options: []
|
54
|
-
|
55
|
-
require_paths:
|
43
|
+
require_paths:
|
56
44
|
- lib
|
57
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
46
|
none: false
|
59
|
-
requirements:
|
60
|
-
- -
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
|
63
|
-
|
64
|
-
- 0
|
65
|
-
version: "0"
|
66
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ! '>='
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0'
|
51
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
52
|
none: false
|
68
|
-
requirements:
|
69
|
-
- -
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
|
72
|
-
segments:
|
73
|
-
- 0
|
74
|
-
version: "0"
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
75
57
|
requirements: []
|
76
|
-
|
77
58
|
rubyforge_project:
|
78
|
-
rubygems_version: 1.
|
59
|
+
rubygems_version: 1.8.10
|
79
60
|
signing_key:
|
80
61
|
specification_version: 3
|
81
62
|
summary: Query current metar data from the ADDS Experimental data server.
|
82
63
|
test_files: []
|
83
|
-
|