Sha256: e504360405f2ca4d49813a2db7a7f2c285d6da32c6112a48f1e5e358b8563f6c
Contents?: true
Size: 1.21 KB
Versions: 24
Compression:
Stored size: 1.21 KB
Contents
# frozen_string_literal: true require "forwardable" module HTTPX::Transcoder module Body Error = Class.new(HTTPX::Error) module_function class Encoder extend Forwardable def_delegator :@raw, :to_s def initialize(body) @raw = body end def bytesize if @raw.respond_to?(:bytesize) @raw.bytesize elsif @raw.respond_to?(:to_ary) @raw.map(&:bytesize).reduce(0, :+) elsif @raw.respond_to?(:size) @raw.size || Float::INFINITY elsif @raw.respond_to?(:length) @raw.length || Float::INFINITY elsif @raw.respond_to?(:each) Float::INFINITY else raise Error, "cannot determine size of body: #{@raw.inspect}" end end def content_type "application/octet-stream" end private def respond_to_missing?(meth, *args) @raw.respond_to?(meth, *args) || super end def method_missing(meth, *args, &block) if @raw.respond_to?(meth) @raw.__send__(meth, *args, &block) else super end end end def encode(body) Encoder.new(body) end end register "body", Body end
Version data entries
24 entries across 24 versions & 1 rubygems
Version | Path |
---|---|
httpx-0.5.1 | lib/httpx/transcoder/body.rb |
httpx-0.5.0 | lib/httpx/transcoder/body.rb |
httpx-0.4.1 | lib/httpx/transcoder/body.rb |
httpx-0.4.0 | lib/httpx/transcoder/body.rb |