Sha256: f193535cac528f35049ed41cc534ff344474450387efea51fcd39d2097616556

Contents?: true

Size: 1.25 KB

Versions: 5

Compression:

Stored size: 1.25 KB

Contents

module Janky
  module Builder
    class HTTP
      def initialize(username, password)
        @username = username
        @password = password
      end

      def run(params, create_url)
        http     = Net::HTTP.new(create_url.host, create_url.port)
        if create_url.scheme == "https"
          http.use_ssl = true
        end

        request  = Net::HTTP::Post.new(create_url.path)
        if @username && @password
          request.basic_auth(@username, @password)
        end
        request.form_data = {"json" => params}

        response = http.request(request)

        unless response.code == "302"
          Exception.push_http_response(response)
          raise Error, "Failed to create build"
        end
      end

      def output(url)
        http     = Net::HTTP.new(url.host, url.port)
        if url.scheme == "https"
          http.use_ssl = true
        end

        request  = Net::HTTP::Get.new(url.path)
        if @username && @password
          request.basic_auth(@username, @password)
        end

        response = http.request(request)

        unless response.code == "200"
          Exception.push_http_response(response)
          raise Error, "Failed to get build output"
        end

        response.body
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
janky-0.9.13 lib/janky/builder/http.rb
janky-0.9.12 lib/janky/builder/http.rb
janky-0.9.11 lib/janky/builder/http.rb
janky-0.9.10 lib/janky/builder/http.rb
janky-0.9.9 lib/janky/builder/http.rb