Sha256: bb25d627055b9df91c322cfb24be6c1ec9953c84cd1130ccc2376c00dfa7809d

Contents?: true

Size: 732 Bytes

Versions: 1

Compression:

Stored size: 732 Bytes

Contents

module Relax
  class Performer
    def initialize(method, url, values, credentials)
      @method = method
      @url = url
      @values = values
      @credentials = credentials
    end

    def perform
      case @method
        when :delete, :get, :head then RestClient.send(@method, url)
        when :post, :put then RestClient.send(@method, url, query)
      end
    end

    def url
      uri = URI.parse(@url)
      uri.query = query unless query.nil? || query.empty?
      uri.userinfo = @credentials.join(':') if @credentials
      uri.to_s
    end
    private :url

    def query
      @values.collect do |name, value|
        "#{name}=#{value}" if value
      end.compact.join('&')
    end
    private :query
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
relax-0.1.0 lib/relax/performer.rb