Sha256: ee033b47f3607942f48746f4982867fde2ffb499eb534878d3a946b9b5b0a019

Contents?: true

Size: 1.05 KB

Versions: 2

Compression:

Stored size: 1.05 KB

Contents

class Restfulie::Client::Feature::BaseRequest
  
  def execute(flow, request, env)
    request!(request.verb, request.host, request.path, request, flow, env)
  end
  
  # Executes a request against your server and return a response instance.
  # * <tt>method: :get,:post,:delete,:head,:put</tt>
  # * <tt>path: '/posts'</tt>
  # * <tt>args: payload: 'some text' and/or headers: {'Accept' => '*/*', 'Content-Type' => 'application/atom+xml'}</tt>
  def request!(method, host, path, request, flow, env)

    ::Restfulie::Common::Logger.logger.info(request.http_to_s(method, path, [request.headers])) if ::Restfulie::Common::Logger.logger
    begin
      http_request = get_connection_provider(host)

      if env[:body]
        response = http_request.send(method, path, env[:body], request.headers)
      else
        response = http_request.send(method, path, request.headers)
      end

    rescue Exception => e
      response = e
    end
    
    response
    
  end

  def get_connection_provider(host)
    @connection ||= ::Net::HTTP.new(host.host, host.port)
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
restfulie-1.0.0.beta5 lib/restfulie/client/feature/base_request.rb
restfulie-1.0.0.beta4 lib/restfulie/client/feature/base_request.rb