Sha256: fb26b4a69360eb2aa4760f9e29d7dc57eb00389358abf9513f381b7cd8721976
Contents?: true
Size: 1.08 KB
Versions: 9
Compression:
Stored size: 1.08 KB
Contents
# frozen_string_literal: true module DHC::Formats class JSON < DHC::Format include DHC::BasicMethodsConcern def self.request(options) options[:format] = new super(options) end def format_options(options) options[:headers] ||= {} no_content_type_header!(options) no_accept_header!(options) options[:headers]['Content-Type'] = 'application/json; charset=utf-8' options[:headers]['Accept'] = 'application/json,application/vnd.api+json' options[:headers]['Accept-Charset'] = 'utf-8' options end def as_json(input) parse(input, Hash) end def as_open_struct(input) parse(input, OpenStruct) end def to_body(input) if input.is_a?(String) input else input.to_json end end def to_s 'json' end def to_sym to_s.to_sym end private def parse(input, object_class) ::JSON.parse(input, object_class: object_class) rescue ::JSON::ParserError => e raise DHC::ParserError.new(e.message, input) end end end
Version data entries
9 entries across 9 versions & 1 rubygems