diff options
Diffstat (limited to 'lib/ccmenu.rb')
| -rw-r--r-- | lib/ccmenu.rb | 57 | 
1 files changed, 57 insertions, 0 deletions
| diff --git a/lib/ccmenu.rb b/lib/ccmenu.rb new file mode 100644 index 0000000..90257f5 --- /dev/null +++ b/lib/ccmenu.rb @@ -0,0 +1,57 @@ +require 'crack' +require 'open-uri' +require 'json' + +class CCMenu + +  def initialize(url) +    @data = Crack::XML.parse(open(url))['Projects']['Project'] +    @data=@data.select{ |i| i['name'][/^[^\:\:]*\:\:[^\:\:]*$/]} +    puts @data +  end + +  def json +    @data.to_json +  end + +  def status +    overall = 'Success' +    @data.each do |step| +      if step['lastBuildStatus'] != 'Success' +        overall = step['lastBuildStatus'] +      end +    end +    return overall +  end +  def failed +    list = Array.new +    @data.each do |step| +      puts step +      list << step['name'] if step['lastBuildStatus'] == 'Failure' +    end +    return list +  end + +  def num_total +    @data.length +  end + +  def num_failed +    self.failed.length +  end + +  def color +    case status +      when 'Failure'   then 'red' +      when 'Exception' then 'orange' +      when 'Unknown'   then 'orange' +      else 'green' +    end +  end + + +  def data +    @data +  end + +end | 
