Sha256: 4c75dc5444d80985fa101146252bcab34874e151ccfebc9585c789bf049d62aa

Contents?: true

Size: 983 Bytes

Versions: 1

Compression:

Stored size: 983 Bytes

Contents

require 'net/http'
require 'nokogiri'
require 'date'

module Chicanery
  class Cctray
    attr_reader :name, :uri, :user, :password

    def initialize name, url, user, password
      @name, @uri, @user, @password = name, URI(url), user, password
    end

    def get
      req = Net::HTTP::Get.new(uri.path)
      req.basic_auth user, password
      res = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https', verify_mode: OpenSSL::SSL::VERIFY_NONE) do |https|
        https.request(req)
      end
      res.body
    end

    def jobs
      jobs = {}
      Nokogiri::XML(get).css("Project").each do |project|
        jobs[project[:name]]= {
          activity: project[:activity],
          last_build_status: project[:lastBuildStatus] == 'Success' ? :success : :failure,
          last_build_time: DateTime.parse(project[:lastBuildTime]),
          url: project[:webUrl],
          last_label: project[:lastBuildLabel]
        }
      end
      jobs
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
chicanery-0.0.2 lib/chicanery/cctray.rb