Module: HTTPX::Transcoder::JSON

Defined in:
lib/httpx/transcoder/json.rb

Defined Under Namespace

Classes: Encoder

Constant Summary collapse

JSON_REGEX =
%r{\bapplication/(?:vnd\.api\+|hal\+)?json\b}i.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.decode(response) ⇒ Object

Raises:



32
33
34
35
36
37
38
# File 'lib/httpx/transcoder/json.rb', line 32

def decode(response)
  content_type = response.content_type.mime_type

  raise HTTPX::Error, "invalid json mime type (#{content_type})" unless JSON_REGEX.match?(content_type)

  method(:json_load)
end

.encode(json) ⇒ Object



28
29
30
# File 'lib/httpx/transcoder/json.rb', line 28

def encode(json)
  Encoder.new(json)
end

Instance Method Details

#json_dump(*args) ⇒ Object



43
# File 'lib/httpx/transcoder/json.rb', line 43

def json_dump(*args); MultiJson.dump(*args); end

#json_load(*args) ⇒ Object



42
# File 'lib/httpx/transcoder/json.rb', line 42

def json_load(*args); MultiJson.load(*args); end