Class: Heroku::Bouncer

Inherits:
Object
  • Object
show all
Defined in:
lib/heroku/bouncer.rb

Defined Under Namespace

Classes: Builder, DecryptedHash, Lockbox, Middleware

Constant Summary collapse

JsonParserError =

json parsers, all the way down

Class.new(RuntimeError)
JsonParser =
begin

  require 'oj'

  lambda do |json|
    begin
      Oj.load(json, :mode => :strict)
    rescue Oj::ParseError
      raise ::Heroku::Bouncer::JsonParserError
    end
  end

rescue LoadError

  begin

    require 'yajl'
    lambda do |json|
      begin
        Yajl::Parser.parse(json)
      rescue Yajl::ParseError
        raise ::Heroku::Bouncer::JsonParserError
      end
    end

  rescue LoadError

    begin

      require 'multi_json'
      lambda do |json|
        begin
          MultiJson.decode(json)
        rescue MultiJson::ParseError
          raise ::Heroku::Bouncer::JsonParserError
        end
      end

    rescue LoadError

      require 'json'
      lambda do |json|
        begin
          JSON.parse(json)
        rescue JSON::ParserError
          raise ::Heroku::Bouncer::JsonParserError
        end
      end

    end
  end
end

Class Method Summary collapse

Class Method Details

.new(*args) ⇒ Object



4
5
6
# File 'lib/heroku/bouncer.rb', line 4

def self.new(*args)
  Heroku::Bouncer::Builder.new(*args)
end