heidi 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. data/Gemfile +1 -0
  2. data/Gemfile.lock +3 -0
  3. data/README.rdoc +20 -0
  4. data/VERSION +1 -1
  5. data/bin/heidi +8 -82
  6. data/heidi.gemspec +49 -10
  7. data/lib/heidi.rb +4 -0
  8. data/lib/heidi/build.rb +42 -10
  9. data/lib/heidi/builder.rb +7 -2
  10. data/lib/heidi/hook.rb +2 -0
  11. data/lib/heidi/integrator.rb +11 -5
  12. data/lib/heidi/project.rb +37 -24
  13. data/lib/heidi/shell.rb +119 -0
  14. data/lib/heidi/tester.rb +6 -5
  15. data/lib/heidi/web.rb +65 -4
  16. data/lib/heidi/web/assets/css/bootstrap-responsive.css +643 -0
  17. data/lib/heidi/web/assets/css/bootstrap.css +3682 -0
  18. data/lib/heidi/web/{public/css/screen.css → assets/css/colors.css} +1 -75
  19. data/lib/heidi/web/assets/css/docs.css +772 -0
  20. data/lib/heidi/web/{public → assets}/images/HeidiBlue-480.png +0 -0
  21. data/lib/heidi/web/{public → assets}/images/HeidiBlue.gif +0 -0
  22. data/lib/heidi/web/{public → assets}/images/OrganisedMinds.png +0 -0
  23. data/lib/heidi/web/{public → assets}/images/heidi.jpeg +0 -0
  24. data/lib/heidi/web/assets/img/glyphicons-halflings-white.png +0 -0
  25. data/lib/heidi/web/assets/img/glyphicons-halflings.png +0 -0
  26. data/lib/heidi/web/assets/img/glyphicons/glyphicons_009_magic.png +0 -0
  27. data/lib/heidi/web/assets/img/glyphicons/glyphicons_042_group.png +0 -0
  28. data/lib/heidi/web/assets/img/glyphicons/glyphicons_079_podium.png +0 -0
  29. data/lib/heidi/web/assets/img/glyphicons/glyphicons_082_roundabout.png +0 -0
  30. data/lib/heidi/web/assets/img/glyphicons/glyphicons_155_show_thumbnails.png +0 -0
  31. data/lib/heidi/web/assets/img/glyphicons/glyphicons_163_iphone.png +0 -0
  32. data/lib/heidi/web/assets/img/glyphicons/glyphicons_214_resize_small.png +0 -0
  33. data/lib/heidi/web/assets/img/glyphicons/glyphicons_266_book_open.png +0 -0
  34. data/lib/heidi/web/assets/js/README.md +106 -0
  35. data/lib/heidi/web/assets/js/application.js +180 -0
  36. data/lib/heidi/web/assets/js/bootstrap-alert.js +94 -0
  37. data/lib/heidi/web/assets/js/bootstrap-button.js +100 -0
  38. data/lib/heidi/web/assets/js/bootstrap-carousel.js +157 -0
  39. data/lib/heidi/web/assets/js/bootstrap-collapse.js +136 -0
  40. data/lib/heidi/web/assets/js/bootstrap-dropdown.js +92 -0
  41. data/lib/heidi/web/assets/js/bootstrap-modal.js +210 -0
  42. data/lib/heidi/web/assets/js/bootstrap-popover.js +95 -0
  43. data/lib/heidi/web/assets/js/bootstrap-scrollspy.js +125 -0
  44. data/lib/heidi/web/assets/js/bootstrap-tab.js +130 -0
  45. data/lib/heidi/web/assets/js/bootstrap-tooltip.js +270 -0
  46. data/lib/heidi/web/assets/js/bootstrap-transition.js +51 -0
  47. data/lib/heidi/web/assets/js/bootstrap-typeahead.js +271 -0
  48. data/lib/heidi/web/assets/js/google-code-prettify/prettify.css +30 -0
  49. data/lib/heidi/web/assets/js/google-code-prettify/prettify.js +28 -0
  50. data/lib/heidi/web/assets/js/jquery.js +9252 -0
  51. data/lib/heidi/web/views/build.erb +40 -24
  52. data/lib/heidi/web/views/commit.erb +10 -7
  53. data/lib/heidi/web/views/config.erb +34 -18
  54. data/lib/heidi/web/views/home.erb +44 -25
  55. data/lib/heidi/web/views/layout.erb +57 -4
  56. data/lib/heidi/web/views/new_project.erb +56 -0
  57. data/lib/heidi/web/views/project.erb +114 -32
  58. data/lib/heidi/web/views/project_header.erb +20 -0
  59. data/spec/heidi/build_spec.rb +163 -2
  60. data/spec/heidi/builder_spec.rb +61 -1
  61. data/spec/heidi/hook_spec.rb +47 -1
  62. data/spec/heidi/integrator_spec.rb +96 -1
  63. data/spec/heidi/project_spec.rb +177 -2
  64. data/spec/heidi/shell_spec.rb +67 -0
  65. data/spec/heidi/web_spec.rb +78 -2
  66. data/spec/heidi_spec.rb +16 -5
  67. data/spec/spec_helper.rb +1 -1
  68. data/spec/support/01_rworld.rb +9 -0
  69. data/spec/support/mock_project.rb +39 -0
  70. data/spec/support/survivable.rb +10 -0
  71. metadata +131 -79
  72. data/spec/heidi/tester_spec.rb +0 -5
@@ -0,0 +1,67 @@
1
+ require 'spec_helper'
2
+ require 'heidi/shell'
3
+
4
+ require 'tmpdir'
5
+ require 'fileutils'
6
+
7
+ describe Heidi::Shell do
8
+ before(:all) do
9
+ @here = Dir.pwd
10
+ @dir = Dir.mktmpdir(nil, "/tmp")
11
+ FileUtils.chdir(@dir)
12
+ end
13
+
14
+ after(:all) do
15
+ FileUtils.remove_entry_secure @dir
16
+ FileUtils.chdir(@here)
17
+ end
18
+
19
+ before(:each) do
20
+ @shell = Class.new
21
+ @shell.extend(Heidi::Shell)
22
+ end
23
+
24
+ it "should create a root directory" do
25
+ @shell.new_heidi_root("test")
26
+ File.exists?(File.join(@dir, "test")).should be_true
27
+ File.directory?(File.join(@dir, "test", "projects")).should be_true
28
+ File.exists?(File.join(@dir, "test", "Gemfile")).should be_true
29
+ end
30
+
31
+ it "should create a project directory" do
32
+ FileUtils.chdir(File.join(@dir, "test"))
33
+ @shell.new_project("test", "git://github.com/OrganisedMinds/heidi.git")
34
+ File.directory?(File.join(@dir, "test", "projects", "test")).should be_true
35
+ File.directory?(File.join(@dir, "test", "projects", "test", "cached")).should be_true
36
+ File.directory?(File.join(@dir, "test", "projects", "test", "cached", ".git")).should be_true
37
+ end
38
+
39
+ it "should perform integration" do
40
+ FileUtils.chdir(File.join(@dir, "test"))
41
+
42
+ # Patch the default test so it will write a random file.
43
+ # Then we can test the existance of the file
44
+ rndm = "#{rand(1000)}.#{rand(1000)}"
45
+ File.exists?(File.join(@dir, "test", "projects", "test", ".test_#{rndm}")).should be_false
46
+
47
+ File.open(File.join(@dir, "test", "projects", "test", "hooks", "tests", "01_rspec"), File::TRUNC|File::WRONLY) do |f|
48
+ f.puts %Q{#!/bin/sh
49
+
50
+ touch $HEIDI_DIR/.test_#{rndm}
51
+ }
52
+ end
53
+
54
+ # do the integration
55
+ @shell.integrate("test")
56
+
57
+ # and now it should be true
58
+ File.exists?(File.join(@dir, "test", "projects", "test", ".test_#{rndm}")).should be_true
59
+ end
60
+
61
+ it "should remove a project directory" do
62
+ FileUtils.chdir(File.join(@dir, "test"))
63
+ @shell.remove_project("test")
64
+ File.directory?(File.join(@dir, "test", "projects", "test", "cached")).should be_false
65
+ File.directory?(File.join(@dir, "test", "projects", "test")).should be_true
66
+ end
67
+ end
@@ -1,6 +1,82 @@
1
1
  require 'spec_helper'
2
+ require 'rack/test'
2
3
  require 'heidi/web'
3
4
 
4
5
  describe Heidi::Web do
5
- pending "more tests please!"
6
- end
6
+ before :all do
7
+ fake_me_a_heidi
8
+ end
9
+
10
+ before :each do
11
+ Heidi::Web.stub(:project_path).and_return(@fake)
12
+ @project = @heidi[:heidi_test]
13
+ @project.name = "Heidi Test Project on the web"
14
+ end
15
+
16
+ after :all do
17
+ FileUtils.remove_entry_secure @fake
18
+ end
19
+
20
+ include Rack::Test::Methods
21
+
22
+ def app
23
+ Heidi::Web
24
+ end
25
+
26
+ it "should show a homepage" do
27
+ get '/'
28
+ last_response.status.should == 200
29
+ last_response.body.should =~ /Heidi/
30
+ end
31
+
32
+ it "should display the projects on the homepage" do
33
+ get '/'
34
+ last_response.status.should == 200
35
+ last_response.body.should =~ /heidi_test/
36
+ end
37
+
38
+ it "should display a project creation form" do
39
+ get '/projects/'
40
+ last_response.status.should == 200
41
+ end
42
+
43
+ it "should display the project page" do
44
+ get '/projects/heidi_test'
45
+ last_response.status.should == 200
46
+ last_response.body.should =~ /<h1>Heidi Test Project on the web<\/h1>/
47
+ end
48
+
49
+ it "should display the configuration page" do
50
+ get '/projects/heidi_test/configure'
51
+ last_response.status.should == 200
52
+ last_response.body.should =~ /Configuration/
53
+ end
54
+
55
+ describe "Project internals" do
56
+ before :each do
57
+ @project.integrate
58
+ end
59
+
60
+ it "should display a build" do
61
+ get "/projects/heidi_test/build/#{@project.builds.last.commit}"
62
+ last_response.status.should == 200
63
+
64
+ title = Regexp.new("<h2 class=[^>]+>build #{@project.builds.last.commit}</h2>", true)
65
+ last_response.body.should =~ title
66
+ end
67
+
68
+ it "should display a commit" do
69
+ get "/projects/heidi_test/commit/#{@project.commit}"
70
+ last_response.status.should == 200
71
+ last_response.body.should =~ Regexp.new("<h2>#{@project.commit}</h2>")
72
+
73
+ author = @project.author.gsub("<", "&lt;")
74
+ author.gsub!(">", "&gt;")
75
+ check = Regexp.new("Author: #{author}")
76
+ last_response.body.should =~ check
77
+ end
78
+
79
+ it "should be able to lock the project" do
80
+ end
81
+ end
82
+ end
@@ -2,13 +2,24 @@ require 'spec_helper'
2
2
 
3
3
  describe Heidi do
4
4
  before(:all) do
5
- shell = SimpleShell.new("/")
6
- shell.mkdir("-p", "/tmp/heidi_spec/projects/one")
5
+ fake_me_a_heidi
6
+ end
7
+
8
+ after(:all) do
9
+ FileUtils.remove_entry_secure @fake
7
10
  end
8
11
 
9
12
  it "should gather projects on load" do
10
- h = Heidi.new("/tmp/heidi_spec")
11
- h.projects.should be_kind_of(Array)
12
- h.projects.count.should == 1
13
+ @heidi.projects.should be_kind_of(Array)
14
+ @heidi.projects.count.should == 1
15
+ end
16
+
17
+ it "should return projects" do
18
+ @heidi.projects.first.should be_kind_of(Heidi::Project)
19
+ end
20
+
21
+ it "should respond to [] syntax" do
22
+ @heidi[:heidi_test].should be_kind_of(Heidi::Project)
23
+ @heidi["heidi_test"].should == @heidi.projects.first
13
24
  end
14
25
  end
@@ -5,7 +5,7 @@ require 'heidi'
5
5
 
6
6
  # Requires supporting files with custom matchers and macros, etc,
7
7
  # in ./support/ and its subdirectories.
8
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each {|f| require f}
9
9
 
10
10
  RSpec.configure do |config|
11
11
  config.tty = true
@@ -0,0 +1,9 @@
1
+ module RSpecWorldHelper
2
+ def RWorld(constant)
3
+ RSpec.configure do |config|
4
+ config.include constant
5
+ end
6
+ end
7
+ end
8
+
9
+ include RSpecWorldHelper
@@ -0,0 +1,39 @@
1
+ require 'simple_shell'
2
+ require 'tmpdir'
3
+
4
+ module MockProject
5
+ def fake_me_a_heidi
6
+ this_repo = Dir.pwd rescue ENV['PWD']
7
+
8
+ # create a heidi dir with the bare minimum
9
+ @fake = Dir.mktmpdir(nil, '/tmp')
10
+
11
+ shell = SimpleShell.new(@fake)
12
+ shell.mkdir "-p", "projects/heidi_test"
13
+ shell.in "projects/heidi_test" do |sh|
14
+ sh.git %W(clone #{this_repo} cached)
15
+ sh.mkdir "logs"
16
+ %w(build tests failure success before).each do |hook|
17
+ sh.mkdir %W(-p hooks/#{hook})
18
+ end
19
+ end
20
+
21
+ spec = File.join(@fake, "projects/heidi_test/hooks/tests", "01_rspec")
22
+
23
+ # this test hook touches a file so we can test if it did touch a file :-)
24
+ File.open(spec, File::CREAT|File::WRONLY) do |f|
25
+ f.puts %Q(#!/bin/sh
26
+
27
+ touch #{@fake}/#{File.basename(@fake)})
28
+ end
29
+
30
+ shell.chmod %W(+x #{spec})
31
+
32
+ @heidi = Heidi.new(@fake)
33
+ rescue Exception => ex
34
+ $stderr.puts "Faking heidi failed... #{ex.message}"
35
+ $stderr.puts ex.backtrace.join("\n")
36
+ end
37
+ end
38
+
39
+ RWorld(MockProject)
@@ -0,0 +1,10 @@
1
+ module Survivable
2
+ def survivable(&block)
3
+ begin
4
+ yield
5
+ rescue Exception => ex
6
+ end
7
+ end
8
+ end
9
+
10
+ RWorld(Survivable)
metadata CHANGED
@@ -1,114 +1,127 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: heidi
3
- version: !ruby/object:Gem::Version
4
- version: 0.3.1
3
+ version: !ruby/object:Gem::Version
5
4
  prerelease:
5
+ version: 0.4.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Hartog C. de Mik
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-15 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
12
+
13
+ date: 2012-03-01 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
15
16
  name: thin
16
- requirement: &88439510 !ruby/object:Gem::Requirement
17
+ requirement: &id001 !ruby/object:Gem::Requirement
17
18
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
22
23
  type: :runtime
23
24
  prerelease: false
24
- version_requirements: *88439510
25
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
26
27
  name: sinatra
27
- requirement: &88439190 !ruby/object:Gem::Requirement
28
+ requirement: &id002 !ruby/object:Gem::Requirement
28
29
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *88439190
36
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
37
38
  name: simple_shell
38
- requirement: &88438880 !ruby/object:Gem::Requirement
39
+ requirement: &id003 !ruby/object:Gem::Requirement
39
40
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
44
45
  type: :runtime
45
46
  prerelease: false
46
- version_requirements: *88438880
47
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
48
49
  name: rspec
49
- requirement: &88438590 !ruby/object:Gem::Requirement
50
+ requirement: &id004 !ruby/object:Gem::Requirement
50
51
  none: false
51
- requirements:
52
+ requirements:
52
53
  - - ~>
53
- - !ruby/object:Gem::Version
54
+ - !ruby/object:Gem::Version
54
55
  version: 2.8.0
55
56
  type: :development
56
57
  prerelease: false
57
- version_requirements: *88438590
58
- - !ruby/object:Gem::Dependency
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
60
+ name: rack-test
61
+ requirement: &id005 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
59
71
  name: rdoc
60
- requirement: &88438290 !ruby/object:Gem::Requirement
72
+ requirement: &id006 !ruby/object:Gem::Requirement
61
73
  none: false
62
- requirements:
74
+ requirements:
63
75
  - - ~>
64
- - !ruby/object:Gem::Version
65
- version: '3.12'
76
+ - !ruby/object:Gem::Version
77
+ version: "3.12"
66
78
  type: :development
67
79
  prerelease: false
68
- version_requirements: *88438290
69
- - !ruby/object:Gem::Dependency
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
70
82
  name: bundler
71
- requirement: &88438000 !ruby/object:Gem::Requirement
83
+ requirement: &id007 !ruby/object:Gem::Requirement
72
84
  none: false
73
- requirements:
85
+ requirements:
74
86
  - - ~>
75
- - !ruby/object:Gem::Version
87
+ - !ruby/object:Gem::Version
76
88
  version: 1.0.0
77
89
  type: :development
78
90
  prerelease: false
79
- version_requirements: *88438000
80
- - !ruby/object:Gem::Dependency
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
81
93
  name: jeweler
82
- requirement: &88437700 !ruby/object:Gem::Requirement
94
+ requirement: &id008 !ruby/object:Gem::Requirement
83
95
  none: false
84
- requirements:
96
+ requirements:
85
97
  - - ~>
86
- - !ruby/object:Gem::Version
98
+ - !ruby/object:Gem::Version
87
99
  version: 1.8.3
88
100
  type: :development
89
101
  prerelease: false
90
- version_requirements: *88437700
91
- - !ruby/object:Gem::Dependency
102
+ version_requirements: *id008
103
+ - !ruby/object:Gem::Dependency
92
104
  name: rcov
93
- requirement: &88437390 !ruby/object:Gem::Requirement
105
+ requirement: &id009 !ruby/object:Gem::Requirement
94
106
  none: false
95
- requirements:
96
- - - ! '>='
97
- - !ruby/object:Gem::Version
98
- version: '0'
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: "0"
99
111
  type: :development
100
112
  prerelease: false
101
- version_requirements: *88437390
113
+ version_requirements: *id009
102
114
  description: CI-Joe alike CI system called Heidi.
103
115
  email: hartog@organisedminds.com
104
- executables:
116
+ executables:
105
117
  - heidi
106
118
  - heidi_web
107
119
  extensions: []
108
- extra_rdoc_files:
120
+
121
+ extra_rdoc_files:
109
122
  - LICENSE.txt
110
123
  - README.rdoc
111
- files:
124
+ files:
112
125
  - .document
113
126
  - .rspec
114
127
  - Gemfile
@@ -127,55 +140,94 @@ files:
127
140
  - lib/heidi/hook.rb
128
141
  - lib/heidi/integrator.rb
129
142
  - lib/heidi/project.rb
143
+ - lib/heidi/shell.rb
130
144
  - lib/heidi/tester.rb
131
145
  - lib/heidi/web.rb
132
- - lib/heidi/web/public/css/screen.css
133
- - lib/heidi/web/public/images/HeidiBlue-480.png
134
- - lib/heidi/web/public/images/HeidiBlue.gif
135
- - lib/heidi/web/public/images/OrganisedMinds.png
136
- - lib/heidi/web/public/images/heidi.jpeg
146
+ - lib/heidi/web/assets/css/bootstrap-responsive.css
147
+ - lib/heidi/web/assets/css/bootstrap.css
148
+ - lib/heidi/web/assets/css/colors.css
149
+ - lib/heidi/web/assets/css/docs.css
150
+ - lib/heidi/web/assets/images/HeidiBlue-480.png
151
+ - lib/heidi/web/assets/images/HeidiBlue.gif
152
+ - lib/heidi/web/assets/images/OrganisedMinds.png
153
+ - lib/heidi/web/assets/images/heidi.jpeg
154
+ - lib/heidi/web/assets/img/glyphicons-halflings-white.png
155
+ - lib/heidi/web/assets/img/glyphicons-halflings.png
156
+ - lib/heidi/web/assets/img/glyphicons/glyphicons_009_magic.png
157
+ - lib/heidi/web/assets/img/glyphicons/glyphicons_042_group.png
158
+ - lib/heidi/web/assets/img/glyphicons/glyphicons_079_podium.png
159
+ - lib/heidi/web/assets/img/glyphicons/glyphicons_082_roundabout.png
160
+ - lib/heidi/web/assets/img/glyphicons/glyphicons_155_show_thumbnails.png
161
+ - lib/heidi/web/assets/img/glyphicons/glyphicons_163_iphone.png
162
+ - lib/heidi/web/assets/img/glyphicons/glyphicons_214_resize_small.png
163
+ - lib/heidi/web/assets/img/glyphicons/glyphicons_266_book_open.png
164
+ - lib/heidi/web/assets/js/README.md
165
+ - lib/heidi/web/assets/js/application.js
166
+ - lib/heidi/web/assets/js/bootstrap-alert.js
167
+ - lib/heidi/web/assets/js/bootstrap-button.js
168
+ - lib/heidi/web/assets/js/bootstrap-carousel.js
169
+ - lib/heidi/web/assets/js/bootstrap-collapse.js
170
+ - lib/heidi/web/assets/js/bootstrap-dropdown.js
171
+ - lib/heidi/web/assets/js/bootstrap-modal.js
172
+ - lib/heidi/web/assets/js/bootstrap-popover.js
173
+ - lib/heidi/web/assets/js/bootstrap-scrollspy.js
174
+ - lib/heidi/web/assets/js/bootstrap-tab.js
175
+ - lib/heidi/web/assets/js/bootstrap-tooltip.js
176
+ - lib/heidi/web/assets/js/bootstrap-transition.js
177
+ - lib/heidi/web/assets/js/bootstrap-typeahead.js
178
+ - lib/heidi/web/assets/js/google-code-prettify/prettify.css
179
+ - lib/heidi/web/assets/js/google-code-prettify/prettify.js
180
+ - lib/heidi/web/assets/js/jquery.js
137
181
  - lib/heidi/web/views/build.erb
138
182
  - lib/heidi/web/views/commit.erb
139
183
  - lib/heidi/web/views/config.erb
140
184
  - lib/heidi/web/views/home.erb
141
185
  - lib/heidi/web/views/layout.erb
186
+ - lib/heidi/web/views/new_project.erb
142
187
  - lib/heidi/web/views/project.erb
188
+ - lib/heidi/web/views/project_header.erb
143
189
  - spec/heidi/build_spec.rb
144
190
  - spec/heidi/builder_spec.rb
145
191
  - spec/heidi/git_spec.rb
146
192
  - spec/heidi/hook_spec.rb
147
193
  - spec/heidi/integrator_spec.rb
148
194
  - spec/heidi/project_spec.rb
149
- - spec/heidi/tester_spec.rb
195
+ - spec/heidi/shell_spec.rb
150
196
  - spec/heidi/web_spec.rb
151
197
  - spec/heidi_spec.rb
152
198
  - spec/spec_helper.rb
199
+ - spec/support/01_rworld.rb
200
+ - spec/support/mock_project.rb
201
+ - spec/support/survivable.rb
153
202
  homepage: http://github.com/coffeeaddict/heid
154
- licenses:
203
+ licenses:
155
204
  - MIT
156
205
  post_install_message:
157
206
  rdoc_options: []
158
- require_paths:
207
+
208
+ require_paths:
159
209
  - lib
160
- required_ruby_version: !ruby/object:Gem::Requirement
210
+ required_ruby_version: !ruby/object:Gem::Requirement
161
211
  none: false
162
- requirements:
163
- - - ! '>='
164
- - !ruby/object:Gem::Version
165
- version: '0'
166
- segments:
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ hash: -4420829798417389444
216
+ segments:
167
217
  - 0
168
- hash: 1033029007
169
- required_rubygems_version: !ruby/object:Gem::Requirement
218
+ version: "0"
219
+ required_rubygems_version: !ruby/object:Gem::Requirement
170
220
  none: false
171
- requirements:
172
- - - ! '>='
173
- - !ruby/object:Gem::Version
174
- version: '0'
221
+ requirements:
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ version: "0"
175
225
  requirements: []
226
+
176
227
  rubyforge_project:
177
- rubygems_version: 1.8.10
228
+ rubygems_version: 1.8.16
178
229
  signing_key:
179
230
  specification_version: 3
180
231
  summary: A naive CI system
181
232
  test_files: []
233
+