diff options
| author | Zack Hobson | 2013-12-22 17:26:19 -0800 |
|---|---|---|
| committer | Zack Hobson | 2013-12-22 17:26:19 -0800 |
| commit | ce8ebf8d59953684c9f8f7e0ed3ca7d94f809f96 (patch) | |
| tree | 194c6f5f454d9a19e53ec13d3f6ae5c49b5baf0d | |
| parent | 0e3581420a697c40ae91c2ad92884cd8e1eebe03 (diff) | |
| download | hcl-ce8ebf8d59953684c9f8f7e0ed3ca7d94f809f96.tar.bz2 | |
re-fix HTML unescaping of data items
| -rw-r--r-- | lib/hcl/yajl_middleware.rb | 13 |
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 |
