Rcov report for: app/models/hudson_job_settings.rb

NameTotal linesLines of codeTotal coverageCode coverage
app/models/hudson_job_settings.rb6041
100.00%
100.00%
1 # $Id$
2 
3 class HudsonJobSettings < ActiveRecord::Base
4   unloadable
5 
6   belongs_to :job, :class_name => 'HudsonJob', :foreign_key => 'hudson_job_id'
7 
8   # ���������������������������
9   validates_presence_of :hudson_job_id
10 
11   include RexmlHelper
12   include HudsonHelper
13 
14   def initialize(attributes = nil)
15     super attributes
16     self.build_rotate = false
17     self.build_rotator_days_to_keep = -1
18     self.build_rotator_num_to_keep = -1
19   end
20 
21   def do_rotate?
22     return false unless self.build_rotate
23     return false unless (self.build_rotator_days_to_keep > 0 || self.build_rotator_num_to_keep > 0)
24     return true
25   end
26 
27   def fetch
28 
29     return unless self.job
30     return unless self.job.settings
31 
32     api_uri = "#{job.config_url_for(:plugin)}"
33     content = open_hudson_api(api_uri, self.job.settings.auth_user, self.job.settings.auth_password)
34 
35     doc = REXML::Document.new content
36 
37     self.update_by_xml(doc)
38 
39   end
40 
41   def update_by_xml(doc)
42     return unless doc
43     return unless doc.is_a?(REXML::Document)
44 
45     rotate = false
46     days_to_keep = ""
47     num_to_keep = ""
48     doc.elements.each('//logRotator') do |log_rotator|
49       rotate = true
50       days_to_keep = get_element_value(log_rotator, 'daysToKeep')
51       num_to_keep = get_element_value(log_rotator, 'numToKeep')
52     end
53 
54     self.build_rotate = rotate
55     self.build_rotator_days_to_keep = days_to_keep.to_i if days_to_keep =~ /^[+-]?\d+$/
56     self.build_rotator_num_to_keep = num_to_keep.to_i if num_to_keep =~ /^[+-]?\d+$/
57 
58   end
59   
60 end