summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorZack Hobson2013-12-26 11:57:57 -0800
committerZack Hobson2013-12-26 11:57:57 -0800
commit31dab9e4e892fa3f12e3659cd4b8fa42b52c999d (patch)
tree73864167ee88c785ad8b3e891e833cd7230a88a5 /lib
parentedce556e090c2ef2d6459d88d724ce4a05ce8725 (diff)
downloadhcl-31dab9e4e892fa3f12e3659cd4b8fa42b52c999d.tar.bz2
use yajl, test html unescape
Diffstat (limited to 'lib')
-rw-r--r--lib/hcl/harvest_middleware.rb12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/hcl/harvest_middleware.rb b/lib/hcl/harvest_middleware.rb
index db9d50f..3e96a99 100644
--- a/lib/hcl/harvest_middleware.rb
+++ b/lib/hcl/harvest_middleware.rb
@@ -1,5 +1,5 @@
require 'faraday_middleware/response_middleware'
-require 'multi_json'
+require 'yajl'
require 'escape_utils'
class HCl::HarvestMiddleware < FaradayMiddleware::ResponseMiddleware
@@ -18,8 +18,8 @@ class HCl::HarvestMiddleware < FaradayMiddleware::ResponseMiddleware
case env[:status]
when 200..299
begin
- env[:body] = unescape(MultiJson.load(env[:body], symbolize_keys:true))
- rescue MultiJson::LoadError
+ env[:body] = deep_html_unescape(Yajl::Parser.parse(env[:body], symbolize_keys:true))
+ rescue Yajl::ParseError
env[:body]
end
when 300..399
@@ -34,11 +34,11 @@ class HCl::HarvestMiddleware < FaradayMiddleware::ResponseMiddleware
end
end
- def unescape obj
+ def deep_html_unescape obj
if obj.kind_of? Hash
- obj.inject({}){|o,(k,v)| o[k] = unescape(v);o}
+ obj.inject({}){|o,(k,v)| o.update(k => deep_html_unescape(v)) }
elsif obj.kind_of? Array
- obj.inject([]){|o,v| o << unescape(v);o}
+ obj.inject([]){|o,v| o << deep_html_unescape(v) }
else
EscapeUtils.unescape_html(obj.to_s)
end