lita-stocks 0.0.4 → 0.0.5

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: 8a03cc9ae4756d10416e873a065fe60faa46479f
4
- data.tar.gz: cc1c5b78c7fd3d8631f94353e02e7ad286e8a6a8
3
+ metadata.gz: c2edfa8a6699523b19368601afd6fdc5d3b796f5
4
+ data.tar.gz: 94b38e0879f0c9e266d6d5752cf9050825e6c612
5
5
  SHA512:
6
- metadata.gz: 2e26a75e9725c6cf26676202f941d1b0877dd2c5c5c2ac6dd580049daa5d9da156c415d79f35c5c72a9af3e85018335e0707f68bceb7b1dff9a2596a8d0f9571
7
- data.tar.gz: 870481ebfb5cbc8a4af97f6d8e0fb92e2190464d3160bde6355af5f59dbb4b93aebd07e800d323d740b9064999bea9d08354afaa526199979fb455d434fa81f3
6
+ metadata.gz: 132d3588c35830c04c832da7f521c24b071685117453636b3dfad141f222090ce4e4bce40e748961816895be290b67df11dbeee25089a755bd2a24c9ef116f8e
7
+ data.tar.gz: 165cbb80f63c91f2bd809459767d38d06ee5d9d9331b765ccc0855ad2627cae012e88315dc6501cf680d685448c7b71e7c2b69669b45c6e5a7de5071dfd670b9
@@ -1,4 +1,5 @@
1
1
  require "lita"
2
+ require "cgi"
2
3
 
3
4
  module Lita
4
5
  module Handlers
@@ -26,7 +27,13 @@ module Lita
26
27
  def get_stock_data(symbol)
27
28
  resp = http.get("https://www.google.com/finance/info?infotype=infoquoteall&q=#{symbol}")
28
29
  raise 'RequestFail' unless resp.status == 200
29
- MultiJson.load(resp.body.gsub(/\/\//, ''))[0]
30
+ body = resp.body.gsub(/\/\//, '')
31
+
32
+ # Google sends hex encoded data, we need to fix that
33
+ (33..47).each do |char|
34
+ body.gsub!(/\\x#{char.to_s(16)}/, char.chr)
35
+ end
36
+ MultiJson.load(body)[0]
30
37
  end
31
38
 
32
39
  def format_response(data)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-stocks"
3
- spec.version = "0.0.4"
3
+ spec.version = "0.0.5"
4
4
  spec.authors = ["Mitch Dempsey"]
5
5
  spec.email = ["mrdempsey@gmail.com"]
6
6
  spec.description = %q{A Lita handler that displays stock prices}
@@ -23,4 +23,11 @@ describe Lita::Handlers::Stocks, lita_handler: true do
23
23
  expect(replies.last).to_not include("MktCap")
24
24
  expect(replies.last).to_not include("P/E")
25
25
  end
26
+
27
+
28
+ it "ensures proper encoding" do
29
+ send_command "stock T"
30
+ expect(replies.last).to include("AT&T")
31
+ end
32
+
26
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-stocks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mitch Dempsey