Class: CCTray

Inherits:
Object
  • Object
show all
Defined in:
lib/cctray.rb

Defined Under Namespace

Classes: Message, Project

Instance Method Summary collapse

Constructor Details

#initialize(feed_url, user = nil, pass = nil) ⇒ CCTray

Returns a new instance of CCTray.



21
22
23
24
# File 'lib/cctray.rb', line 21

def initialize(feed_url, user=nil, pass=nil)
  @feed_url = feed_url
  @user, @pass = user, pass
end

Instance Method Details

#fetchObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/cctray.rb', line 26

def fetch
  Nokogiri::XML(get).css("Project").map do |proj|
    Project.new(proj[:name],
                proj[:activity],
                proj[:lastBuildStatus],
                proj[:lastBuildLabel],
                proj[:lastBuildTime],
                proj[:webUrl],
                proj.css('message').map{|m| Message.new(m[:kind], m[:text])})
  end
end

#getObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/cctray.rb', line 38

def get
  uri = URI(@feed_url)
  http_opts = { use_ssl: uri.scheme == 'https' }
  Net::HTTP.start uri.host, uri.port, http_opts do |https|
    req = Net::HTTP::Get.new(uri.path).tap do |req|
      req.basic_auth @user, @pass if @user
    end

    case res = https.request(req)
    when Net::HTTPSuccess
      res.body
    else
      res.error!
    end
  end
end