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 /lib | |
| parent | 0e3581420a697c40ae91c2ad92884cd8e1eebe03 (diff) | |
| download | hcl-ce8ebf8d59953684c9f8f7e0ed3ca7d94f809f96.tar.bz2 | |
re-fix HTML unescaping of data items
Diffstat (limited to 'lib')
| -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 | 
