diff options
| -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 | 
