current_metar 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/current_metar/metar.rb +22 -18
  2. metadata +31 -51
@@ -1,51 +1,55 @@
1
1
  class CurrentMetar::Metar
2
2
  require 'rexml/document'
3
- attr_accessor :wind_speed, :wind_direction, :wind_gust_speed, :observation_time, :visibility, :temperature, :available, :no_results
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
- hash: 25
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
- date: 2011-06-18 00:00:00 Z
19
- dependencies:
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
- prerelease: false
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
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :development
33
- version_requirements: *id001
34
- description: current_metar queries the ADDS Experimental server to pull back current weather data for a specific reporting station
35
- email:
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
- hash: 3
63
- segments:
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
- hash: 3
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.7.2
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
-