lita-onewheel-forecast-io 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3dbf02360cbc737e4e2a5b496143ea702619dcd8
4
- data.tar.gz: e840358c5319946eef3de1fac1b9841a8be18f41
3
+ metadata.gz: 4a1c34227a6fba45ea412b5129bcca4e12c7c090
4
+ data.tar.gz: d6e8c875355d3745874ddaa8a10e8354039e363c
5
5
  SHA512:
6
- metadata.gz: 2a035aca2c39995766079cd2d4e0ae7fed07ca2b7a901dac531542708301afc25d33bbaa7e72d4110d89d5f2ca4900fc7c6caf376f087d07fddb631dd9bef508
7
- data.tar.gz: 085c4b590e1f0f3833e85dfaf668642c71752d69dda1b82bf12689c9a30143a452a0495c51afea0ece4aea519ba93677b1f94e4886b5f29ed2ab9a7aaca37c7d
6
+ metadata.gz: 61516507de3ce242843086104524b69e38885b7e2f482e02da40a6a9c02a92021c0c00ed5ec62bc6e6cd4b20305752d9486a7d8ecc50080c669b9bc1c5a5af74
7
+ data.tar.gz: fa6b2118a9c058a0cc3e6d164ddaf098661b1b76fa700f75a728659116441f176de1d80132cdb3a438ff1386754fd3b28f9b1fc79504463d0dc6722aeb837a19
data/.gitignore CHANGED
@@ -17,3 +17,4 @@ test/tmp
17
17
  test/version_tmp
18
18
  tmp
19
19
  lita_config.rb
20
+ .rbenv-gemsets
@@ -1,8 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.2
4
- - 2.1.5
5
- - 2.0.0
3
+ - 2.2.3
6
4
  script: bundle exec rake
7
5
  sudo: false
8
6
  before_install:
data/README.md CHANGED
@@ -11,7 +11,7 @@ This Lita handler takes location-based queries and returns interesting data abou
11
11
  Add lita-onewheel-forecast-io to your Lita instance's Gemfile, from github since it's currently unpublished:
12
12
 
13
13
  ``` ruby
14
- gem 'lita-onewheel-forecast-io', github: 'onewheelskyward/lita-onewheel-forecast-io', branch: :master
14
+ gem 'lita-onewheel-forecast-io', '~> 0.0'
15
15
  ```
16
16
 
17
17
  ## Configuration
@@ -119,6 +119,14 @@ module ForecastIo
119
119
  }
120
120
  end
121
121
 
122
+ # Just a shorthand function to return the configured snowflake.
123
+ def get_snowman(config)
124
+ # '⛄' # Fancy emoji snowman
125
+ # '❄️' # Fancy snowflake
126
+ # '❄' # Regular snowflake
127
+ config.snowflake
128
+ end
129
+
122
130
  # I have no use for these yet, and yet they're handy to know.
123
131
  # def attributes
124
132
  # { :bold => 2.chr,
@@ -1,32 +1,44 @@
1
1
  module ForecastIo
2
2
  module Forecasts
3
3
  def ascii_rain_forecast(forecast)
4
- str = do_the_rain_chance_thing(forecast, ascii_chars, 'precipProbability')
5
- "rain probability #{(Time.now).strftime('%H:%M').to_s}|#{str}|#{(Time.now + 3600).strftime('%H:%M').to_s}"
4
+ (str, precip_type) = do_the_rain_chance_thing(forecast, ascii_chars, 'precipProbability')
5
+ max = get_max_by_data_key(forecast, 'minutely', 'precipProbability')
6
+ "1hr #{precip_type} probability #{(Time.now).strftime('%H:%M').to_s}|#{str}|#{(Time.now + 3600).strftime('%H:%M').to_s} max #{max * 100}%"
6
7
  end
7
8
 
8
9
  def ansi_rain_forecast(forecast)
9
- str = do_the_rain_chance_thing(forecast, ansi_chars, 'precipProbability') #, 'probability', get_rain_range_colors)
10
- max_str = get_max_rain_chance(forecast)
11
- "rain probability #{(Time.now).strftime('%H:%M').to_s}|#{str}|#{(Time.now + 3600).strftime('%H:%M').to_s} #{max_str}"
10
+ (str, precip_type) = do_the_rain_chance_thing(forecast, ansi_chars, 'precipProbability') #, 'probability', get_rain_range_colors)
11
+ max = get_max_by_data_key(forecast, 'minutely', 'precipProbability')
12
+ "1hr #{precip_type} probability #{(Time.now).strftime('%H:%M').to_s}|#{str}|#{(Time.now + 3600).strftime('%H:%M').to_s} max #{max.to_f * 100}%"
12
13
  end
13
14
 
14
15
  def ansi_rain_intensity_forecast(forecast)
15
- str = do_the_rain_intensity_thing(forecast, ansi_chars, 'precipIntensity') #, 'probability', get_rain_range_colors)
16
- "rain intensity #{(Time.now).strftime('%H:%M').to_s}|#{str}|#{(Time.now + 3600).strftime('%H:%M').to_s}"
16
+ (str, precip_type) = do_the_rain_intensity_thing(forecast, ansi_chars, 'precipIntensity') #, 'probability', get_rain_range_colors)
17
+ max_str = get_max_by_data_key(forecast, 'minutely', 'precipIntensity')
18
+ "1hr #{precip_type} intensity #{(Time.now).strftime('%H:%M').to_s}|#{str}|#{(Time.now + 3600).strftime('%H:%M').to_s} #{max_str}"
17
19
  end
18
20
 
19
21
  def ansi_humidity_forecast(forecast)
20
22
  do_the_humidity_thing(forecast, ansi_chars, 'humidity') #, 'probability', get_rain_range_colors)
21
23
  end
22
24
 
23
- def get_max_rain_chance(forecast, key = 'minutely')
25
+ def get_max_by_data_key(forecast, key, datum)
24
26
  unless forecast[key].nil?
25
27
  data_points = []
26
28
  forecast[key]['data'].each do |data_point|
27
- data_points.push data_point['precipProbability']
29
+ data_points.push data_point[datum]
28
30
  end
29
- "max #{data_points.max * 100}%"
31
+ data_points.max
32
+ end
33
+ end
34
+
35
+ def get_min_by_data_key(forecast, key, datum)
36
+ unless forecast[key].nil?
37
+ data_points = []
38
+ forecast[key]['data'].each do |data_point|
39
+ data_points.push data_point[datum]
40
+ end
41
+ data_points.min
30
42
  end
31
43
  end
32
44
 
@@ -55,7 +67,7 @@ module ForecastIo
55
67
  if i_can_has_snow
56
68
  data.each_with_index do |datum, index|
57
69
  if datum['precipType'] == 'snow'
58
- str[index] = '☃'
70
+ str[index] = get_snowman config
59
71
  end
60
72
  end
61
73
  end
@@ -64,7 +76,9 @@ module ForecastIo
64
76
  str = get_colored_string(data, key, str, get_rain_range_colors)
65
77
  end
66
78
 
67
- str
79
+ precip_type = i_can_has_snow ? 'snow' : 'rain'
80
+
81
+ return str, precip_type
68
82
  end
69
83
 
70
84
  def do_the_rain_intensity_thing(forecast, chars, key) #, type, range_colors = nil)
@@ -72,11 +86,15 @@ module ForecastIo
72
86
  return 'No minute-by-minute data available.' # The "Middle of Nowhere" case.
73
87
  end
74
88
 
89
+ i_can_has_snow = false
75
90
  data_points = []
76
91
  data = forecast['minutely']['data']
77
92
 
78
93
  data.each do |datum|
79
94
  data_points.push datum[key]
95
+ if datum['precipType'] == 'snow'
96
+ i_can_has_snow = true
97
+ end
80
98
  end
81
99
 
82
100
  # Fixed range graph- 0-0.11.
@@ -85,7 +103,10 @@ module ForecastIo
85
103
  if config.colors
86
104
  str = get_colored_string(data, key, str, get_rain_intensity_range_colors)
87
105
  end
88
- str
106
+
107
+ precip_type = i_can_has_snow ? 'snow' : 'rain'
108
+
109
+ return str, precip_type
89
110
  end
90
111
 
91
112
  def do_the_humidity_thing(forecast, chars, key) #, type, range_colors = nil)
@@ -166,7 +187,7 @@ module ForecastIo
166
187
  return str, data_points
167
188
  end
168
189
 
169
- def do_the_sun_thing(forecast)
190
+ def do_the_sun_thing(forecast, chars)
170
191
  key = 'cloudCover'
171
192
  data_points = []
172
193
  data = forecast['daily']['data']
@@ -178,22 +199,30 @@ module ForecastIo
178
199
 
179
200
  differential = data_points.max - data_points.min
180
201
 
181
- str = get_dot_str(ansi_chars, data, data_points.min, differential, key)
202
+ str = get_dot_str(chars, data, data_points.min, differential, key)
182
203
 
183
204
  if config.colors
184
205
  str = get_colored_string(data, key, str, get_sun_range_colors)
185
206
  end
186
207
 
187
- "8 day sun forecast |#{str}|"
208
+ max = 1 - get_min_by_data_key(forecast, 'hourly', key)
209
+
210
+ "8 day sun forecast |#{str}| max #{(max * 100).to_i}%"
188
211
  end
189
212
 
190
- def do_the_cloud_thing(forecast)
213
+ def do_the_cloud_thing(forecast, chars)
191
214
  # O ◎ ]
192
215
  data = forecast['hourly']['data'].slice(0,23)
193
216
 
194
- str = get_dot_str(ansi_chars, data, 0, 1, 'cloudCover')
217
+ max = 0
218
+ data.each do |datum|
219
+ if datum['cloudCover'] > max
220
+ max = datum['cloudCover']
221
+ end
222
+ end
223
+ str = get_dot_str(chars, data, 0, 1, 'cloudCover')
195
224
 
196
- "24h cloud cover |#{str}|"
225
+ "24h cloud cover |#{str}| max #{max * 100}%"
197
226
  end
198
227
 
199
228
  def do_the_sunrise_thing(forecast)
@@ -261,7 +290,9 @@ module ForecastIo
261
290
  str = get_colored_string(data, 'precipProbability', str, get_rain_range_colors)
262
291
  end
263
292
 
264
- "7day #{precip_type}s |#{str}|"
293
+ max = get_max_by_data_key(forecast, 'daily', 'precipProbability')
294
+
295
+ "7day #{precip_type}s |#{str}| max #{max * 100}%"
265
296
  end
266
297
 
267
298
  def do_the_daily_rain_thing(forecast)
@@ -278,13 +309,21 @@ module ForecastIo
278
309
 
279
310
  str = get_dot_str(ansi_chars, data, 0, 1, 'precipProbability')
280
311
 
312
+ if 'snow' == precip_type
313
+ data.each_with_index do |datum, index|
314
+ if datum['precipType'] == 'snow'
315
+ str[index] = get_snowman config
316
+ end
317
+ end
318
+ end
319
+
281
320
  if config.colors
282
321
  str = get_colored_string(data, 'precipProbability', str, get_rain_range_colors)
283
322
  end
284
323
 
285
- max_str = get_max_rain_chance(forecast, 'hourly')
324
+ max = get_max_by_data_key(forecast, 'hourly', 'precipProbability')
286
325
 
287
- "48 hr #{precip_type}s |#{str}| #{max_str}"
326
+ "48 hr #{precip_type}s |#{str}| max #{max.to_f * 100}%"
288
327
  end
289
328
 
290
329
  def do_the_daily_wind_thing(forecast)
@@ -27,8 +27,8 @@ module ForecastIo
27
27
  response.reply location.location_name + ' ' + ansi_rain_intensity_forecast(forecast)
28
28
  response.reply location.location_name + ' ' + ansi_temp_forecast(forecast)
29
29
  response.reply location.location_name + ' ' + ansi_wind_direction_forecast(forecast)
30
- response.reply location.location_name + ' ' + do_the_sun_thing(forecast)
31
- response.reply location.location_name + ' ' + do_the_cloud_thing(forecast)
30
+ response.reply location.location_name + ' ' + do_the_sun_thing(forecast, ansi_chars)
31
+ response.reply location.location_name + ' ' + do_the_cloud_thing(forecast, ansi_chars)
32
32
  response.reply location.location_name + ' ' + do_the_daily_rain_thing(forecast)
33
33
  end
34
34
 
@@ -84,13 +84,25 @@ module ForecastIo
84
84
  def handle_irc_ansisun(response)
85
85
  location = geo_lookup(response.user, response.match_data[1])
86
86
  forecast = get_forecast_io_results(response.user, location)
87
- response.reply location.location_name + ' ' + do_the_sun_thing(forecast)
87
+ response.reply location.location_name + ' ' + do_the_sun_thing(forecast, ansi_chars)
88
+ end
89
+
90
+ def handle_irc_asciisun(response)
91
+ location = geo_lookup(response.user, response.match_data[1])
92
+ forecast = get_forecast_io_results(response.user, location)
93
+ response.reply location.location_name + ' ' + do_the_sun_thing(forecast, ascii_chars)
88
94
  end
89
95
 
90
96
  def handle_irc_ansicloud(response)
91
97
  location = geo_lookup(response.user, response.match_data[1])
92
98
  forecast = get_forecast_io_results(response.user, location)
93
- response.reply location.location_name + ' ' + do_the_cloud_thing(forecast)
99
+ response.reply location.location_name + ' ' + do_the_cloud_thing(forecast, ansi_chars)
100
+ end
101
+
102
+ def handle_irc_asciicloud(response)
103
+ location = geo_lookup(response.user, response.match_data[1])
104
+ forecast = get_forecast_io_results(response.user, location)
105
+ response.reply location.location_name + ' ' + do_the_cloud_thing(forecast, ascii_chars)
94
106
  end
95
107
 
96
108
  def handle_irc_seven_day(response)
@@ -171,7 +183,12 @@ module ForecastIo
171
183
  forecast = get_forecast_io_results(response.user, location)
172
184
  nearest_storm_distance, nearest_storm_bearing = do_the_nearest_storm_thing(forecast)
173
185
 
174
- response.reply "The nearest storm is #{get_distance(nearest_storm_distance, get_scale(response.user))} to the #{get_cardinal_direction_from_bearing(nearest_storm_bearing)} of you."
186
+ if nearest_storm_distance == 0
187
+ response.reply "You're in it!"
188
+ else
189
+ response.reply "The nearest storm is #{get_distance(nearest_storm_distance, get_scale(response.user))} to the #{get_cardinal_direction_from_bearing(nearest_storm_bearing)} of you."
190
+ end
191
+
175
192
  end
176
193
  end
177
194
  end
@@ -13,6 +13,7 @@ module Lita
13
13
  config :api_key
14
14
  config :api_uri
15
15
  config :colors
16
+ config :snowflake, default: '❄'
16
17
 
17
18
  include ::ForecastIo::Constants
18
19
  include ::ForecastIo::IrcHandlers
@@ -120,6 +121,9 @@ module Lita
120
121
  route(/^ansisun\s*$/i, :handle_irc_ansisun)
121
122
  route(/^ansisun\s+(.+)/i, :handle_irc_ansisun,
122
123
  help: { '!ansisun [location]' => '7 day chance-of-sun report for [location].'})
124
+ route(/^asciisun\s*$/i, :handle_irc_asciisun)
125
+ route(/^asciisun\s+(.+)/i, :handle_irc_asciisun,
126
+ help: { '!asciisun [location]' => '7 day chance-of-sun report for [location].'})
123
127
 
124
128
  # Mun!
125
129
 
@@ -135,8 +139,11 @@ module Lita
135
139
  help: { '!dailywind [location]' => '7 day wind speed/direction report for [location].'})
136
140
 
137
141
  # Cloud cover
138
- route(/^ansicloud\s*$/i, :handle_irc_ansicloud)
139
- route(/^ansicloud\s+(.+)/i, :handle_irc_ansicloud,
142
+ route(/^asciiclouds*\s+(.+)/i, :handle_irc_asciicloud)
143
+ route(/^asciiclouds*\s*$/i, :handle_irc_asciicloud,
144
+ help: { '!asciicloud [location]' => '24h cloud cover report for [location].'})
145
+ route(/^ansiclouds*\s*$/i, :handle_irc_ansicloud)
146
+ route(/^ansiclouds*\s+(.+)/i, :handle_irc_ansicloud,
140
147
  help: { '!ansicloud [location]' => '24h cloud cover report for [location].'})
141
148
 
142
149
  # oooOOOoooo
@@ -138,7 +138,7 @@ module ForecastIo
138
138
  def get_forecast_io_results(user, location)
139
139
  if ! config.api_uri or ! config.api_key
140
140
  Lita.logger.error "Configuration missing! '#{config.api_uri}' '#{config.api_key}'"
141
- return
141
+ raise StandardError.new('Configuration missing!')
142
142
  end
143
143
  uri = config.api_uri + config.api_key + '/' + "#{location.latitude},#{location.longitude}"
144
144
  Lita.logger.debug uri
@@ -1,12 +1,12 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'lita-onewheel-forecast-io'
3
- spec.version = '0.0.0'
3
+ spec.version = '0.0.1'
4
4
  spec.authors = ['Andrew Kreps']
5
5
  spec.email = ['andrew.kreps@gmail.com']
6
6
  spec.description = <<-EOS
7
- A rather different take on the weather.
8
- !ansirain Portland, OR 97206, USA rain probability 21:30|████████████████████████████████████▇▇▇▇▇▇▇▇▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅|22:30 max 100%
9
- !dailyrain Portland, OR 97206, USA 48 hr rains |▇▇▇▅▅▅▅▃▅▅▃▃▃▃▅▇▇▇▇▇▅▅▁▁▁▁▁______▁▁▁▁▁▁▁▁▁▃▃▃▁▁▁▁| max 59.0%
7
+ A rather different take on the weather. <br/>
8
+ !ansirain Portland, OR 97206, USA rain probability 21:30|████████████████████████████████████▇▇▇▇▇▇▇▇▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅|22:30 max 100% <br/>
9
+ !dailyrain Portland, OR 97206, USA 48 hr rains |▇▇▇▅▅▅▅▃▅▅▃▃▃▃▅▇▇▇▇▇▅▅▁▁▁▁▁______▁▁▁▁▁▁▁▁▁▃▃▃▁▁▁▁| max 59.0% <br/>
10
10
  !ansitemp Portland, OR 97206, USA 24 hr temps: 8.44°C |▅▅▅▅▃▃▁_▁▁▅▅▇█████▇▅▅▃▁| 6.17°C Range: 5.89°C - 12.17°C
11
11
  EOS
12
12
  spec.summary = %q{A text-based interactive query engine for http://forecast.io's api.}
@@ -30,7 +30,10 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
30
30
  it { is_expected.to route('ansiwind') }
31
31
  it { is_expected.to route('asciiwind') }
32
32
  it { is_expected.to route('ansisun') }
33
+ it { is_expected.to route('asciisun') }
34
+ it { is_expected.to route('asciicloud') }
33
35
  it { is_expected.to route('ansicloud') }
36
+ it { is_expected.to route('ansiclouds') }
34
37
  it { is_expected.to route('asciitemp') }
35
38
  it { is_expected.to route('asciirain') }
36
39
  it { is_expected.to route('7day') }
@@ -125,12 +128,12 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
125
128
 
126
129
  it '!ansirain Paris' do
127
130
  send_message 'ansirain Paris'
128
- expect(replies.last).to include("|\u000302_☃\u000306▃\u000310▅\u000303▅\u000309▅\u000311▇\u000308▇\u000307█\u000304█\u000313█\u000302__________________________________________________\u0003|")
131
+ expect(replies.last).to include("|\u000302_❄\u000306▃\u000310▅\u000303▅\u000309▅\u000311▇\u000308▇\u000307█\u000304█\u000313█\u000302__________________________________________________\u0003|")
129
132
  end
130
133
 
131
134
  it '!ansirain return max chance' do
132
135
  send_message 'ansirain Paris'
133
- expect(replies.last).to include('max 100%')
136
+ expect(replies.last).to include('max 100.0%')
134
137
  end
135
138
 
136
139
  it '!ansirain no minutes' do
@@ -147,7 +150,7 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
147
150
 
148
151
  it '!ansisnow Paris' do
149
152
  send_message 'ansisnow Paris'
150
- expect(replies.last).to include("|\u000302_☃\u000306▃\u000310▅\u000303▅\u000309▅\u000311▇\u000308▇\u000307█\u000304█\u000313█\u000302__________________________________________________\u0003|")
153
+ expect(replies.last).to include("|\u000302_❄\u000306▃\u000310▅\u000303▅\u000309▅\u000311▇\u000308▇\u000307█\u000304█\u000313█\u000302__________________________________________________\u0003|")
151
154
  end
152
155
 
153
156
  it '!ansiintensity' do
@@ -172,7 +175,7 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
172
175
 
173
176
  it '!conditions' do
174
177
  send_message 'conditions'
175
- expect(replies.last).to eq("Portland, OR 28.3°F |\u000306_▁▃\u000310▅▇█\u000303█\u0003| 38.72°F / 4.3 mph |\u000306↓\u000310↙←\u000311↖↑↗\u000308→\u0003| 12.71 mph / 98% chance of sun / 60m precip |\u000306☃\u000311▇\u000308▇\u000302_____________\u0003|")
178
+ expect(replies.last).to eq("Portland, OR 28.3°F |\u000306_▁▃\u000310▅▇█\u000303█\u0003| 38.72°F / 4.3 mph |\u000306↓\u000310↙←\u000311↖↑↗\u000308→\u0003| 12.71 mph / 98% chance of sun / 60m precip |\u000306❄\u000311▇\u000308▇\u000302_____________\u0003|")
176
179
  end
177
180
 
178
181
  it '!alerts' do
@@ -182,12 +185,22 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
182
185
 
183
186
  it '!ansisun' do
184
187
  send_message 'ansisun'
185
- expect(replies.last).to eq("Portland, OR 8 day sun forecast |\u000308█\u000309▃\u000308▇\u000309▁_\u000307▅\u000309▃\u000307▅\u0003|")
188
+ expect(replies.last).to eq("Portland, OR 8 day sun forecast |\u000308█\u000309▃\u000308▇\u000309▁_\u000307▅\u000309▃\u000307▅\u0003| max 100%")
189
+ end
190
+
191
+ it '!asciisun' do
192
+ send_message 'asciisun'
193
+ expect(replies.last).to eq("Portland, OR 8 day sun forecast |\u000308'\u000309-\u000308*\u000309._\u000307~\u000309-\u000307~\u0003| max 100%")
186
194
  end
187
195
 
188
196
  it '!ansicloud' do
189
197
  send_message 'ansicloud'
190
- expect(replies.last).to eq('Portland, OR 24h cloud cover |___________▁▁▁▁▁▁▁▁▃▅▅▅|')
198
+ expect(replies.last).to eq('Portland, OR 24h cloud cover |___________▁▁▁▁▁▁▁▁▃▅▅▅| max 49.0%')
199
+ end
200
+
201
+ it '!asciicloud' do
202
+ send_message 'asciicloud'
203
+ expect(replies.last).to eq('Portland, OR 24h cloud cover |___________........-~~~| max 49.0%')
191
204
  end
192
205
 
193
206
  it '!asciitemp' do
@@ -197,7 +210,7 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
197
210
 
198
211
  it '!asciirain' do
199
212
  send_message 'asciirain'
200
- expect(replies.last).to include("|\u000302_☃\u000306-\u000310~\u000303~\u000309~\u000311*\u000308*\u000307'\u000304'\u000313'\u000302__________________________________________________\u0003|")
213
+ expect(replies.last).to include("|\u000302_❄\u000306-\u000310~\u000303~\u000309~\u000311*\u000308*\u000307'\u000304'\u000313'\u000302__________________________________________________\u0003|")
201
214
  end
202
215
 
203
216
  it '!7day' do
@@ -207,12 +220,12 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
207
220
 
208
221
  it '!dailyrain' do
209
222
  send_message 'dailyrain'
210
- expect(replies.last).to eq("Portland, OR 48 hr snows |\u000302_______________________▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁_\u0003| max 4.0%")
223
+ expect(replies.last).to eq("Portland, OR 48 hr snows |\u000302_______________________❄❄❄❄▁▁▁▁▁▁▁▁▁▁▁▁▁❄❄❄❄❄❄❄❄_\u0003| max 4.0%")
211
224
  end
212
225
 
213
226
  it '!7dayrain' do
214
227
  send_message '7dayrain'
215
- expect(replies.last).to eq("Portland, OR 7day snows |\u000302_▁▁\u000306▃\u000313█\u000303▅▅\u000310▃\u0003|")
228
+ expect(replies.last).to eq("Portland, OR 7day snows |\u000302_▁▁\u000306▃\u000313█\u000303▅▅\u000310▃\u0003| max 100%")
216
229
  end
217
230
 
218
231
  it '!ansiozone' do
@@ -314,13 +327,13 @@ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
314
327
  it '!forecastallthethings' do
315
328
  send_message 'forecastallthethings'
316
329
  expect(replies[0]).to eq("Portland, OR weather is currently 28.39°F and clear. Winds out of the E at 5.74 mph. It will be clear for the hour, and flurries tomorrow morning. There are also 357.71 ozones.")
317
- expect(replies[1]).to include("|\u000302_☃\u000306▃\u000310▅\u000303▅\u000309▅\u000311▇\u000308▇\u000307█\u000304█\u000313█\u000302__________________________________________________\u0003|")
330
+ expect(replies[1]).to include("|\u000302_❄\u000306▃\u000310▅\u000303▅\u000309▅\u000311▇\u000308▇\u000307█\u000304█\u000313█\u000302__________________________________________________\u0003|")
318
331
  expect(replies[2]).to include("|\u000302_\u000313▅\u000310▁\u000303▃\u000309▃\u000311▃\u000308▅\u000307▅\u000304▅\u000313▅\u000302___________________________________________________\u0003|")
319
332
  expect(replies[3]).to eq("Portland, OR 24 hr temps: 28.3°F |\u000306_▁▃\u000310▅▇█\u000303██\u000310██▇▅\u000306▅▃▃▃▃▃▃▁▁▁▁\u0003| 28.4°F Range: 28.3°F - 39.0°F")
320
333
  expect(replies[4]).to eq("Portland, OR 48h wind direction 4.3 mph|\u000306↓\u000310↙←\u000311↖↑↗\u000308→↘\u000311↓←←←←←←\u000310←←←←←←←\u000306←←←←←\u000302←←←↙↙↙↙↓↓↓\u000306↓↓↓↓↓↓↓↓↙↙\u0003|4.18 mph Range: 1.39 mph - 12.71 mph")
321
- expect(replies[5]).to eq("Portland, OR 8 day sun forecast |\u000308█\u000309▃\u000308▇\u000309▁_\u000307▅\u000309▃\u000307▅\u0003|")
322
- expect(replies[6]).to eq("Portland, OR 24h cloud cover |___________▁▁▁▁▁▁▁▁▃▅▅▅|")
323
- expect(replies[7]).to eq("Portland, OR 48 hr snows |\u000302_______________________▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁_\u0003| max 4.0%")
334
+ expect(replies[5]).to eq("Portland, OR 8 day sun forecast |\u000308█\u000309▃\u000308▇\u000309▁_\u000307▅\u000309▃\u000307▅\u0003| max 100%")
335
+ expect(replies[6]).to eq("Portland, OR 24h cloud cover |___________▁▁▁▁▁▁▁▁▃▅▅▅| max 49.0%")
336
+ expect(replies[7]).to eq("Portland, OR 48 hr snows |\u000302_______________________❄❄❄❄▁▁▁▁▁▁▁▁▁▁▁▁▁❄❄❄❄❄❄❄❄_\u0003| max 4.0%")
324
337
  end
325
338
 
326
339
  it '!ansipressure' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-onewheel-forecast-io
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kreps
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-03 00:00:00.000000000 Z
11
+ date: 2015-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -165,9 +165,9 @@ dependencies:
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0.0'
167
167
  description: |2
168
- A rather different take on the weather.
169
- !ansirain Portland, OR 97206, USA rain probability 21:30|████████████████████████████████████▇▇▇▇▇▇▇▇▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅|22:30 max 100%
170
- !dailyrain Portland, OR 97206, USA 48 hr rains |▇▇▇▅▅▅▅▃▅▅▃▃▃▃▅▇▇▇▇▇▅▅▁▁▁▁▁______▁▁▁▁▁▁▁▁▁▃▃▃▁▁▁▁| max 59.0%
168
+ A rather different take on the weather. <br/>
169
+ !ansirain Portland, OR 97206, USA rain probability 21:30|████████████████████████████████████▇▇▇▇▇▇▇▇▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅|22:30 max 100% <br/>
170
+ !dailyrain Portland, OR 97206, USA 48 hr rains |▇▇▇▅▅▅▅▃▅▅▃▃▃▃▅▇▇▇▇▇▅▅▁▁▁▁▁______▁▁▁▁▁▁▁▁▁▃▃▃▁▁▁▁| max 59.0% <br/>
171
171
  !ansitemp Portland, OR 97206, USA 24 hr temps: 8.44°C |▅▅▅▅▃▃▁_▁▁▅▅▇█████▇▅▅▃▁| 6.17°C Range: 5.89°C - 12.17°C
172
172
  email:
173
173
  - andrew.kreps@gmail.com