From ce8ebf8d59953684c9f8f7e0ed3ca7d94f809f96 Mon Sep 17 00:00:00 2001 From: Zack Hobson Date: Sun, 22 Dec 2013 17:26:19 -0800 Subject: re-fix HTML unescaping of data items --- lib/hcl/yajl_middleware.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/hcl/yajl_middleware.rb b/lib/hcl/yajl_middleware.rb index 186c3d4..8d914d7 100644 --- a/lib/hcl/yajl_middleware.rb +++ b/lib/hcl/yajl_middleware.rb @@ -1,8 +1,19 @@ require 'faraday_middleware/response_middleware' require 'yajl' +require 'cgi' class HCl::YajlMiddleware < FaradayMiddleware::ResponseMiddleware + def self.unescape obj + if obj.kind_of? Hash + obj.inject({}){|o,(k,v)| o[k] = unescape(v);o} + elsif obj.kind_of? Array + obj.inject([]){|o,v| o << unescape(v);o} + else + CGI.unescape_html(obj.to_s) + end + end + define_parser do |body| - Yajl::Parser.parse(body, symbolize_keys:true) + unescape Yajl::Parser.parse(body, symbolize_keys:true) end end -- cgit v1.2.3