Sha256: f0534366e44a12172bdaba65080ae85cf592206d03b99b40577fe5d208f4b8e4

Contents?: true

Size: 1.15 KB

Versions: 5

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

module Gupshup
  class Request
    attr_reader :host, :port, :method, :url, :params, :data, :headers, :auth, :timeout

    def initialize(host, port, method, url, params = {}, data = {}, headers = {}, auth = nil, timeout = nil)
      @host = host
      @port = port
      @url = url
      @method = method
      @params = params
      @data = data
      @headers = headers
      @auth = auth
      @timeout = timeout
    end

    def to_s
      auth = @auth.nil? ? '' : '(' + @auth.join(',') + ')'

      params = ''
      unless @params.nil? || @params.empty?
        params = '?' + @params.each.map { |key, value| "#{CGI.escape(key)}=#{CGI.escape(value)}" }.join('&')
      end

      headers = ''
      unless @headers.nil? || @headers.empty?
        headers = "\n" + @headers.each.map { |key, value| "-H \"#{key}\": \"#{value}\"" }.join("\n")
      end

      data = ''
      unless @data.nil? || @data.empty?
        data = @method.equal?('GET') ? "\n -G" : "\n"
        data += @data.each.map { |key, value| "-d \"#{key}\"=\"#{value}\"" }.join("\n")
      end

      "#{auth} #{@method} #{@url}#{params}#{data}#{headers}"
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gupshup-rb-0.1.8.4 lib/gupshup-rb/framework/request.rb
gupshup-rb-0.1.8.3 lib/gupshup-rb/framework/request.rb
gupshup-rb-0.1.8.2 lib/gupshup-rb/framework/request.rb
gupshup-rb-0.1.8.1 lib/gupshup-rb/framework/request.rb
gupshup-rb-0.1.8 lib/gupshup-rb/framework/request.rb