Sha256: ebc8a45ddc65843a3345effbbbeec0386e9a965992414148684658b07f800299

Contents?: true

Size: 659 Bytes

Versions: 17

Compression:

Stored size: 659 Bytes

Contents

class JsonFormat
  include LHC::BasicMethods

  def self.request(options)
    options[:headers] ||= {}
    options[:headers]['Content-Type'] = 'application/json'
    options[:headers]['Accept'] = 'application/json'
    options[:format] = new
    super(options)
  end

  def as_json(response)
    parse(response, Hash)
  end

  def as_open_struct(response)
    parse(response, OpenStruct)
  end

  def to_s
    'json'
  end

  def to_sym
    to_s.to_sym
  end

  private

  def parse(response, object_class)
    JSON.parse(response.body, object_class: object_class)
  rescue JSON::ParserError => e
    raise LHC::ParserError.new(e.message, response)
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
lhc-5.1.1 lib/lhc/formats/json.rb
lhc-5.1.0 lib/lhc/formats/json.rb
lhc-5.0.3 lib/lhc/formats/json.rb
lhc-5.0.2 lib/lhc/formats/json.rb
lhc-5.0.1 lib/lhc/formats/json.rb
lhc-5.0.0 lib/lhc/formats/json.rb
lhc-4.0.2 lib/lhc/formats/json.rb
lhc-4.0.1 lib/lhc/formats/json.rb
lhc-4.0.0 lib/lhc/formats/json.rb
lhc-3.8.1 lib/lhc/formats/json.rb
lhc-3.8.0 lib/lhc/formats/json.rb
lhc-3.7.3 lib/lhc/formats/json.rb
lhc-3.7.2 lib/lhc/formats/json.rb
lhc-3.7.2.1 lib/lhc/formats/json.rb
lhc-3.7.1 lib/lhc/formats/json.rb
lhc-3.7.0 lib/lhc/formats/json.rb
lhc-3.7.0.pre1 lib/lhc/formats/json.rb