summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZack Hobson2013-12-22 17:26:19 -0800
committerZack Hobson2013-12-22 17:26:19 -0800
commitce8ebf8d59953684c9f8f7e0ed3ca7d94f809f96 (patch)
tree194c6f5f454d9a19e53ec13d3f6ae5c49b5baf0d
parent0e3581420a697c40ae91c2ad92884cd8e1eebe03 (diff)
downloadhcl-ce8ebf8d59953684c9f8f7e0ed3ca7d94f809f96.tar.bz2
re-fix HTML unescaping of data items
-rw-r--r--lib/hcl/yajl_middleware.rb13
1 files changed, 12 insertions, 1 deletions
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