Sha256: 1dfc36c653b23dd7640e58a7d6d970333ff09521fa3d8de032ccb96c183b8936

Contents?: true

Size: 843 Bytes

Versions: 1

Compression:

Stored size: 843 Bytes

Contents

require 'rest_client'

module GembankClient
  class Resource
    DEFAULT_URL = 'https://gembank.org'

    def initialize(key, file, url = DEFAULT_URL)
      @key, @file, @url = key, file, url
    end

    def release
      RestClient.post(url, :gem => File.new(@file)) do |response, request, result, &block|
        handle(response, request, result, &block)
      end
    end

    private

    def url
      "#{@url}/push/#{@key}"
    end

    def handle(response, request, result, &block)
      case response.code
      when 200, 202
        puts(response.body)
      when 403, 404, 412
        puts("Server responded with status code #{response.code}")
        puts(response.body) if response.body and response.body.size > 0
        exit response.code
      else
        response.return!(request, result, &block)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gembank_client-0.0.2 lib/gembank_client/resource.rb