barometer 0.7.3 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. data/.gitignore +1 -0
  2. data/.travis.yml +7 -0
  3. data/LICENSE +1 -1
  4. data/{README.rdoc → README.md} +124 -110
  5. data/Rakefile +1 -21
  6. data/TODO +8 -9
  7. data/barometer.gemspec +20 -19
  8. data/bin/barometer +36 -83
  9. data/lib/barometer.rb +13 -11
  10. data/lib/barometer/base.rb +10 -10
  11. data/lib/barometer/data.rb +1 -1
  12. data/lib/barometer/data/distance.rb +25 -25
  13. data/lib/barometer/data/geo.rb +9 -9
  14. data/lib/barometer/data/local_datetime.rb +24 -20
  15. data/lib/barometer/data/local_time.rb +13 -13
  16. data/lib/barometer/data/location.rb +6 -6
  17. data/lib/barometer/data/pressure.rb +24 -24
  18. data/lib/barometer/data/speed.rb +28 -28
  19. data/lib/barometer/data/sun.rb +7 -7
  20. data/lib/barometer/data/temperature.rb +29 -29
  21. data/lib/barometer/data/units.rb +9 -9
  22. data/lib/barometer/data/zone.rb +19 -19
  23. data/lib/barometer/formats.rb +1 -1
  24. data/lib/barometer/formats/coordinates.rb +7 -7
  25. data/lib/barometer/formats/format.rb +6 -6
  26. data/lib/barometer/formats/geocode.rb +5 -5
  27. data/lib/barometer/formats/icao.rb +6 -6
  28. data/lib/barometer/formats/postalcode.rb +3 -3
  29. data/lib/barometer/formats/short_zipcode.rb +2 -2
  30. data/lib/barometer/formats/weather_id.rb +10 -10
  31. data/lib/barometer/formats/woe_id.rb +20 -20
  32. data/lib/barometer/formats/zipcode.rb +3 -3
  33. data/lib/barometer/key_file_parser.rb +20 -0
  34. data/lib/barometer/measurements/measurement.rb +32 -32
  35. data/lib/barometer/measurements/result.rb +39 -39
  36. data/lib/barometer/measurements/result_array.rb +12 -12
  37. data/lib/barometer/query.rb +15 -15
  38. data/lib/barometer/services.rb +3 -3
  39. data/lib/barometer/translations/icao_country_codes.yml +20 -20
  40. data/lib/barometer/translations/weather_country_codes.yml +1 -1
  41. data/lib/barometer/translations/zone_codes.yml +2 -2
  42. data/lib/barometer/version.rb +3 -0
  43. data/lib/barometer/weather.rb +27 -27
  44. data/lib/barometer/weather_services/noaa.rb +314 -3
  45. data/lib/barometer/weather_services/service.rb +32 -30
  46. data/lib/barometer/weather_services/weather_bug.rb +35 -33
  47. data/lib/barometer/weather_services/wunderground.rb +31 -29
  48. data/lib/barometer/weather_services/yahoo.rb +36 -35
  49. data/lib/barometer/web_services/geocode.rb +5 -7
  50. data/lib/barometer/web_services/noaa_station_id.rb +53 -0
  51. data/lib/barometer/web_services/placemaker.rb +11 -13
  52. data/lib/barometer/web_services/timezone.rb +5 -7
  53. data/lib/barometer/web_services/weather_id.rb +4 -6
  54. data/lib/barometer/web_services/web_service.rb +4 -4
  55. data/spec/barometer_spec.rb +25 -27
  56. data/spec/cassettes/Barometer.json +1 -0
  57. data/spec/cassettes/Query.json +1 -0
  58. data/spec/cassettes/Query_Format_Coordinates.json +1 -0
  59. data/spec/cassettes/Query_Format_Geocode.json +1 -0
  60. data/spec/cassettes/Query_Format_WeatherID.json +1 -0
  61. data/spec/cassettes/Query_Format_WoeID.json +1 -0
  62. data/spec/cassettes/WeatherService.json +1 -0
  63. data/spec/cassettes/WeatherService_Noaa.json +1 -0
  64. data/spec/cassettes/WeatherService_WeatherBug.json +1 -0
  65. data/spec/cassettes/WeatherService_Wunderground.json +1 -0
  66. data/spec/cassettes/WeatherService_Yahoo.json +1 -0
  67. data/spec/cassettes/WebService_Geocode.json +1 -0
  68. data/spec/cassettes/WebService_NoaaStation.json +1 -0
  69. data/spec/data/distance_spec.rb +60 -60
  70. data/spec/data/geo_spec.rb +23 -23
  71. data/spec/data/local_datetime_spec.rb +44 -44
  72. data/spec/data/local_time_spec.rb +47 -47
  73. data/spec/data/location_spec.rb +16 -16
  74. data/spec/data/pressure_spec.rb +61 -61
  75. data/spec/data/speed_spec.rb +69 -69
  76. data/spec/data/sun_spec.rb +25 -25
  77. data/spec/data/temperature_spec.rb +68 -68
  78. data/spec/data/units_spec.rb +21 -21
  79. data/spec/data/zone_spec.rb +35 -35
  80. data/spec/formats/coordinates_spec.rb +27 -27
  81. data/spec/formats/format_spec.rb +17 -25
  82. data/spec/formats/geocode_spec.rb +23 -31
  83. data/spec/formats/icao_spec.rb +26 -32
  84. data/spec/formats/postalcode_spec.rb +22 -28
  85. data/spec/formats/short_zipcode_spec.rb +20 -26
  86. data/spec/formats/weather_id_spec.rb +57 -67
  87. data/spec/formats/woe_id_spec.rb +59 -59
  88. data/spec/formats/zipcode_spec.rb +39 -47
  89. data/spec/key_file_parser_spec.rb +28 -0
  90. data/spec/measurements/measurement_spec.rb +79 -133
  91. data/spec/measurements/result_array_spec.rb +23 -38
  92. data/spec/measurements/result_spec.rb +100 -128
  93. data/spec/query_spec.rb +83 -100
  94. data/spec/spec_helper.rb +24 -6
  95. data/spec/weather_services/noaa_spec.rb +179 -0
  96. data/spec/weather_services/services_spec.rb +28 -36
  97. data/spec/weather_services/weather_bug_spec.rb +57 -77
  98. data/spec/weather_services/wunderground_spec.rb +36 -65
  99. data/spec/weather_services/yahoo_spec.rb +38 -60
  100. data/spec/weather_spec.rb +79 -79
  101. data/spec/web_services/geocode_spec.rb +7 -11
  102. data/spec/web_services/noaa_station_id_spec.rb +33 -0
  103. data/spec/web_services/placemaker_spec.rb +7 -12
  104. data/spec/web_services/web_services_spec.rb +3 -9
  105. metadata +214 -163
  106. data/VERSION.yml +0 -5
  107. data/lib/barometer/weather_services/google.rb +0 -142
  108. data/lib/barometer/weather_services/weather_dot_com.rb +0 -279
  109. data/spec/fakeweb_helper.rb +0 -179
  110. data/spec/fixtures/formats/weather_id/90210.xml +0 -7
  111. data/spec/fixtures/formats/weather_id/from_USGA0028.xml +0 -3
  112. data/spec/fixtures/formats/weather_id/ksfo.xml +0 -1
  113. data/spec/fixtures/formats/weather_id/manhattan.xml +0 -7
  114. data/spec/fixtures/formats/weather_id/new_york.xml +0 -1
  115. data/spec/fixtures/formats/weather_id/the_hills.xml +0 -1
  116. data/spec/fixtures/geocode/40_73_v3.json +0 -497
  117. data/spec/fixtures/geocode/90210_v3.json +0 -63
  118. data/spec/fixtures/geocode/T5B4M9_v3.json +0 -68
  119. data/spec/fixtures/geocode/atlanta_v3.json +0 -58
  120. data/spec/fixtures/geocode/calgary_ab_v3.json +0 -58
  121. data/spec/fixtures/geocode/ksfo_v3.json +0 -73
  122. data/spec/fixtures/geocode/newyork_ny_v3.json +0 -58
  123. data/spec/fixtures/services/google/calgary_ab.xml +0 -1
  124. data/spec/fixtures/services/placemaker/T5B4M9.xml +0 -65
  125. data/spec/fixtures/services/placemaker/atlanta.xml +0 -65
  126. data/spec/fixtures/services/placemaker/coords.xml +0 -65
  127. data/spec/fixtures/services/placemaker/ksfo.xml +0 -65
  128. data/spec/fixtures/services/placemaker/new_york.xml +0 -65
  129. data/spec/fixtures/services/placemaker/the_hills.xml +0 -65
  130. data/spec/fixtures/services/placemaker/w615702.xml +0 -47
  131. data/spec/fixtures/services/weather_bug/90210_current.xml +0 -93
  132. data/spec/fixtures/services/weather_bug/90210_forecast.xml +0 -76
  133. data/spec/fixtures/services/weather_dot_com/90210.xml +0 -1
  134. data/spec/fixtures/services/wunderground/current_calgary_ab.xml +0 -9
  135. data/spec/fixtures/services/wunderground/forecast_calgary_ab.xml +0 -13
  136. data/spec/fixtures/services/yahoo/90210.xml +0 -3
  137. data/spec/weather_services/google_spec.rb +0 -181
  138. data/spec/weather_services/weather_dot_com_spec.rb +0 -224
@@ -1,53 +1,53 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe "Data::Temperature" do
4
-
4
+
5
5
  describe "when initialized" do
6
-
6
+
7
7
  it "defines METRIC_UNITS" do
8
8
  Data::Temperature.const_defined?("METRIC_UNITS").should be_true
9
9
  Data::Temperature::METRIC_UNITS.should == "C"
10
10
  end
11
-
11
+
12
12
  it "defines IMPERIAL_UNITS" do
13
13
  Data::Temperature.const_defined?("IMPERIAL_UNITS").should be_true
14
14
  Data::Temperature::IMPERIAL_UNITS.should == "F"
15
15
  end
16
-
16
+
17
17
  before(:each) do
18
18
  @temp = Data::Temperature.new
19
19
  end
20
-
20
+
21
21
  it "responds to celcius" do
22
22
  @temp.celsius.should be_nil
23
23
  end
24
-
24
+
25
25
  it "responds to fahrenheit" do
26
26
  @temp.fahrenheit.should be_nil
27
27
  end
28
-
28
+
29
29
  it "responds to kelvin" do
30
30
  @temp.kelvin.should be_nil
31
31
  end
32
-
32
+
33
33
  it "responds to metric_default" do
34
34
  lambda { @temp.metric_default = 5 }.should_not raise_error(NotImplementedError)
35
35
  end
36
-
36
+
37
37
  it "responds to imperial_default" do
38
38
  lambda { @temp.imperial_default = 5 }.should_not raise_error(NotImplementedError)
39
39
  end
40
-
40
+
41
41
  it "responds to nil?" do
42
42
  @temp.nil?.should be_true
43
43
  @temp.c = 5
44
44
  @temp.nil?.should be_false
45
45
  end
46
-
46
+
47
47
  end
48
-
48
+
49
49
  describe "conversion" do
50
-
50
+
51
51
  # For all conversions
52
52
  # 20.0 C = 293.15 K = 68.0 F
53
53
  before(:each) do
@@ -55,7 +55,7 @@ describe "Data::Temperature" do
55
55
  @c = 20.0
56
56
  @k = 293.15
57
57
  end
58
-
58
+
59
59
  it "requires a value, that is either Integer or Float" do
60
60
  Data::Temperature.c_to_k(nil).should be_nil
61
61
  Data::Temperature.c_to_f(nil).should be_nil
@@ -63,7 +63,7 @@ describe "Data::Temperature" do
63
63
  Data::Temperature.f_to_c(nil).should be_nil
64
64
  Data::Temperature.k_to_c(nil).should be_nil
65
65
  Data::Temperature.k_to_f(nil).should be_nil
66
-
66
+
67
67
  not_float_or_integer = "string"
68
68
  Data::Temperature.c_to_k(not_float_or_integer).should be_nil
69
69
  Data::Temperature.c_to_f(not_float_or_integer).should be_nil
@@ -72,56 +72,56 @@ describe "Data::Temperature" do
72
72
  Data::Temperature.k_to_c(not_float_or_integer).should be_nil
73
73
  Data::Temperature.k_to_f(not_float_or_integer).should be_nil
74
74
  end
75
-
75
+
76
76
  it "converts C to K" do
77
77
  # 0 C = 273.15 K
78
78
  Data::Temperature.c_to_k(@c).should == @k
79
79
  end
80
-
80
+
81
81
  it "converts C to F" do
82
82
  # Tf = (9/5)*Tc+32
83
83
  Data::Temperature.c_to_f(@c).should == @f
84
84
  end
85
-
85
+
86
86
  it "converts F to C" do
87
87
  # Tc = (5/9)*(Tf-32)
88
88
  Data::Temperature.f_to_c(@f).should == @c
89
89
  end
90
-
90
+
91
91
  it "converts F to K" do
92
92
  Data::Temperature.f_to_k(@f).should == @k
93
93
  end
94
-
94
+
95
95
  it "converts K to C" do
96
96
  Data::Temperature.k_to_c(@k).should == @c
97
97
  end
98
-
98
+
99
99
  it "converts K to F" do
100
100
  Data::Temperature.k_to_f(@k).should == @f
101
101
  end
102
-
102
+
103
103
  end
104
-
104
+
105
105
  describe "updating" do
106
-
106
+
107
107
  before(:each) do
108
108
  @temp = Data::Temperature.new
109
109
  @f = 68.0
110
110
  @c = 20.0
111
111
  end
112
-
112
+
113
113
  it "nils F if new C converts to a F that changes more then 1 degree" do
114
114
  @temp.fahrenheit = (@f + 1.1)
115
115
  @temp.update_fahrenheit(@c)
116
116
  @temp.fahrenheit.should be_nil
117
117
  end
118
-
118
+
119
119
  it "doesn't update F if new C converts to a F that does not change more then 1 degree" do
120
120
  @temp.fahrenheit = (@f + 0.9)
121
121
  @temp.update_fahrenheit(@c)
122
122
  @temp.fahrenheit.should == (@f + 0.9)
123
123
  end
124
-
124
+
125
125
  it "doesn't set F if not already set" do
126
126
  @temp.fahrenheit.should be_nil
127
127
  @temp.celsius.should be_nil
@@ -129,19 +129,19 @@ describe "Data::Temperature" do
129
129
  @temp.fahrenheit.should be_nil
130
130
  @temp.celsius.should be_nil
131
131
  end
132
-
132
+
133
133
  it "nils C if new F converts to a C that changes more then 1 degree" do
134
134
  @temp.celsius = (@c + 1.1)
135
135
  @temp.update_celsius(@f)
136
136
  @temp.celsius.should be_nil
137
137
  end
138
-
138
+
139
139
  it "doesn't update C if new F converts to a C that does not change more then 1 degree" do
140
140
  @temp.celsius = (@c + 0.9)
141
141
  @temp.update_celsius(@f)
142
142
  @temp.celsius.should == (@c + 0.9)
143
143
  end
144
-
144
+
145
145
  it "doesn't set C if not already set" do
146
146
  @temp.fahrenheit.should be_nil
147
147
  @temp.celsius.should be_nil
@@ -149,18 +149,18 @@ describe "Data::Temperature" do
149
149
  @temp.fahrenheit.should be_nil
150
150
  @temp.celsius.should be_nil
151
151
  end
152
-
152
+
153
153
  end
154
-
154
+
155
155
  describe "storing" do
156
-
156
+
157
157
  before(:each) do
158
158
  @temp = Data::Temperature.new
159
159
  @f = 68.0
160
160
  @c = 20.0
161
161
  @k = 293.15
162
162
  end
163
-
163
+
164
164
  it "doesn't update C if nil value (or equivalent)" do
165
165
  @temp.celsius.should be_nil
166
166
  @temp.c = nil
@@ -168,7 +168,7 @@ describe "Data::Temperature" do
168
168
  @temp.c = "na"
169
169
  @temp.celsius.should be_nil
170
170
  end
171
-
171
+
172
172
  it "stores C, convert to K and reset F" do
173
173
  @temp.celsius.should be_nil
174
174
  @temp.fahrenheit = (@f + 1.1)
@@ -178,7 +178,7 @@ describe "Data::Temperature" do
178
178
  @temp.kelvin.should == @k
179
179
  @temp.fahrenheit.should be_nil
180
180
  end
181
-
181
+
182
182
  it "doesn't update F if nil value (or equivalent)" do
183
183
  @temp.fahrenheit.should be_nil
184
184
  @temp.f = nil
@@ -186,7 +186,7 @@ describe "Data::Temperature" do
186
186
  @temp.f = "na"
187
187
  @temp.fahrenheit.should be_nil
188
188
  end
189
-
189
+
190
190
  it "stores F, convert to K and reset C" do
191
191
  @temp.fahrenheit.should be_nil
192
192
  @temp.celsius = (@c + 1.1)
@@ -196,7 +196,7 @@ describe "Data::Temperature" do
196
196
  @temp.kelvin.should == @k
197
197
  @temp.celsius.should be_nil
198
198
  end
199
-
199
+
200
200
  it "doesn't update K if nil value (or equivalent)" do
201
201
  @temp.kelvin.should be_nil
202
202
  @temp.k = nil
@@ -204,7 +204,7 @@ describe "Data::Temperature" do
204
204
  @temp.k = "na"
205
205
  @temp.kelvin.should be_nil
206
206
  end
207
-
207
+
208
208
  it "stores K, convert to F and C" do
209
209
  @temp.celsius.should be_nil
210
210
  @temp.fahrenheit.should be_nil
@@ -214,24 +214,24 @@ describe "Data::Temperature" do
214
214
  @temp.fahrenheit.should == @f
215
215
  @temp.kelvin.should == @k
216
216
  end
217
-
217
+
218
218
  end
219
-
219
+
220
220
  describe "retrieving" do
221
-
221
+
222
222
  before(:each) do
223
223
  @temp = Data::Temperature.new
224
224
  @f = 68.0
225
225
  @c = 20.0
226
226
  @k = 293.15
227
227
  end
228
-
228
+
229
229
  it "returns C if it exists" do
230
230
  @temp.c = @c
231
231
  @temp.celsius.should == @c
232
232
  @temp.c.should == @c
233
233
  end
234
-
234
+
235
235
  it "auto converts from K if C is nil and K exists" do
236
236
  @temp.f = @f
237
237
  @temp.fahrenheit.should == @f
@@ -239,7 +239,7 @@ describe "Data::Temperature" do
239
239
  @temp.celsius.should be_nil
240
240
  @temp.c.should == @c
241
241
  end
242
-
242
+
243
243
  it "allows a float to be returned for C" do
244
244
  c = 20.12
245
245
  @temp.c = c
@@ -247,20 +247,20 @@ describe "Data::Temperature" do
247
247
  @temp.c(true).should == c.to_i
248
248
  @temp.c(false).should == c.to_f
249
249
  end
250
-
250
+
251
251
  it "allows only 2 decimal precision for C" do
252
252
  c = 20.1234
253
253
  @temp.c = c
254
254
  @temp.celsius.should == c
255
255
  @temp.c(false).should == 20.12
256
256
  end
257
-
257
+
258
258
  it "returns F if it exists" do
259
259
  @temp.f = @f
260
260
  @temp.fahrenheit.should == @f
261
261
  @temp.f.should == @f
262
262
  end
263
-
263
+
264
264
  it "auto converts from K if F is nil and K exists" do
265
265
  @temp.c = @c
266
266
  @temp.celsius.should == @c
@@ -268,7 +268,7 @@ describe "Data::Temperature" do
268
268
  @temp.fahrenheit.should be_nil
269
269
  @temp.f.should == @f
270
270
  end
271
-
271
+
272
272
  it "allows a float to be returned for F" do
273
273
  f = 68.12
274
274
  @temp.f = f
@@ -276,18 +276,18 @@ describe "Data::Temperature" do
276
276
  @temp.f(true).should == f.to_i
277
277
  @temp.f(false).should == f.to_f
278
278
  end
279
-
279
+
280
280
  it "allows only 2 decimal precision for F" do
281
281
  f = 68.1234
282
282
  @temp.f = f
283
283
  @temp.fahrenheit.should == f
284
284
  @temp.f(false).should == 68.12
285
285
  end
286
-
286
+
287
287
  end
288
-
288
+
289
289
  describe "operators" do
290
-
290
+
291
291
  before(:each) do
292
292
  @f = 68.0
293
293
  @c = 20.0
@@ -301,52 +301,52 @@ describe "Data::Temperature" do
301
301
  @temp_same = Data::Temperature.new
302
302
  @temp_same.k = @k
303
303
  end
304
-
304
+
305
305
  it "defines <=>" do
306
306
  Data::Temperature.method_defined?("<=>").should be_true
307
307
  (@temp_low <=> @temp_high).should == -1
308
308
  (@temp_high <=> @temp_low).should == 1
309
309
  (@temp <=> @temp_same).should == 0
310
310
  end
311
-
311
+
312
312
  it "defines <" do
313
313
  Data::Temperature.method_defined?("<").should be_true
314
314
  @temp_low.should < @temp_high
315
315
  @temp_high.should_not < @temp_low
316
316
  @temp.should_not < @temp_same
317
317
  end
318
-
318
+
319
319
  it "defines >" do
320
320
  Data::Temperature.method_defined?(">").should be_true
321
321
  @temp_low.should_not > @temp_high
322
322
  @temp_high.should > @temp_low
323
323
  @temp.should_not > @temp_same
324
324
  end
325
-
325
+
326
326
  it "defines ==" do
327
327
  Data::Temperature.method_defined?("==").should be_true
328
328
  @temp_low.should_not == @temp_high
329
329
  @temp.should == @temp_same
330
330
  end
331
-
331
+
332
332
  it "defines <=" do
333
333
  Data::Temperature.method_defined?("<=").should be_true
334
334
  @temp_low.should <= @temp_high
335
335
  @temp_high.should_not <= @temp_low
336
336
  @temp.should <= @temp_same
337
337
  end
338
-
338
+
339
339
  it "defines >=" do
340
340
  Data::Temperature.method_defined?(">=").should be_true
341
341
  @temp_low.should_not >= @temp_high
342
342
  @temp_high.should >= @temp_low
343
343
  @temp.should >= @temp_same
344
344
  end
345
-
345
+
346
346
  end
347
-
347
+
348
348
  describe "changing units" do
349
-
349
+
350
350
  before(:each) do
351
351
  @c = 20.5
352
352
  @f = Data::Temperature.c_to_f(@c)
@@ -354,11 +354,11 @@ describe "Data::Temperature" do
354
354
  @temp = Data::Temperature.new
355
355
  @temp.k = @k
356
356
  end
357
-
357
+
358
358
  it "returns just the integer value (no units)" do
359
359
  @temp.metric?.should be_true
360
360
  @temp.to_i.should == @c.to_i
361
-
361
+
362
362
  @temp.imperial!
363
363
  @temp.metric?.should be_false
364
364
  @temp.to_i.should == @f.to_i
@@ -372,7 +372,7 @@ describe "Data::Temperature" do
372
372
  @temp.metric?.should be_false
373
373
  @temp.to_f.should == @f.to_f
374
374
  end
375
-
375
+
376
376
  it "returns just the integer value with units" do
377
377
  @temp.metric?.should be_true
378
378
  @temp.to_s.should == "#{@c.to_i} #{Data::Temperature::METRIC_UNITS}"
@@ -381,7 +381,7 @@ describe "Data::Temperature" do
381
381
  @temp.metric?.should be_false
382
382
  @temp.to_s.should == "#{@f.to_i} #{Data::Temperature::IMPERIAL_UNITS}"
383
383
  end
384
-
384
+
385
385
  it "returns just the units" do
386
386
  @temp.metric?.should be_true
387
387
  @temp.units.should == Data::Temperature::METRIC_UNITS
@@ -392,5 +392,5 @@ describe "Data::Temperature" do
392
392
  end
393
393
 
394
394
  end
395
-
396
- end
395
+
396
+ end
@@ -1,40 +1,40 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe "Units" do
4
-
4
+
5
5
  describe "when initialized" do
6
-
6
+
7
7
  before(:each) do
8
8
  @units = Data::Units.new
9
9
  end
10
-
10
+
11
11
  it "responds to metric, defaults to true" do
12
12
  @units.metric.should be_true
13
13
  end
14
-
14
+
15
15
  it "allows metric to be set" do
16
16
  @units.metric.should be_true
17
-
17
+
18
18
  @units2 = Data::Units.new(false)
19
19
  @units2.metric.should be_false
20
20
  end
21
-
21
+
22
22
  it "stubs metric_default" do
23
23
  lambda { @units.metric_default = 5 }.should raise_error(NotImplementedError)
24
24
  end
25
-
25
+
26
26
  it "stubs imperial_default" do
27
27
  lambda { @units.imperial_default = 5 }.should raise_error(NotImplementedError)
28
28
  end
29
-
29
+
30
30
  end
31
-
31
+
32
32
  describe "changing units" do
33
-
33
+
34
34
  before(:each) do
35
35
  @units = Data::Units.new
36
36
  end
37
-
37
+
38
38
  it "indicates if metric?" do
39
39
  @units.metric.should be_true
40
40
  @units.metric?.should be_true
@@ -42,13 +42,13 @@ describe "Units" do
42
42
  @units.metric.should be_false
43
43
  @units.metric?.should be_false
44
44
  end
45
-
45
+
46
46
  it "changes to imperial" do
47
47
  @units.metric?.should be_true
48
48
  @units.imperial!
49
49
  @units.metric?.should be_false
50
50
  end
51
-
51
+
52
52
  it "changes to metric" do
53
53
  @units.metric = false
54
54
  @units.metric?.should be_false
@@ -57,9 +57,9 @@ describe "Units" do
57
57
  end
58
58
 
59
59
  end
60
-
60
+
61
61
  describe "when assigning values" do
62
-
62
+
63
63
  before(:each) do
64
64
  module Barometer
65
65
  class Data::Units
@@ -77,25 +77,25 @@ describe "Units" do
77
77
  @test_value_a = 5.5
78
78
  @test_value_b = 9.9
79
79
  end
80
-
80
+
81
81
  it "assigns metric_default" do
82
82
  @units_metric.metric?.should be_true
83
83
  @units_metric << @test_value_a
84
84
  @units_metric.a.should == @test_value_a
85
-
85
+
86
86
  @units_metric << [@test_value_b, @test_value_a]
87
87
  @units_metric.a.should == @test_value_b
88
88
  end
89
-
89
+
90
90
  it "assigns imperial_default" do
91
91
  @units_imperial.metric?.should be_false
92
92
  @units_imperial << @test_value_a
93
93
  @units_imperial.b.should == @test_value_a
94
-
94
+
95
95
  @units_imperial << [@test_value_a, @test_value_b]
96
96
  @units_imperial.b.should == @test_value_b
97
97
  end
98
-
98
+
99
99
  end
100
100
 
101
- end
101
+ end