rgithook 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data.tar.gz.sig +0 -0
  2. data/CHANGELOG +3 -0
  3. data/Manifest +42 -0
  4. data/README.rdoc +12 -0
  5. data/Rakefile +22 -0
  6. data/TODO.txt +4 -0
  7. data/bin/rgithook +13 -0
  8. data/lib/plugins/custom.rb +18 -0
  9. data/lib/plugins/db.rb +34 -0
  10. data/lib/plugins/email.rb +39 -0
  11. data/lib/plugins/html.rb +53 -0
  12. data/lib/plugins/html/commit.html.erb +26 -0
  13. data/lib/plugins/html/diff.html.erb +16 -0
  14. data/lib/plugins/rake.rb +14 -0
  15. data/lib/plugins/spec/rgithook_formatter.rb +74 -0
  16. data/lib/plugins/spec/spec_result.rb +5 -0
  17. data/lib/plugins/temp.rb +41 -0
  18. data/lib/plugins/test.rb +37 -0
  19. data/lib/plugins/twitter.rb +13 -0
  20. data/lib/rgithook.rb +36 -0
  21. data/lib/rgithook/command_line.rb +47 -0
  22. data/lib/rgithook/hook.rb +39 -0
  23. data/lib/rgithook/plugin.rb +105 -0
  24. data/lib/rgithook/rgithook.rb +229 -0
  25. data/lib/rgithook/runner.rb +178 -0
  26. data/lib/rgithook/templates/hook.rb +6 -0
  27. data/lib/rgithook/templates/rgithook.rb +18 -0
  28. data/lib/rgithook/test/unit.rb +70 -0
  29. data/rgithook.gemspec +42 -0
  30. data/test/fixtures/sample_plugin.rb +28 -0
  31. data/test/fixtures/sample_repo.zip +0 -0
  32. data/test/integration/test_install.rb +68 -0
  33. data/test/integration/test_pull_and_push.rb +20 -0
  34. data/test/plugins/test_email.rb +8 -0
  35. data/test/plugins/test_html.rb +6 -0
  36. data/test/plugins/test_spec.rb +6 -0
  37. data/test/plugins/test_test.rb +14 -0
  38. data/test/test_helper.rb +12 -0
  39. data/test/unit/test_command_line.rb +59 -0
  40. data/test/unit/test_hook.rb +31 -0
  41. data/test/unit/test_plugin.rb +36 -0
  42. data/test/unit/test_rgithook.rb +143 -0
  43. data/test/unit/test_runner.rb +95 -0
  44. metadata +174 -0
  45. metadata.gz.sig +2 -0
@@ -0,0 +1,6 @@
1
+ require 'test/test_helper'
2
+
3
+ class HtmlTest < Test::Unit::TestCase
4
+ def test_commit_to_html
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ require 'test/test_helper'
2
+
3
+ class SpecTest < Test::Unit::TestCase
4
+ def test_spec
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+ class EmailPluginTest < Test::Unit::TestCase
2
+ def test_test
3
+ with_sample_rgithook do
4
+ in_runner "test(repo.commits[0])"
5
+ assert @rgithook.repo.commits[0].properties.include? "spec"
6
+ assert @rgithook.repo.commits[0].properties.include? "cucumber"
7
+ assert @rgithook.repo.commits[0].properties.include? "spec"
8
+ assert @rgithook.repo.commits[0].properties.include? "status"
9
+ assert_equal @rgithook.repo.commits[0].properties["status"], 0
10
+
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/rgithook'
3
+ require 'rgithook/test/unit'
4
+
5
+ require 'tmpdir'
6
+ require 'tempfile'
7
+ require 'fileutils'
8
+ require 'mocha'
9
+ require 'ruby-debug'
10
+ require 'rgithook/test/unit'
11
+ require File.dirname(__FILE__) + '/fixtures/sample_plugin'
12
+
@@ -0,0 +1,59 @@
1
+ require File.dirname(__FILE__)+'/../test_helper'
2
+
3
+ module RGitHook
4
+ class CommandLineTest < Test::Unit::TestCase
5
+ def setup
6
+ @repo = mock()
7
+ @rgithook = mock()
8
+ ::Grit::Repo.stubs(:new).returns(@repo)
9
+ Dir.stubs(:pwd).returns('pwd')
10
+ end
11
+
12
+
13
+ def test_install
14
+ RGitHook.expects(:new).with('pwd').returns(@rgithook)
15
+ @rgithook.expects(:install)
16
+ CommandLine.expects(:exit).with(0)
17
+ CommandLine.execute(['--install'])
18
+ end
19
+
20
+ def test_edit
21
+ RGitHook.expects(:new).with('pwd').returns(@rgithook)
22
+ @rgithook.expects(:edit)
23
+ CommandLine.expects(:exit).with(0)
24
+ CommandLine.execute(['--edit'])
25
+ end
26
+
27
+ def test_fetch
28
+ RGitHook.expects(:new).with('pwd').returns(@rgithook)
29
+ @rgithook.expects(:fetch)
30
+ CommandLine.expects(:exit).with(0)
31
+ CommandLine.execute(['--fetch'])
32
+ end
33
+
34
+ # def test_install_in_bare_repo
35
+ # in_temp_bare_repo do |repo|
36
+ # assert system(rgithook_command_path("--install --path=#{repo.path}"))
37
+ # check_files(repo)
38
+ # end
39
+ # end
40
+
41
+
42
+ def hide
43
+ " 2>&1 > /dev/null"
44
+ end
45
+
46
+ def check_files(repo)
47
+ path = File.join(repo.path,'hooks')
48
+ file = File.join(path,'rgithook.rb')
49
+ assert File.exist?(file)
50
+ assert_equal 0600, (File.stat(file).mode & 0777)
51
+
52
+ HOOKS.each do |hook_name|
53
+ file = File.join(path,hook_name.tr('_','-'))
54
+ assert File.exist?(file)
55
+ assert_equal 0555, (File.stat(file).mode & 0777)
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,31 @@
1
+ require File.dirname(__FILE__)+'/../test_helper'
2
+
3
+
4
+ module RGitHook
5
+ class HookTest < Test::Unit::TestCase
6
+
7
+ def test_self_execute
8
+ $0 = 'potatos-super-hook'
9
+ Hook.expects(:puts).with('Executing potatos-super-hook hook')
10
+ Hook.expects(:potatos_super_hook)
11
+ Hook.execute
12
+ end
13
+
14
+
15
+ def test_post_receive
16
+
17
+ repo = mock('grit_repo')
18
+ repo.stubs(:path).returns('path')
19
+ RGitHook.stubs(:parse_path).with(:repo).returns(repo)
20
+ Hook.expects(:repo_path).at_least_once.returns('repo_path')
21
+
22
+ rgithook = mock()
23
+ RGitHook.expects(:new).with('repo_path').returns(rgithook)
24
+ STDIN.expects(:read).returns("aaaa bbbb ref1\ncccc dddd ref2\n")
25
+
26
+ rgithook.expects(:post_receive).with('aaaa','bbbb','ref1').returns( [['meth1','5'],[20,20]])
27
+ rgithook.expects(:post_receive).with('cccc','dddd','ref2').returns( [['6',7],[20,20]])
28
+ assert_equal Hook.post_receive, 7
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,36 @@
1
+ require File.dirname(__FILE__)+'/../test_helper'
2
+
3
+
4
+ class TestPlugin < Test::Unit::TestCase
5
+ include RGitHook
6
+
7
+ # def setup
8
+ # options = {:SamplePlugin => {:test_option=>:load_value, :test_group=>{:test_option_group_option=>:load_value}}}
9
+ # File.stubs(:read).with(Plugin::CONF_FILE).returns(options.to_yaml)
10
+ # end
11
+
12
+ def test_runner_methods
13
+ repo = mock_repo
14
+ Plugin.load!
15
+ runner = Runner.new(repo)
16
+ assert_equal runner.test_method, 'test_result'
17
+ end
18
+
19
+ def test_grit_commit_methods
20
+ Plugin.load!
21
+ assert ::Grit::Commit.instance_methods.include?("test_method"), 'Plugin::GritCoomit is not included in Grit::Commit'
22
+ end
23
+
24
+ def test_options_to_hash
25
+ options = Plugin.options_to_hash[:SamplePlugin]
26
+ assert_equal options[:test_option], :default_value
27
+ assert_equal options[:test_group][:test_option_group_option], :default_value
28
+ end
29
+
30
+ def test_load!
31
+ assert_nothing_raised{
32
+ Plugin.load!
33
+ }
34
+ end
35
+
36
+ end
@@ -0,0 +1,143 @@
1
+ require File.dirname(__FILE__)+'/../test_helper'
2
+
3
+ module RGitHook
4
+ class RGitHookTest < Test::Unit::TestCase
5
+ def setup
6
+ @runner = mock('runner')
7
+ @runner.stubs(:load_options)
8
+ @runner.stubs(:binding)
9
+ @runner.stubs(:load)
10
+ @repo = mock('grit_repo')
11
+ @repo.stubs(:path).returns('path')
12
+ Runner.stubs(:new).returns(@runner)
13
+ end
14
+
15
+ def test_run
16
+ @runner.expects(:run).with('code',nil,nil).returns(:done)
17
+ assert_equal :done, create_rgithook_instance.run('code')
18
+ end
19
+
20
+ def test_class_install
21
+ repo = mock('grit_repo')
22
+ repo.stubs(:path).returns('path')
23
+ ::Grit::Repo.stubs(:new).with(:repo).returns(repo)
24
+
25
+ FileUtils.stubs(:mkdir).with('path/hooks')
26
+ File.expects(:'exist?').with('path/hooks')
27
+ RGitHook.expects(:install_template).at_least(4)
28
+ RGitHook.expects(:parse_path).with(:repo).returns(repo)
29
+ RGitHook.install(:repo,false)
30
+ end
31
+
32
+ def test_install
33
+ RGitHook.expects(:install).with(@repo,true).once.returns(:return_value)
34
+ assert_equal create_rgithook_instance.install, :return_value
35
+ end
36
+
37
+
38
+ def test_class_call_editor
39
+ RGitHook.stubs(:parse_path).with(:repo).returns(mock_repo)
40
+ RGitHook.expects(:conf_file).returns(:file)
41
+ RGitHook.expects(:system).with('vi',:file )
42
+ RGitHook.call_editor(:repo)
43
+ end
44
+
45
+ def test_call_editor
46
+ rgithook = create_rgithook_instance
47
+ RGitHook.expects(:call_editor).with(@repo).once
48
+ rgithook.call_editor
49
+ end
50
+
51
+ HOOKS.each do |hook|
52
+ hook_tests = <<-EOT
53
+ def test_class_#{hook}
54
+ assert RGitHook.public_methods.include?('#{hook}'), '#{hook} must be exists in RGitHook'
55
+ end
56
+
57
+ def test_#{hook}
58
+ @rgithook = create_rgithook_instance
59
+ assert @rgithook.public_methods.include?('#{hook}'), '#{hook} must be exists in a RGitHook instance'
60
+ end
61
+ EOT
62
+ eval( hook_tests, binding, __FILE__, __LINE__-12)
63
+ end
64
+
65
+ def test_class_post_receive
66
+ rgithook = mock()
67
+ RGitHook.expects(:new).with(:dir).returns(rgithook)
68
+ rgithook.expects(:post_receive).with(:a,:b,:c)
69
+ RGitHook.post_receive(:dir,:a,:b,:c)
70
+ end
71
+
72
+
73
+
74
+ def test_post_receive
75
+ @rgithook = create_rgithook_instance
76
+ @runner.expects(:run_hooks).with(:post_receive,1,2,'3')
77
+
78
+ @rgithook.post_receive(1,2,'3')
79
+ end
80
+
81
+ def test_install_template
82
+ repo = mock('grit_repo')
83
+ repo.stubs(:path).returns('path')
84
+ RGitHook.stubs(:parse_path).with(:repo).returns(repo)
85
+ File.expects(:join).with(PATH,'rgithook','templates','from').returns(:from)
86
+ File.expects(:join).with('path','hooks','to').returns(:to)
87
+ FileUtils.expects(:install).with(:from,:to, :mode => 0666)
88
+
89
+ RGitHook.send(:install_template,:repo, 'from','to',0666)
90
+ end
91
+
92
+ def test_install_template_with_defaults
93
+ repo = mock('grit_repo')
94
+ repo.stubs(:path).returns('path')
95
+ RGitHook.stubs(:parse_path).with(:repo).returns(repo)
96
+
97
+ File.expects(:join).with(PATH,'rgithook','templates','from').returns(:from)
98
+ File.expects(:join).with('path','hooks','from').returns(:to)
99
+
100
+ FileUtils.expects(:install).with(:from,:to, :mode => 0600)
101
+
102
+ RGitHook.send(:install_template,:repo, 'from')
103
+ end
104
+
105
+ def test_new
106
+ Plugin.expects(:load!)
107
+ RGitHook.expects(:parse_path).with(@repo).returns(@repo)
108
+ Runner.expects(:new).with(@repo).returns(@runner)
109
+ @runner.expects(:load_options).with('plugin_conf_file')
110
+ @runner.expects(:load).with('hooks_file')
111
+ RGitHook.any_instance.expects(:plugin_conf_file).returns('plugin_conf_file')
112
+ RGitHook.any_instance.expects(:hooks_file).returns('hooks_file')
113
+
114
+
115
+ RGitHook.new(@repo)
116
+ end
117
+
118
+ def test_save_plugin_options
119
+ RGitHook.stubs(:parse_path).with(@repo).returns(@repo)
120
+
121
+ options = {:option => 1}
122
+ @repo.stubs(:path).returns('path')
123
+ @runner.expects(:options).returns(options)
124
+ file = mock('IO')
125
+ file.expects(:write).with(options.to_yaml)
126
+ File.expects(:open).with('path/hooks/rgithook.yaml','w').yields(file)
127
+
128
+ @rgithook = RGitHook.new(@repo)
129
+ @rgithook.save_plugin_options
130
+ end
131
+
132
+ def test_class_installed?
133
+ RGitHook.expects(:hooks_file).with(@repo).returns('path')
134
+ File.expects(:file?).with('path').returns(false)
135
+ assert !RGitHook.installed?(@repo)
136
+ end
137
+
138
+ def test_installed?
139
+ RGitHook.expects(:installed?).with(@repo).returns(true)
140
+ assert create_rgithook_instance.installed?
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,95 @@
1
+ require File.dirname(__FILE__)+'/../test_helper'
2
+
3
+ module RGitHook
4
+
5
+ class RunnerTest < Test::Unit::TestCase
6
+ def setup
7
+ @repo = mock('grit_repo')
8
+ @repo.stubs(:'is_a?').with(::Grit::Repo).returns(true)
9
+ end
10
+
11
+ def test_new
12
+ assert_raise ArgumentError do
13
+ Runner.new('.')
14
+ end
15
+
16
+ repo = mock('grit_repo')
17
+ repo.expects(:'is_a?').with(::Grit::Repo).returns(true)
18
+ assert_nothing_raised do
19
+ Runner.new repo
20
+ end
21
+
22
+ assert_instance_of Runner, Runner.new(@repo)
23
+ runner = Runner.new @repo
24
+ assert runner.options[:SamplePlugin][:test_option], :default_value
25
+ assert runner.options[:SamplePlugin][:test_group][:test_option_group_option], :default_value
26
+ end
27
+
28
+ def test_on
29
+ assert_raise(ArgumentError) { Runner.new(@repo).on(:false_hook ) {}; }
30
+ assert_nothing_raised { Runner.new(@repo).on(HOOKS.first.to_sym) {}; }
31
+ end
32
+
33
+
34
+ def test_hooks
35
+ hook = HOOKS.first.to_sym
36
+ runner = Runner.new @repo
37
+
38
+ mock = mock('test_class', :meth1 => 'meth1',:meth2 => 'meth2')
39
+ runner.expects(:fork).times(2).returns(20)
40
+ Plugin.expects(:load!)
41
+
42
+ runner.on(hook) {mock.meth1}
43
+ runner.on(hook) {mock.meth2}
44
+
45
+ runner.on(hook, :background => true) {mock.meth1}
46
+ runner.on(hook, :background => true) {mock.meth2}
47
+
48
+ assert_equal runner.run_hooks(hook), [['meth1','meth2'],[20,20]]
49
+
50
+ end
51
+
52
+ def test_foreground_hooks
53
+ hook = HOOKS.first.to_sym
54
+ runner = Runner.new @repo
55
+
56
+ mock = mock('test_class', :meth1 => 'meth1',:meth2 => 'meth2')
57
+
58
+ runner.on(hook) {mock.meth1}
59
+ runner.on(hook) {mock.meth2}
60
+
61
+ assert_equal runner.send(:run_foreground_hooks,hook), ['meth1','meth2']
62
+ end
63
+
64
+ def test_run
65
+ runner = Runner.new @repo
66
+ assert_raise SamplePluginException do
67
+ runner.run(<<-EOF
68
+ raised_method
69
+ EOF
70
+ )
71
+
72
+ end
73
+ end
74
+
75
+
76
+ def test_background_hooks
77
+ hook = HOOKS.first.to_sym
78
+ runner = Runner.new @repo
79
+
80
+
81
+ runner.expects(:fork).times(2).returns(20)
82
+ runner.on(hook, :background => true) {mock.meth1}
83
+ runner.on(hook, :background => true) {mock.meth2}
84
+
85
+ assert_equal runner.send(:run_background_hooks, hook), [20,20]
86
+ end
87
+
88
+ def test_options
89
+ runner = Runner.new @repo
90
+
91
+ assert runner.options[:SamplePlugin][:test_option], :default_value
92
+ assert runner.options[:SamplePlugin][:test_group][:test_option_group_option], :default_value
93
+ end
94
+ end
95
+ end
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rgithook
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.2
5
+ platform: ruby
6
+ authors:
7
+ - "Guillermo \xC3\x81lvarez"
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRIwEAYDVQQDDAlndWls
14
+ bGVybW8xGjAYBgoJkiaJk/IsZAEZFgpjaWVudGlmaWNvMRMwEQYKCZImiZPyLGQB
15
+ GRYDbmV0MB4XDTA4MTIxMjIxMTY1OFoXDTA5MTIxMjIxMTY1OFowRTESMBAGA1UE
16
+ AwwJZ3VpbGxlcm1vMRowGAYKCZImiZPyLGQBGRYKY2llbnRpZmljbzETMBEGCgmS
17
+ JomT8ixkARkWA25ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM/X
18
+ 0myvq1KoWadmBdL4hMVR/dvli005PkDVpNT+M/84QdRHaMJaNsJzw0yJUnzQrIQa
19
+ IGyXFMcVmeRdHjXYsYQhJhOzyucS+CbDixdUKNe5A6POrh8ksMbL4sicI/XGOdMj
20
+ vTLMJSaC7P1U+jOG1H4ScvwvKJGaJdBPce7wMTGiXfdvK+KNpouxo7k/m8FDKLZn
21
+ 9NZwxFgv/TJJ19DfnSUEBPVCVh1Ns19I5/3TyA0prUWG3Qiz+zZcjDa/iA2KPSd3
22
+ mI5qIurXJhzuxFQ39boXn+A+AYnlUeKwJvauJQ22Hwg8Rs9RkMOXyZg+u58QLGjj
23
+ X65MJHHZbym3VOU647MCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
+ HQYDVR0OBBYEFBbg59BR9Q9Xzd1fbnziQ7zmuX2NMA0GCSqGSIb3DQEBBQUAA4IB
25
+ AQBultsO6K4JtFCPUSYGrxqoWdgIVYLNJcBQwQjQWxtDcxO0j0YI92X9QWjZ8UPq
26
+ SgNVot3+lxhoHiDwZIHqit2HGWd2iOTfuXIkeZkvOwiHgkzLEglk9PqPdC2W6ZEt
27
+ g/myAoR7n3mLW5qf4S1ialflrHmDtqdgpf7b6yrLkMsjuFpfH2Hy7AZJ0oH5xk1s
28
+ oo9rsJPjZ1Xwn216zJ69XPpMaWNUOoRc0S7mJAsbHFRN/Rjvdinz68HSW1/rp9yq
29
+ GlZB6jMbJ64P4IpeXdpaTFHlCAMRBLlAMnHd18KQm0l39iVVfhTxpkvt/X4+R8Bl
30
+ IfYzkN8c0X6VDPrCKbd4IbEe
31
+ -----END CERTIFICATE-----
32
+
33
+ date: 2009-02-02 00:00:00 +01:00
34
+ default_executable:
35
+ dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: mojombo-grit
38
+ type: :runtime
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
45
+ version:
46
+ - !ruby/object:Gem::Dependency
47
+ name: mocha
48
+ type: :development
49
+ version_requirement:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: "0"
55
+ version:
56
+ description: Ruby gem specify for git hooks.
57
+ email: guillermo@cientifico.net
58
+ executables:
59
+ - rgithook
60
+ extensions: []
61
+
62
+ extra_rdoc_files:
63
+ - bin/rgithook
64
+ - CHANGELOG
65
+ - lib/plugins/custom.rb
66
+ - lib/plugins/db.rb
67
+ - lib/plugins/email.rb
68
+ - lib/plugins/html/commit.html.erb
69
+ - lib/plugins/html/diff.html.erb
70
+ - lib/plugins/html.rb
71
+ - lib/plugins/rake.rb
72
+ - lib/plugins/spec/rgithook_formatter.rb
73
+ - lib/plugins/spec/spec_result.rb
74
+ - lib/plugins/temp.rb
75
+ - lib/plugins/test.rb
76
+ - lib/plugins/twitter.rb
77
+ - lib/rgithook/command_line.rb
78
+ - lib/rgithook/hook.rb
79
+ - lib/rgithook/plugin.rb
80
+ - lib/rgithook/rgithook.rb
81
+ - lib/rgithook/runner.rb
82
+ - lib/rgithook/templates/hook.rb
83
+ - lib/rgithook/templates/rgithook.rb
84
+ - lib/rgithook/test/unit.rb
85
+ - lib/rgithook.rb
86
+ - README.rdoc
87
+ - TODO.txt
88
+ files:
89
+ - bin/rgithook
90
+ - CHANGELOG
91
+ - lib/plugins/custom.rb
92
+ - lib/plugins/db.rb
93
+ - lib/plugins/email.rb
94
+ - lib/plugins/html/commit.html.erb
95
+ - lib/plugins/html/diff.html.erb
96
+ - lib/plugins/html.rb
97
+ - lib/plugins/rake.rb
98
+ - lib/plugins/spec/rgithook_formatter.rb
99
+ - lib/plugins/spec/spec_result.rb
100
+ - lib/plugins/temp.rb
101
+ - lib/plugins/test.rb
102
+ - lib/plugins/twitter.rb
103
+ - lib/rgithook/command_line.rb
104
+ - lib/rgithook/hook.rb
105
+ - lib/rgithook/plugin.rb
106
+ - lib/rgithook/rgithook.rb
107
+ - lib/rgithook/runner.rb
108
+ - lib/rgithook/templates/hook.rb
109
+ - lib/rgithook/templates/rgithook.rb
110
+ - lib/rgithook/test/unit.rb
111
+ - lib/rgithook.rb
112
+ - Manifest
113
+ - Rakefile
114
+ - README.rdoc
115
+ - rgithook.gemspec
116
+ - test/fixtures/sample_plugin.rb
117
+ - test/fixtures/sample_repo.zip
118
+ - test/integration/test_install.rb
119
+ - test/integration/test_pull_and_push.rb
120
+ - test/plugins/test_email.rb
121
+ - test/plugins/test_html.rb
122
+ - test/plugins/test_spec.rb
123
+ - test/plugins/test_test.rb
124
+ - test/test_helper.rb
125
+ - test/unit/test_command_line.rb
126
+ - test/unit/test_hook.rb
127
+ - test/unit/test_plugin.rb
128
+ - test/unit/test_rgithook.rb
129
+ - test/unit/test_runner.rb
130
+ - TODO.txt
131
+ has_rdoc: true
132
+ homepage: http://github.com/guillermo/rgithook2
133
+ post_install_message:
134
+ rdoc_options:
135
+ - --line-numbers
136
+ - --inline-source
137
+ - --title
138
+ - Rgithook
139
+ - --main
140
+ - README.rdoc
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: "0"
148
+ version:
149
+ required_rubygems_version: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: "1.2"
154
+ version:
155
+ requirements: []
156
+
157
+ rubyforge_project: rgithook
158
+ rubygems_version: 1.3.1
159
+ signing_key:
160
+ specification_version: 2
161
+ summary: You can deploy updated code, restart the web server, run the tests, email the diff, etc... You can use a cron to pull or a githook to run when pushed to the repo.
162
+ test_files:
163
+ - test/integration/test_install.rb
164
+ - test/integration/test_pull_and_push.rb
165
+ - test/plugins/test_email.rb
166
+ - test/plugins/test_html.rb
167
+ - test/plugins/test_spec.rb
168
+ - test/plugins/test_test.rb
169
+ - test/test_helper.rb
170
+ - test/unit/test_command_line.rb
171
+ - test/unit/test_hook.rb
172
+ - test/unit/test_plugin.rb
173
+ - test/unit/test_rgithook.rb
174
+ - test/unit/test_runner.rb