summaryrefslogtreecommitdiff
path: root/lib/ccmenu.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ccmenu.rb')
-rw-r--r--lib/ccmenu.rb57
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