metar-parser 0.2.1 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/Rakefile +1 -1
  2. data/lib/metar/raw.rb +45 -16
  3. data/lib/metar/version.rb +3 -3
  4. metadata +5 -5
data/Rakefile CHANGED
@@ -32,5 +32,5 @@ end
32
32
 
33
33
  desc "Publish a new version of the gem"
34
34
  task :release => :build do
35
- system "gem push metar-parser-#{Metar::VERSION}"
35
+ system "gem push metar-parser-#{Metar::VERSION::STRING}.gem"
36
36
  end
data/lib/metar/raw.rb CHANGED
@@ -5,26 +5,27 @@ module Metar
5
5
 
6
6
  class Raw
7
7
 
8
+ @@connection = nil
9
+
8
10
  class << self
9
11
 
10
- @connection = nil
11
12
 
12
13
  def cache_connection
13
- @connection = connection
14
+ @@connection = connection
14
15
  end
15
16
 
16
17
  def connection
17
- return @connection if @connection
18
- connection = Net::FTP.new('tgftp.nws.noaa.gov')
19
- connection.login
20
- connection.chdir('data/observations/metar/stations')
21
- connection.passive = true
22
- connection
18
+ return @@connection if @@connection
19
+ @@connection = Net::FTP.new('tgftp.nws.noaa.gov')
20
+ @@connection.login
21
+ @@connection.chdir('data/observations/metar/stations')
22
+ @@connection.passive = true
23
+ @@connection
23
24
  end
24
25
 
25
- def fetch(cccc)
26
+ def fetch( cccc )
26
27
  s = ''
27
- connection.retrbinary("RETR #{ cccc }.TXT", 1024) do |chunk|
28
+ connection.retrbinary( "RETR #{ cccc }.TXT", 1024 ) do | chunk |
28
29
  s << chunk
29
30
  end
30
31
  s
@@ -32,16 +33,44 @@ module Metar
32
33
 
33
34
  end
34
35
 
35
- attr_reader :cccc, :raw, :metar, :time
36
- alias :to_s :metar
36
+ attr_reader :cccc
37
37
 
38
38
  # Station is a string containing the CCCC code, or
39
39
  # an object with a 'cccc' method which returns the code
40
- def initialize(station, raw = nil)
40
+ def initialize( station, data = nil )
41
41
  @cccc = station.respond_to?(:cccc) ? station.cccc : station
42
- @raw = raw || Raw.fetch(@cccc)
43
- time, @metar = @raw.split("\n")
44
- @time = Time.parse(time)
42
+ parse data if data
43
+ end
44
+
45
+ def data
46
+ fetch
47
+ @data
48
+ end
49
+ # #raw is deprecated, use #data
50
+ alias :raw :data
51
+
52
+ def time
53
+ fetch
54
+ @time
55
+ end
56
+
57
+ def metar
58
+ fetch
59
+ @metar
60
+ end
61
+ alias :to_s :metar
62
+
63
+ private
64
+
65
+ def fetch
66
+ return if @data
67
+ parse Raw.fetch( @cccc )
68
+ end
69
+
70
+ def parse( data )
71
+ @data = data
72
+ time, @metar = @data.split( "\n" )
73
+ @time = Time.parse( time )
45
74
  end
46
75
 
47
76
  end
data/lib/metar/version.rb CHANGED
@@ -2,9 +2,9 @@ module Metar
2
2
 
3
3
  module VERSION #:nodoc:
4
4
  MAJOR = 0
5
- MINOR = 2
6
- TINY = 1
7
-
5
+ MINOR = 9
6
+ TINY = 7
7
+
8
8
  STRING = [MAJOR, MINOR, TINY].join('.')
9
9
  end
10
10
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metar-parser
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 53
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 1
10
- version: 0.2.1
8
+ - 9
9
+ - 7
10
+ version: 0.9.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Joe Yates
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-04 00:00:00 +01:00
18
+ date: 2011-07-01 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies: []
21
21