integritray 0.1.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +6 -0
- data/README.rdoc +3 -1
- data/Rakefile +4 -2
- data/VERSION +1 -1
- data/integritray.gemspec +12 -4
- data/lib/integrity/integritray.rb +52 -43
- data/test/acceptance/integritray_test.rb +14 -0
- metadata +17 -5
data/CHANGELOG
ADDED
data/README.rdoc
CHANGED
@@ -5,13 +5,15 @@ for use with CCMenu and other tray items.
|
|
5
5
|
|
6
6
|
== Usage
|
7
7
|
Install the integritray gem:
|
8
|
-
gem install
|
8
|
+
gem install integritray
|
9
9
|
|
10
10
|
Require in your Integrity application's config.ru:
|
11
11
|
require 'integrity/integritray'
|
12
12
|
|
13
13
|
Point CCMenu or your tray item of choice to the feed URL:
|
14
14
|
http://my.integration.server/projects.xml
|
15
|
+
to view private projects
|
16
|
+
http://user:password@my.integration.server/projects.xml?private=true
|
15
17
|
|
16
18
|
You may have to manually specify that this is a CruiseControl.rb-type server;
|
17
19
|
CCMenu has trouble determining which type of server to treat this as.
|
data/Rakefile
CHANGED
@@ -8,9 +8,11 @@ begin
|
|
8
8
|
gem.summary = %Q{CCMenu support for Integrity}
|
9
9
|
gem.email = "josh@digitalpulp.com"
|
10
10
|
gem.homepage = "http://github.com/jfrench/integritray"
|
11
|
-
gem.authors = ["Josh French"]
|
12
|
-
end
|
11
|
+
gem.authors = ["Josh French", "Justin Smestad", "Gabe Varela"]
|
13
12
|
|
13
|
+
gem.add_dependency 'sinatra', '>= 0.9.4'
|
14
|
+
end
|
15
|
+
Jeweler::GemcutterTasks.new
|
14
16
|
rescue LoadError
|
15
17
|
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
16
18
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.2
|
data/integritray.gemspec
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
1
4
|
# -*- encoding: utf-8 -*-
|
2
5
|
|
3
6
|
Gem::Specification.new do |s|
|
4
7
|
s.name = %q{integritray}
|
5
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.1"
|
6
9
|
|
7
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Josh French"]
|
9
|
-
s.date = %q{
|
11
|
+
s.authors = ["Josh French", "Justin Smestad"]
|
12
|
+
s.date = %q{2010-01-06}
|
10
13
|
s.email = %q{josh@digitalpulp.com}
|
11
14
|
s.extra_rdoc_files = [
|
12
15
|
"LICENSE",
|
@@ -15,6 +18,7 @@ Gem::Specification.new do |s|
|
|
15
18
|
s.files = [
|
16
19
|
".document",
|
17
20
|
".gitignore",
|
21
|
+
"CHANGELOG",
|
18
22
|
"LICENSE",
|
19
23
|
"README.rdoc",
|
20
24
|
"Rakefile",
|
@@ -27,7 +31,7 @@ Gem::Specification.new do |s|
|
|
27
31
|
s.homepage = %q{http://github.com/jfrench/integritray}
|
28
32
|
s.rdoc_options = ["--charset=UTF-8"]
|
29
33
|
s.require_paths = ["lib"]
|
30
|
-
s.rubygems_version = %q{1.3.
|
34
|
+
s.rubygems_version = %q{1.3.5}
|
31
35
|
s.summary = %q{CCMenu support for Integrity}
|
32
36
|
s.test_files = [
|
33
37
|
"test/acceptance/acceptance_helper.rb",
|
@@ -39,8 +43,12 @@ Gem::Specification.new do |s|
|
|
39
43
|
s.specification_version = 3
|
40
44
|
|
41
45
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
46
|
+
s.add_runtime_dependency(%q<sinatra>, [">= 0.9.4"])
|
42
47
|
else
|
48
|
+
s.add_dependency(%q<sinatra>, [">= 0.9.4"])
|
43
49
|
end
|
44
50
|
else
|
51
|
+
s.add_dependency(%q<sinatra>, [">= 0.9.4"])
|
45
52
|
end
|
46
53
|
end
|
54
|
+
|
@@ -1,49 +1,58 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
1
|
+
|
2
|
+
module Integrity
|
3
|
+
module Integritray
|
4
|
+
module Helpers
|
5
|
+
|
6
|
+
def xml_opts_for_project(project)
|
7
|
+
opts = {}
|
8
|
+
opts['name'] = project.name
|
9
|
+
opts['category'] = project.branch
|
10
|
+
opts['activity'] = activity(project.last_build.status) if project.last_build
|
11
|
+
opts['webUrl'] = project_url(project)
|
12
|
+
if project.last_build
|
13
|
+
opts['lastBuildStatus'] = build_status(project.last_build.status)
|
14
|
+
opts['lastBuildLabel'] = project.last_build.commit.short_identifier
|
15
|
+
opts['lastBuildTime'] = project.last_build.completed_at
|
9
16
|
end
|
17
|
+
opts
|
10
18
|
end
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
private
|
20
|
-
def xml_opts_for_project(project)
|
21
|
-
opts = {}
|
22
|
-
opts['name'] = project.name
|
23
|
-
opts['category'] = project.branch
|
24
|
-
opts['activity'] = activity(project.last_commit.status)
|
25
|
-
opts['webUrl'] = project_url(project)
|
26
|
-
if project.last_commit
|
27
|
-
opts['lastBuildStatus'] = build_status(project.last_commit.status)
|
28
|
-
opts['lastBuildLabel'] = project.last_commit.short_identifier
|
29
|
-
opts['lastBuildTime'] = project.last_commit.build.completed_at if project.last_commit.build
|
19
|
+
|
20
|
+
def activity(status)
|
21
|
+
case status
|
22
|
+
when :success, :failed then 'Sleeping'
|
23
|
+
when :pending then 'Building'
|
24
|
+
else 'Sleeping'
|
25
|
+
end
|
30
26
|
end
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
27
|
+
|
28
|
+
def build_status(status)
|
29
|
+
case status
|
30
|
+
when :success, :pending then 'Success'
|
31
|
+
when :failed then 'Failure'
|
32
|
+
else 'Unknown'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
40
36
|
end
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
37
|
+
|
38
|
+
|
39
|
+
def self.registered(app)
|
40
|
+
app.helpers Integritray::Helpers
|
41
|
+
|
42
|
+
app.get '/projects.xml' do
|
43
|
+
login_required if params["private"]
|
44
|
+
builder do |xml|
|
45
|
+
@projects = authorized? ? Project.all : Project.all(:public => true)
|
46
|
+
response["Content-Type"] = "application/xml; charset=utf-8"
|
47
|
+
xml.Projects do
|
48
|
+
@projects.each do |project|
|
49
|
+
xml.Project xml_opts_for_project(project)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
47
53
|
end
|
54
|
+
|
48
55
|
end
|
49
|
-
|
56
|
+
|
57
|
+
end # Integritray
|
58
|
+
end # Integrity
|
@@ -55,4 +55,18 @@ class IntegritrayTest < Test::Unit::AcceptanceTestCase
|
|
55
55
|
assert_have_tag("projects/project[@activity='Sleeping']")
|
56
56
|
assert_have_tag("projects/project[@lastbuildstatus='Failure']")
|
57
57
|
end
|
58
|
+
|
59
|
+
scenario "projects.xml has a tag representing my unbuilt project" do
|
60
|
+
project = Project.gen(:integrity, :public => true)
|
61
|
+
commit = project.last_commit
|
62
|
+
puts commit.inspect
|
63
|
+
visit "/projects.xml"
|
64
|
+
|
65
|
+
assert_have_tag("projects")
|
66
|
+
assert_have_tag("projects/project[@name='Integrity']")
|
67
|
+
assert_have_tag("projects/project[@weburl='#{project_url(project)}']")
|
68
|
+
assert_have_tag("projects/project[@category='#{project.branch}']")
|
69
|
+
assert_have_no_tag("projects/project[@activity]")
|
70
|
+
assert_have_no_tag("projects/project[@lastbuildstatus]")
|
71
|
+
end
|
58
72
|
end
|
metadata
CHANGED
@@ -1,18 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: integritray
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh French
|
8
|
+
- Justin Smestad
|
9
|
+
- Gabe Varela
|
8
10
|
autorequire:
|
9
11
|
bindir: bin
|
10
12
|
cert_chain: []
|
11
13
|
|
12
|
-
date:
|
14
|
+
date: 2010-01-15 00:00:00 -05:00
|
13
15
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: sinatra
|
19
|
+
type: :runtime
|
20
|
+
version_requirement:
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: 0.9.4
|
26
|
+
version:
|
16
27
|
description:
|
17
28
|
email: josh@digitalpulp.com
|
18
29
|
executables: []
|
@@ -25,6 +36,7 @@ extra_rdoc_files:
|
|
25
36
|
files:
|
26
37
|
- .document
|
27
38
|
- .gitignore
|
39
|
+
- CHANGELOG
|
28
40
|
- LICENSE
|
29
41
|
- README.rdoc
|
30
42
|
- Rakefile
|
@@ -57,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
57
69
|
requirements: []
|
58
70
|
|
59
71
|
rubyforge_project:
|
60
|
-
rubygems_version: 1.3.
|
72
|
+
rubygems_version: 1.3.5
|
61
73
|
signing_key:
|
62
74
|
specification_version: 3
|
63
75
|
summary: CCMenu support for Integrity
|