weatherzone 0.6.5 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,7 +5,7 @@ module Weatherzone
5
5
  class RequestFailed < Exception
6
6
  attr_reader :message, :original_exception
7
7
  def initialize(url, original_exception)
8
- @message = "Failed to retreive #{url} and no cached version available"
8
+ @message = "Failed to retreive #{url} and no cached version available"
9
9
  @original_exception = original_exception
10
10
  end
11
11
  end
@@ -19,25 +19,19 @@ module Weatherzone
19
19
 
20
20
  DEFAULT_TIMEOUT_AFTER = 1
21
21
 
22
- include Singleton
23
-
24
22
  attr_accessor :username, :password, :url, :keygen, :logger, :timeout_after
25
23
 
26
- def initialize
27
- @logger = Logger.new(STDOUT)
28
- @logger.level = Logger::DEBUG
24
+ def initialize(username=nil, password=nil, keygen=nil, options={})
25
+ @logger = Logger.new(STDOUT)
26
+ @logger.level = Logger::DEBUG
27
+ @username = username
28
+ @password = password
29
+ @url = options[:url]
30
+ @keygen = keygen
31
+ @logger = options[:logger]
32
+ @timeout_after = options[:timeout_after] || DEFAULT_TIMEOUT_AFTER
29
33
  end
30
34
 
31
- def self.connect(username=nil, password=nil, options={}, &block)
32
- connection = Weatherzone::Connection.instance
33
- connection.username = username
34
- connection.password = password
35
- connection.url = options[:url]
36
- connection.keygen = block
37
- connection.logger = options[:logger]
38
- connection.timeout_after = options[:timeout_after] || DEFAULT_TIMEOUT_AFTER
39
- end
40
-
41
35
  def self.settings
42
36
  Weatherzone::Settings.instance
43
37
  end
@@ -47,7 +41,7 @@ module Weatherzone
47
41
  end
48
42
 
49
43
  def key
50
- @keygen.call
44
+ instance_eval &@keygen
51
45
  end
52
46
 
53
47
  def base_url
@@ -33,70 +33,68 @@ module Weatherzone
33
33
 
34
34
  def self.included(klass)
35
35
  klass.class_eval do
36
- @@connection = Weatherzone::Connection.instance
37
-
38
36
  class << self
39
37
  def parse_file(file_name)
40
38
  parse(File.open(file_name))
41
39
  end
42
40
 
43
- def find(options, location_code=nil)
44
- set_options(options)
45
- make_request(build_params(location_code, options))
41
+ def find(connection, options, location_code=nil)
42
+ set_options(connection, options)
43
+ make_request(connection, build_params(location_code, options))
46
44
  end
47
45
 
48
- def find_by_location_code(location_code, options={})
46
+ def find_by_location_code(connection, location_code, options={})
49
47
  options = options.dup
50
- find(options, location_code)
48
+ find(connection, options, location_code)
51
49
  end
52
50
 
53
- def find_by_twcid(twcid, options={})
51
+ def find_by_twcid(connection, twcid, options={})
54
52
  options = options.dup
55
53
  options.merge!(:params => "&lt=twcid&lc=#{twcid}")
56
- find(options)
54
+ find(connection, options)
57
55
  end
58
56
 
59
- def find_by_location_name(location_name, options={})
57
+ def find_by_location_name(connection, location_name, options={})
60
58
  options = options.dup
61
59
  location_name = location_name.gsub(" ", "%20").gsub("-", "%20")
62
60
  options.merge!(:params => "&lt=aploc&ln=#{location_name}")
63
- find(options)
61
+ find(connection, options)
64
62
  end
65
63
 
66
- def find_by_swellnet_code(swellnet_code, options={})
64
+ def find_by_swellnet_code(connection, swellnet_code, options={})
67
65
  options = options.dup
68
66
  options.merge!(:params => "&lt=swellnet&lc=#{swellnet_code}")
69
- find(options)
67
+ find(connection, options)
70
68
  end
71
69
 
72
- def find_by_location_filter(filter, options={})
70
+ def find_by_location_filter(connection, filter, options={})
73
71
  options = options.dup
74
72
  options.merge!(:params => "&lt=twcid&lf=#{filter}")
75
- find(options)
73
+ find(connection, options)
76
74
  end
77
75
 
78
- def find_by_district(district_code, options={})
76
+ def find_by_district(connection, district_code, options={})
79
77
  options = options.dup
80
78
  options.merge!(:params => "&lt=twcid&dist=#{district_code}")
81
- find(options)
79
+ find(connection, options)
82
80
  end
83
81
 
84
- def find_districts_by_state(state, options={})
82
+ def find_districts_by_state(connection, state, options={})
85
83
  options = options.dup
86
84
  options.merge!(:params => "&lt=dist&state=#{state}")
87
- find(options).countries.first.locations
85
+ find(connection, options).countries.first.locations
88
86
  end
89
87
 
90
- def find_radars_by_state(state, options={})
88
+ def find_radars_by_state(connection, state, options={})
91
89
  options = options.dup
92
90
  options.merge!(:params => "&lt=radar&links=1&ra=1&state=#{state}")
93
- find(options).countries.first.locations
91
+ find(connection, options).countries.first.locations
94
92
  end
95
93
 
96
- def find_by_radar_code(radar_code, options={})
94
+ def find_by_radar_code(connection, radar_code, options={})
97
95
  options = options.dup
98
96
  options.merge!(:params => "&lt=radar&lc=#{radar_code}&links=1&ra=1")
99
- find(options)
97
+ find(connection, options)
100
98
  end
101
99
 
102
100
  def build_params(location_code, options)
@@ -109,13 +107,13 @@ module Weatherzone
109
107
  end
110
108
 
111
109
  protected
112
- def set_options(options)
113
- @@connection.settings.weather_class ||= self
110
+ def set_options(connection, options)
111
+ connection.settings.weather_class ||= self
114
112
  self.temperature_unit = options.delete(:temperature_unit)
115
113
  end
116
114
 
117
- def make_request(params)
118
- response = @@connection.request(params)
115
+ def make_request(connection, params)
116
+ response = connection.request(params)
119
117
  parse(response)
120
118
  end
121
119
 
data/lib/weatherzone.rb CHANGED
@@ -35,5 +35,5 @@ require 'weatherzone/helpers/date_parser'
35
35
  require 'weatherzone/helpers/units'
36
36
 
37
37
  module Weatherzone
38
- VERSION = '0.6.5'
38
+ VERSION = '0.7.0'
39
39
  end
data/test/test_almanac.rb CHANGED
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + '/test_helper.rb'
3
3
  class TestAlmanac < Test::Unit::TestCase
4
4
  def setup
5
5
  super
6
- weather = Weather.find_by_location_code("9770")
6
+ weather = Weather.find_by_location_code(@connection, "9770")
7
7
  country = weather.countries.first
8
8
  location = country.locations.first
9
9
  @almanac = location.almanacs.first
@@ -4,7 +4,7 @@ class TestAlmanacPeriod < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  almanac = location.almanacs.first
@@ -4,7 +4,7 @@ class TestBuoyObservation < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @buoy_observation = location.buoy_observations.first
@@ -4,7 +4,7 @@ class TestClimatePeriod < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @climate_period = location.climate_periods.first
@@ -4,7 +4,7 @@ class TestConditions < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @conditions = location.conditions.first
@@ -3,10 +3,8 @@ require File.dirname(__FILE__) + '/test_helper.rb'
3
3
  class TestConnection < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
- Weatherzone::Connection.connect("username", "password", :url => "http://ws1.theweather.com.au/") do
7
- "sekret" + Weatherzone::Connection.instance.password
8
- end
9
- @connection = Weatherzone::Connection.instance
6
+ keygen = lambda { "sekret" + password }
7
+ @connection = Weatherzone::Connection.new("username", "password", keygen, :url => "http://ws1.theweather.com.au/")
10
8
  end
11
9
 
12
10
  def test_should_set_username
data/test/test_country.rb CHANGED
@@ -3,8 +3,12 @@ require File.dirname(__FILE__) + '/test_helper.rb'
3
3
  class TestCountry < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
- Weatherzone::Connection.instance.stubs(:request).returns( File.open("test/response/everything.xml") )
7
- weather = Weather.find_by_location_code("9770")
6
+ keygen = lambda do
7
+ eval(File.open(File.dirname(__FILE__) + '/../.wzkey.rb', 'r').read)
8
+ end
9
+ @connection = Weatherzone::Connection.new(ENV['WZ_USER'], ENV['WZ_PASS'], keygen, :url => ENV['WZ_URL'], :timeout_after => 10)
10
+ @connection.stubs(:request).returns( File.open("test/response/everything.xml") )
11
+ weather = Weather.find_by_location_code(@connection, "9770")
8
12
  @country = weather.countries.first
9
13
  end
10
14
 
@@ -4,7 +4,7 @@ class TestDailyObservtion < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @daily_observation = location.daily_observations.first
@@ -4,7 +4,7 @@ class TestDistrictForecast < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @district_forecast = location.district_forecasts.first
@@ -2,11 +2,16 @@ require File.dirname(__FILE__) + '/support/dependencies.rb'
2
2
 
3
3
  class TestExceptions < Test::Unit::TestCase
4
4
 
5
+ # These tests connect to the weatherzone webservice and therefore require your webservice credentials to function as expected.
6
+ # Set your credentials using the WZ_USER and WZ_PASS environment variables.
7
+ # Set your web service instance url using the WZ_URL envionment variable.
8
+ # Create a file .wzkey.rb in the root of this project containing your keygen algorithm.
9
+
5
10
  def setup
6
- Weatherzone::Connection.connect(ENV['WZ_USER'], ENV['WZ_PASS'], :url => ENV['WZ_URL'], :timeout_after => 10) do
7
- eval(File.open(File.dirname(__FILE__) + '/../.wzkey.rb', 'r').read)
11
+ keygen = lambda do
12
+ eval(File.open(File.dirname(__FILE__) + '/../.wzkey.rb', 'r').read)
8
13
  end
9
- @connection = Weatherzone::Connection.instance
14
+ @connection = Weatherzone::Connection.new(ENV['WZ_USER'], ENV['WZ_PASS'], keygen, :url => ENV['WZ_URL'], :timeout_after => 10)
10
15
  end
11
16
 
12
17
  def test_should_have_credentials
@@ -36,7 +41,7 @@ class TestExceptions < Test::Unit::TestCase
36
41
  def test_connection_should_raise_request_failed_on_timeout
37
42
  @connection.timeout_after = 0.1
38
43
  assert_raises Weatherzone::RequestFailed do
39
- Weather.find_by_location_name("Sydney")
44
+ Weather.find_by_location_name(@connection, "Sydney")
40
45
  end
41
46
  end
42
47
 
@@ -6,11 +6,12 @@ class TestFarenheitConversionFactor < Test::Unit::TestCase
6
6
  C22P7_AS_F = (BigDecimal("22.7") * BigDecimal("1.8")) + BigDecimal("32")
7
7
 
8
8
  def setup
9
- Weatherzone::Connection.connect("username", "password") do
10
- "sekret" + Weatherzone::Connection.instance.password
9
+ keygen = lambda do
10
+ eval(File.open(File.dirname(__FILE__) + '/../.wzkey.rb', 'r').read)
11
11
  end
12
- Weatherzone::Connection.instance.stubs(:request).returns( File.open("test/response/everything.xml") )
13
- weather = Weather.find_by_location_code("9770", :temperature_unit => "F")
12
+ @connection = Weatherzone::Connection.new(ENV['WZ_USER'], ENV['WZ_PASS'], keygen, :url => ENV['WZ_URL'], :timeout_after => 10)
13
+ @connection.stubs(:request).returns( File.open("test/response/everything.xml") )
14
+ weather = Weather.find_by_location_code(@connection, "9770", :temperature_unit => "F")
14
15
  country = weather.countries.first
15
16
  location = country.locations.first
16
17
  @forecast = location.forecasts.first
data/test/test_finder.rb CHANGED
@@ -17,44 +17,44 @@ class TestFinder < Test::Unit::TestCase
17
17
 
18
18
  def test_should_build_parameters
19
19
  SomeResource.expects(:build_params).with(9770, :include => [:forecast])
20
- SomeResource.find_by_location_code(9770, :include => [:forecast])
20
+ SomeResource.find_by_location_code(@connection, 9770, :include => [:forecast])
21
21
  end
22
22
 
23
23
  def test_should_make_request
24
- Weatherzone::Connection.instance.expects(:request).returns( File.open("test/response/everything.xml") )
25
- SomeResource.find_by_location_code(9770, :include => [:forecast])
24
+ @connection.expects(:request).returns( File.open("test/response/everything.xml") )
25
+ SomeResource.find_by_location_code(@connection, 9770, :include => [:forecast])
26
26
  end
27
27
 
28
28
  def test_should_parse_response
29
29
  f = File.open("test/response/everything.xml")
30
- Weatherzone::Connection.instance.stubs(:request).returns( f )
30
+ @connection.stubs(:request).returns( f )
31
31
  SomeResource.expects(:parse).with(f)
32
- SomeResource.find_by_location_code(9770, :include => [:forecast])
32
+ SomeResource.find_by_location_code(@connection, 9770, :include => [:forecast])
33
33
  end
34
34
 
35
35
  def test_should_find_by_location_name
36
36
  SomeResource.expects(:build_params).with(nil, :params => "&lt=aploc&ln=Sydney%20NSW")
37
- SomeResource.find_by_location_name("Sydney NSW")
37
+ SomeResource.find_by_location_name(@connection, "Sydney NSW")
38
38
  end
39
39
 
40
40
  def test_should_find_by_location_filter
41
41
  SomeResource.expects(:build_params).with(nil, :params => "&lt=twcid&lf=twccapcity")
42
- SomeResource.find_by_location_filter("twccapcity")
42
+ SomeResource.find_by_location_filter(@connection, "twccapcity")
43
43
  end
44
44
 
45
45
  def test_should_find_by_district
46
46
  SomeResource.expects(:build_params).with(nil, :params => "&lt=twcid&dist=N00")
47
- SomeResource.find_by_district("N00")
47
+ SomeResource.find_by_district(@connection, "N00")
48
48
  end
49
49
 
50
50
  def test_should_find_districts_by_state
51
51
  DistrictResource.expects(:build_params).with(nil, :params => "&lt=dist&state=nsw")
52
- DistrictResource.find_districts_by_state("nsw")
52
+ DistrictResource.find_districts_by_state(@connection, "nsw")
53
53
  end
54
54
 
55
55
  def test_should_find_using_arbitrary_include
56
56
  SomeResource.expects(:build_params).with(nil, :include => [:moon_phases])
57
- SomeResource.find(:include => [:moon_phases])
57
+ SomeResource.find(@connection, :include => [:moon_phases])
58
58
  end
59
59
 
60
60
  def test_should_include_location_parameter_string
@@ -4,7 +4,7 @@ class TestForecast < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @forecast = location.forecasts.first
data/test/test_helper.rb CHANGED
@@ -2,6 +2,10 @@ require File.dirname(__FILE__) + '/support/dependencies.rb'
2
2
 
3
3
  class Test::Unit::TestCase
4
4
  def setup
5
- Weatherzone::Connection.instance.stubs(:request).returns( File.open("test/response/everything.xml") )
5
+ keygen = lambda do
6
+ eval(File.open(File.dirname(__FILE__) + '/../.wzkey.rb', 'r').read)
7
+ end
8
+ @connection = Weatherzone::Connection.new(ENV['WZ_USER'], ENV['WZ_PASS'], keygen, :url => ENV['WZ_URL'], :timeout_after => 10)
9
+ @connection.stubs(:request).returns( File.open("test/response/everything.xml") )
6
10
  end
7
11
  end
@@ -4,7 +4,7 @@ class TestHistoricalObservtion < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @historical_observation = location.historical_observations.first
data/test/test_image.rb CHANGED
@@ -4,7 +4,7 @@ class TestImage < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @image = location.synoptic_charts.first
@@ -4,7 +4,7 @@ class TestLocation < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  @location = country.locations.first
10
10
  end
@@ -4,7 +4,7 @@ class TestMarineForecast < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @marine_forecast = location.marine_forecasts.first
@@ -4,7 +4,7 @@ class TestMarineSummary < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @marine_forecast = location.marine_forecasts.first
@@ -3,8 +3,12 @@ require File.dirname(__FILE__) + '/test_helper.rb'
3
3
  class TestMoonPhase < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
- Weatherzone::Connection.instance.stubs(:request).returns( File.open("test/response/moon.xml") )
7
- weather = Weather.find_by_location_code("9770")
6
+ keygen = lambda do
7
+ eval(File.open(File.dirname(__FILE__) + '/../.wzkey.rb', 'r').read)
8
+ end
9
+ @connection = Weatherzone::Connection.new(ENV['WZ_USER'], ENV['WZ_PASS'], keygen, :url => ENV['WZ_URL'], :timeout_after => 10)
10
+ @connection.stubs(:request).returns( File.open("test/response/moon.xml") )
11
+ weather = Weather.find_by_location_code(@connection, "9770")
8
12
  @moon_phases = weather.moon_phases
9
13
  @moon_phase = @moon_phases.first
10
14
  end
@@ -3,8 +3,12 @@ require File.dirname(__FILE__) + '/test_helper.rb'
3
3
  class TestNewsItem < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
- Weatherzone::Connection.instance.stubs(:request).returns( File.open("test/response/news.xml") )
7
- weather = Weather.find_by_location_code("9770")
6
+ keygen = lambda do
7
+ eval(File.open(File.dirname(__FILE__) + '/../.wzkey.rb', 'r').read)
8
+ end
9
+ @connection = Weatherzone::Connection.new(ENV['WZ_USER'], ENV['WZ_PASS'], keygen, :url => ENV['WZ_URL'], :timeout_after => 10)
10
+ @connection.stubs(:request).returns( File.open("test/response/news.xml") )
11
+ weather = Weather.find_by_location_code(@connection, "9770")
8
12
  @news_items = weather.news_items
9
13
  @news_item = @news_items.first
10
14
  end
@@ -4,7 +4,7 @@ class TestPointForecast < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  forecast = location.forecasts.first
@@ -4,7 +4,7 @@ class TestSnowReport < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @snow_report = location.snow_reports.first
@@ -4,7 +4,7 @@ class TestStateForecast < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @state_forecast = location.state_forecasts.first
@@ -4,7 +4,7 @@ class TestSurfReport < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @surf_report = location.surf_reports.first
data/test/test_tide.rb CHANGED
@@ -4,7 +4,7 @@ class TestTide < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  super
7
- weather = Weather.find_by_location_code("9770")
7
+ weather = Weather.find_by_location_code(@connection, "9770")
8
8
  country = weather.countries.first
9
9
  location = country.locations.first
10
10
  @tide = location.tides.first
@@ -3,11 +3,12 @@ require File.dirname(__FILE__) + '/test_helper.rb'
3
3
  class TestValueAndUnitHelpers < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
- Weatherzone::Connection.connect("username", "password") do
7
- "sekret" + Weatherzone::Connection.instance.password
6
+ keygen = lambda do
7
+ eval(File.open(File.dirname(__FILE__) + '/../.wzkey.rb', 'r').read)
8
8
  end
9
- Weatherzone::Connection.instance.stubs(:request).returns( File.open("test/response/everything.xml") )
10
- weather = Weather.find_by_location_code("9770")
9
+ @connection = Weatherzone::Connection.new(ENV['WZ_USER'], ENV['WZ_PASS'], keygen, :url => ENV['WZ_URL'], :timeout_after => 10)
10
+ @connection.stubs(:request).returns( File.open("test/response/everything.xml") )
11
+ weather = Weather.find_by_location_code(@connection, "9770")
11
12
  country = weather.countries.first
12
13
  location = country.locations.first
13
14
  @forecast = location.forecasts.first
data/test/test_warning.rb CHANGED
@@ -3,8 +3,12 @@ require File.dirname(__FILE__) + '/test_helper.rb'
3
3
  class TestWarning < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
- Weatherzone::Connection.instance.stubs(:request).returns( File.open("test/response/warnings.xml") )
7
- weather = Weather.find_by_location_code("9770")
6
+ keygen = lambda do
7
+ eval(File.open(File.dirname(__FILE__) + '/../.wzkey.rb', 'r').read)
8
+ end
9
+ @connection = Weatherzone::Connection.new(ENV['WZ_USER'], ENV['WZ_PASS'], keygen, :url => ENV['WZ_URL'], :timeout_after => 10)
10
+ @connection.stubs(:request).returns( File.open("test/response/warnings.xml") )
11
+ weather = Weather.find_by_location_code(@connection, "9770")
8
12
  country = weather.countries.first
9
13
  location = country.locations.first
10
14
  @warning = location.warnings.first
data/test/test_weather.rb CHANGED
@@ -3,8 +3,12 @@ require File.dirname(__FILE__) + '/test_helper.rb'
3
3
  class TestWeather < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
- Weatherzone::Connection.instance.stubs(:request).returns( File.open("test/response/everything.xml") )
7
- @weather = Weather.find_by_location_code("9770")
6
+ keygen = lambda do
7
+ eval(File.open(File.dirname(__FILE__) + '/../.wzkey.rb', 'r').read)
8
+ end
9
+ @connection = Weatherzone::Connection.new(ENV['WZ_USER'], ENV['WZ_PASS'], keygen, :url => ENV['WZ_URL'], :timeout_after => 10)
10
+ @connection.stubs(:request).returns( File.open("test/response/everything.xml") )
11
+ @weather = Weather.find_by_location_code(@connection, "9770")
8
12
  end
9
13
 
10
14
  def test_should_be_an_instance_of_weather
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 6
8
- - 5
9
- version: 0.6.5
7
+ - 7
8
+ - 0
9
+ version: 0.7.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ben Askins
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-20 00:00:00 +10:00
17
+ date: 2010-04-21 00:00:00 +10:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency