Sha256: fb5cb565cc81d2e9f0ea6af7ca215930afbd11e439bfc1a3575e0c0ee0d51c3a
Contents?: true
Size: 1.21 KB
Versions: 2
Compression:
Stored size: 1.21 KB
Contents
require 'net/http' require 'nokogiri' require 'date' module Chicanery class Cctray attr_reader :name, :uri, :options def initialize name, url, options={} @name, @uri, @options = name, URI(url), options end def get req = Net::HTTP::Get.new(uri.path) req.basic_auth user, password if options[:user] and options[: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| job = { activity: project[:activity] == 'Sleeping' ? :sleeping : :building, last_build_status: project[:lastBuildStatus] == 'Success' ? :success : :failure, last_build_time: project[:lastBuildTime].empty? ? nil : DateTime.parse(project[:lastBuildTime]), url: project[:webUrl], last_label: project[:lastBuildLabel] } jobs[project[:name]] = job unless filtered project[:name] end jobs end def filtered name return false unless options[:include] !options[:include].match(name) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
chicanery-0.0.5 | lib/chicanery/cctray.rb |
chicanery-0.0.4 | lib/chicanery/cctray.rb |