git-commit-notifier 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,83 @@
1
+ Commit dce6ade4cdc2833b53bd600ef10f9bce83c7102d
2
+ Author: Andrew Kaspick <andrew@redlinesoftware.com>
3
+ Date: Tue Sep 30 14:15:36 2008 -0500
4
+
5
+ Ensure select_tag#name attribute uses [] when :multiple is true. [#1146 state:resolved]
6
+
7
+ Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
8
+
9
+ diff --git a/actionpack/lib/action_view/helpers/form_tag_helper.rb b/actionpack/lib/action_view/helpers/form_tag_helper.rb
10
+ index 208bf91..7492348 100644
11
+ --- a/actionpack/lib/action_view/helpers/form_tag_helper.rb
12
+ +++ b/actionpack/lib/action_view/helpers/form_tag_helper.rb
13
+ @@ -62,7 +62,7 @@ module ActionView
14
+ # # <option>3</option><option>4</option></select>
15
+ #
16
+ # select_tag "colors", "<option>Red</option><option>Green</option><option>Blue</option>", :multiple => true
17
+ - # # => <select id="colors" multiple="multiple" name="colors"><option>Red</option>
18
+ + # # => <select id="colors" multiple="multiple" name="colors[]"><option>Red</option>
19
+ # # <option>Green</option><option>Blue</option></select>
20
+ #
21
+ # select_tag "locations", "<option>Home</option><option selected="selected">Work</option><option>Out</option>"
22
+ @@ -70,14 +70,15 @@ module ActionView
23
+ # # <option>Out</option></select>
24
+ #
25
+ # select_tag "access", "<option>Read</option><option>Write</option>", :multiple => true, :class => 'form_input'
26
+ - # # => <select class="form_input" id="access" multiple="multiple" name="access"><option>Read</option>
27
+ + # # => <select class="form_input" id="access" multiple="multiple" name="access[]"><option>Read</option>
28
+ # # <option>Write</option></select>
29
+ #
30
+ # select_tag "destination", "<option>NYC</option><option>Paris</option><option>Rome</option>", :disabled => true
31
+ # # => <select disabled="disabled" id="destination" name="destination"><option>NYC</option>
32
+ # # <option>Paris</option><option>Rome</option></select>
33
+ def select_tag(name, option_tags = nil, options = {})
34
+ - content_tag :select, option_tags, { "name" => name, "id" => name }.update(options.stringify_keys)
35
+ + html_name = (options[:multiple] == true && !name.to_s.ends_with?("[]")) ? "#{name}[]" : name
36
+ + content_tag :select, option_tags, { "name" => html_name, "id" => name }.update(options.stringify_keys)
37
+ end
38
+
39
+ # Creates a standard text field; use these text fields to input smaller chunks of text like a username
40
+ diff --git a/railties/doc/guides/source/images/icons/callouts/11.png b/railties/doc/guides/source/images/icons/callouts/11.png
41
+ new file mode 100644
42
+ index 0000000..ce47dac
43
+ Binary files /dev/null and b/railties/doc/guides/source/images/icons/callouts/11.png differ
44
+ diff --git a/railties/doc/guides/source/icons/up.png b/railties/doc/guides/source/icons/up.png
45
+ deleted file mode 100644
46
+ index 2db1ce6..0000000
47
+ Binary files a/railties/doc/guides/source/icons/up.png and /dev/null differ
48
+ diff --git a/railties/doc/guides/source/icons/README b/railties/doc/guides/source/icons/README
49
+ deleted file mode 100644
50
+ index f12b2a7..0000000
51
+ --- a/railties/doc/guides/source/icons/README
52
+ +++ /dev/null
53
+ @@ -1,5 +0,0 @@
54
+ -Replaced the plain DocBook XSL admonition icons with Jimmac's DocBook
55
+ -icons (http://jimmac.musichall.cz/ikony.php3). I dropped transparency
56
+ -from the Jimmac icons to get round MS IE and FOP PNG incompatibilies.
57
+ -
58
+ -Stuart Rackham
59
+ diff --git a/railties/doc/guides/source/images/icons/README b/railties/doc/guides/source/images/icons/README
60
+ new file mode 100644
61
+ index 0000000..f12b2a7
62
+ --- /dev/null
63
+ +++ b/railties/doc/guides/source/images/icons/README
64
+ @@ -0,0 +1,5 @@
65
+ +Replaced the plain DocBook XSL admonition icons with Jimmac's DocBook
66
+ +icons (http://jimmac.musichall.cz/ikony.php3). I dropped transparency
67
+ +from the Jimmac icons to get round MS IE and FOP PNG incompatibilies.
68
+ +
69
+ +Stuart Rackham
70
+ diff --git a/actionpack/test/template/form_tag_helper_test.rb b/actionpack/test/template/form_tag_helper_test.rb
71
+ index ad8baef..1849a61 100644
72
+ --- a/actionpack/test/template/form_tag_helper_test.rb
73
+ +++ b/actionpack/test/template/form_tag_helper_test.rb
74
+ @@ -211,7 +211,8 @@ class FormTagHelperTest < ActionView::TestCase
75
+ def test_boolean_optios
76
+ assert_dom_equal %(<input checked="checked" disabled="disabled" id="admin" name="admin" readonly="readonly" type="checkbox" value="1" />), check_box_tag("admin", 1, true, 'disabled' => true, :readonly => "yes")
77
+ assert_dom_equal %(<input checked="checked" id="admin" name="admin" type="checkbox" value="1" />), check_box_tag("admin", 1, true, :disabled => false, :readonly => nil)
78
+ - assert_dom_equal %(<select id="people" multiple="multiple" name="people"><option>david</option></select>), select_tag("people", "<option>david</option>", :multiple => true)
79
+ + assert_dom_equal %(<select id="people" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people", "<option>david</option>", :multiple => true)
80
+ + assert_dom_equal %(<select id="people[]" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people[]", "<option>david</option>", :multiple => true)
81
+ assert_dom_equal %(<select id="people" name="people"><option>david</option></select>), select_tag("people", "<option>david</option>", :multiple => nil)
82
+ end
83
+
@@ -0,0 +1,76 @@
1
+ commit e28ad77bba0574241e6eb64dfd0c1291b221effe
2
+ Author: Tom Stuart <tom@experthuman.com>
3
+ Date: Wed Oct 8 09:31:00 2008 +0100
4
+
5
+ Allow use of :path_prefix and :name_prefix outside of namespaced routes. [#1188 state:resolved]
6
+
7
+ Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
8
+
9
+ diff --git a/actionpack/lib/action_controller/routing/builder.rb b/actionpack/lib/action_controller/routing/builder.rb
10
+ index 5704d9d..7b888fa 100644
11
+ --- a/actionpack/lib/action_controller/routing/builder.rb
12
+ +++ b/actionpack/lib/action_controller/routing/builder.rb
13
+ @@ -60,12 +60,10 @@ module ActionController
14
+ # segments are passed alongside in order to distinguish between default values
15
+ # and requirements.
16
+ def divide_route_options(segments, options)
17
+ - options = options.dup
18
+ + options = options.except(:path_prefix, :name_prefix)
19
+
20
+ if options[:namespace]
21
+ options[:controller] = "#{options.delete(:namespace).sub(/\/$/, '')}/#{options[:controller]}"
22
+ - options.delete(:path_prefix)
23
+ - options.delete(:name_prefix)
24
+ end
25
+
26
+ requirements = (options.delete(:requirements) || {}).dup
27
+ @@ -68,7 +73,9 @@ class Client < ActiveRecord::Base
28
+ end
29
+
30
+ def removable?
31
+ - self.projects.find(:first, :select => 'id').nil? && self.invoices.find(:first, :select => 'id').nil?
32
+ + self.projects.find(:first, :select => 'id').nil? &&
33
+ + self.invoices.find(:first, :select => 'id').nil? &&
34
+ + self.recurring_invoices.find(:first, :select => 'id').nil?
35
+ end
36
+
37
+ # some comment
38
+ diff --git a/actionpack/test/controller/routing_test.rb b/actionpack/test/controller/routing_test.rb
39
+ index 1eb26a7..9699a04 100644
40
+ --- a/actionpack/test/controller/routing_test.rb
41
+ +++ b/actionpack/test/controller/routing_test.rb
42
+ @@ -924,6 +924,20 @@ uses_mocha 'LegacyRouteSet, Route, RouteSet and RouteLoading' do
43
+
44
+ end
45
+
46
+ + def test_named_route_with_name_prefix
47
+ + rs.add_named_route :page, 'page', :controller => 'content', :action => 'show_page', :name_prefix => 'my_'
48
+ + x = setup_for_named_route
49
+ + assert_equal("http://named.route.test/page",
50
+ + x.send(:my_page_url))
51
+ + end
52
+ +
53
+ + def test_named_route_with_path_prefix
54
+ + rs.add_named_route :page, 'page', :controller => 'content', :action => 'show_page', :path_prefix => 'my'
55
+ + x = setup_for_named_route
56
+ + assert_equal("http://named.route.test/my/page",
57
+ + x.send(:page_url))
58
+ + end
59
+ +
60
+ def test_named_route_with_nested_controller
61
+ rs.add_named_route :users, 'admin/user', :controller => 'admin/user', :action => 'index'
62
+ x = setup_for_named_route
63
+ @@ -2147,6 +2161,13 @@ uses_mocha 'LegacyRouteSet, Route, RouteSet and RouteLoading' do
64
+ assert_equal [:x], set.extra_keys(args)
65
+ end
66
+
67
+ + def test_generate_with_path_prefix
68
+ + set.draw { |map| map.connect ':controller/:action/:id', :path_prefix => 'my' }
69
+ +
70
+ + args = { :controller => "foo", :action => "bar", :id => "7", :x => "y" }
71
+ + assert_equal "/my/foo/bar/7?x=y", set.generate(args)
72
+ + end
73
+ +
74
+ def test_named_routes_are_never_relative_to_modules
75
+ set.draw do |map|
76
+ map.connect "/connection/manage/:action", :controller => 'connection/manage'
@@ -0,0 +1,21 @@
1
+ require 'test/unit'
2
+
3
+ unless defined? REVISIONS
4
+ REVISIONS = ['e28ad77bba0574241e6eb64dfd0c1291b221effe', # 2 files updated
5
+ 'a4629e707d80a5769f7a71ca6ed9471015e14dc9', # 1 file updated
6
+ 'dce6ade4cdc2833b53bd600ef10f9bce83c7102d', # 6 files updated
7
+ '51b986619d88f7ba98be7d271188785cbbb541a0'] # 3 files updated
8
+
9
+ end
10
+
11
+ class Test::Unit::TestCase
12
+
13
+ def read_file(name)
14
+ out = ''
15
+ File.open(name).each { |line|
16
+ out += line
17
+ }
18
+ out
19
+ end
20
+
21
+ end
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'mocha'
4
+
5
+ require File.dirname(__FILE__) + '/../../lib/commit_hook'
6
+ require File.dirname(__FILE__) + '/../../lib/git'
7
+
8
+ class CommitHookTest < Test::Unit::TestCase
9
+
10
+ def test_hook
11
+ path = File.dirname(__FILE__) + '/../fixtures/'
12
+ Git.expects(:log).with(REVISIONS.first, REVISIONS.last).returns(read_file(path + 'git_log'))
13
+ Git.expects(:mailing_list_address).returns('recipient@test.com')
14
+ REVISIONS.each do |rev|
15
+ Git.expects(:show).with(rev).returns(read_file(path + "git_show_#{rev}"))
16
+ end
17
+ emailer = mock('Emailer')
18
+ Emailer.expects(:new).times(4).returns(emailer) # 4 commit, one email for each of them
19
+ emailer.expects(:send).times(4)
20
+ CommitHook.run 'config/email.yml.sample', REVISIONS.first, REVISIONS.last, 'refs/heads/master'
21
+ end
22
+ end
@@ -0,0 +1,97 @@
1
+ require 'rubygems'
2
+ require 'mocha'
3
+ require 'cgi'
4
+ require 'hpricot'
5
+
6
+ require File.dirname(__FILE__) + '/../test_helper'
7
+
8
+ require File.dirname(__FILE__) + '/../../lib/diff_to_html'
9
+ require File.dirname(__FILE__) + '/../../lib/git'
10
+
11
+ class DiffToHtmlTest < Test::Unit::TestCase
12
+
13
+ def test_multiple_commits
14
+ path = File.dirname(__FILE__) + '/../fixtures/'
15
+ Git.expects(:log).with(REVISIONS.first, REVISIONS.last).returns(read_file(path + 'git_log'))
16
+ REVISIONS.each do |rev|
17
+ Git.expects(:show).with(rev).returns(read_file(path + 'git_show_' + rev))
18
+ end
19
+
20
+ diff = DiffToHtml.new
21
+ diff.diff_between_revisions REVISIONS.first, REVISIONS.last, 'testproject', 'master'
22
+ assert_equal 4, diff.result.size # one result for each of the commits
23
+
24
+ diff.result.each do |html|
25
+ assert !html.include?('@@') # diff correctly processed
26
+ end
27
+
28
+ # first commit
29
+ hp = Hpricot diff.result.first[:html_content]
30
+ assert_equal 2, (hp/"table").size # 8 files updated - one table for each of the files
31
+ (hp/"table/tr/").each do |td|
32
+ if td.inner_html == "require&nbsp;'iconv'"
33
+ # first added line in changeset a4629e707d80a5769f7a71ca6ed9471015e14dc9
34
+ assert_equal '', td.parent.search('td')[0].inner_text # left
35
+ assert_equal '2', td.parent.search('td')[1].inner_text # right
36
+ assert_equal "require&nbsp;'iconv'", td.parent.search('td')[2].inner_html # change
37
+ end
38
+ end
39
+
40
+ # second commit
41
+ hp = Hpricot diff.result[1][:html_content]
42
+ assert_equal 1, (hp/"table").size # 1 file updated
43
+
44
+ # third commit - dce6ade4cdc2833b53bd600ef10f9bce83c7102d
45
+ hp = Hpricot diff.result[2][:html_content]
46
+ assert_equal 6, (hp/"table").size # 6 files updated
47
+ assert_equal 'Added binary file railties/doc/guides/source/images/icons/callouts/11.png', (hp/"h2")[1].inner_text
48
+ assert_equal 'Deleted binary file railties/doc/guides/source/icons/up.png', (hp/"h2")[2].inner_text
49
+ assert_equal 'Deleted file railties/doc/guides/source/icons/README', (hp/"h2")[3].inner_text
50
+ assert_equal 'Added file railties/doc/guides/source/images/icons/README', (hp/"h2")[4].inner_text
51
+
52
+ # fourth commit - 51b986619d88f7ba98be7d271188785cbbb541a0
53
+ hp = Hpricot diff.result[3][:html_content]
54
+ assert_equal 3, (hp/"table").size # 3 files updated
55
+ (hp/"table/tr/").each do |td|
56
+ if td.inner_html =~ /create_btn/
57
+ cols = td.parent.search('td')
58
+ ['405', '408', ''].include? cols[0].inner_text # line 405 changed
59
+ end
60
+ end
61
+ end
62
+
63
+ def test_single_commit
64
+ path = File.dirname(__FILE__) + '/../fixtures/'
65
+ Git.expects(:log).never
66
+ Git.expects(:show).with(REVISIONS.first).returns(read_file(path + 'git_show_' + REVISIONS.first))
67
+
68
+ diff = DiffToHtml.new
69
+ diff.diff_between_revisions REVISIONS.first, REVISIONS.first, 'testproject', 'master'
70
+ assert_equal 1, diff.result.size # single result for a single commit
71
+ assert_equal 'Allow use of :path_prefix and :name_prefix outside of namespaced routes. [#1188 state:resolved]', diff.result.first[:commit_info][:message]
72
+ assert_equal 'Tom Stuart', diff.result.first[:commit_info][:author]
73
+ assert_equal 'tom@experthuman.com', diff.result.first[:commit_info][:email]
74
+
75
+ hp = Hpricot(diff.result.first[:html_content])
76
+ assert !diff.result.first[:html_content].include?('@@')
77
+ assert_equal 2, (hp/"table").size # 2 files updated
78
+ (hp/"table/tr/").each do |td|
79
+ if td.inner_html == "require&nbsp;'iconv'"
80
+ # first added line in changeset a4629e707d80a5769f7a71ca6ed9471015e14dc9
81
+ assert_equal '', td.parent.search('td')[0].inner_text # left
82
+ assert_equal '2', td.parent.search('td')[1].inner_text # right
83
+ assert_equal "require&nbsp;'iconv'", td.parent.search('td')[2].inner_html # change
84
+ end
85
+ end
86
+ end
87
+
88
+ def test_tokenize
89
+ s = "keys = I18n.send :normalize_translation_keys, locale, key, scope"
90
+ diff = DiffToHtml.new
91
+ tokens = diff.tokenize_string(s)
92
+
93
+ assert_equal ['keys', ' ', '=', ' ', 'I18n', '.', 'send',' ',':','normalize','_','translation','_','keys',',',' ','locale',',',' ',
94
+ 'key',',',' ','scope'], tokens
95
+ end
96
+
97
+ end
@@ -0,0 +1,95 @@
1
+ require 'test/unit'
2
+ require 'jcode'
3
+ require File.dirname(__FILE__) + '/../../lib/result_processor'
4
+ require File.dirname(__FILE__) + '/../../lib/diff_to_html'
5
+
6
+ class ResultProcessorTest < Test::Unit::TestCase
7
+ # button_to_remote 'create_btn'
8
+ # submit_to_remote 'create_btn'
9
+
10
+ def setup
11
+ create_test_input
12
+ end
13
+
14
+ def test_processor
15
+ proc = ResultProcessor.new(@diff)
16
+ removal, addition = proc.results
17
+ assert_equal 1, removal.size
18
+
19
+ assert removal[0].include?('&nbsp;&nbsp;<span class="rr">b</span>')
20
+ assert removal[0].include?('<span class="rr">ton</span>')
21
+
22
+ assert_equal 1, removal[0].split('<span>').size # one occurrence (beginning of string)
23
+ assert_equal 1, addition.size
24
+ assert addition[0].include?('&nbsp;&nbsp;<span class="aa">s</span>')
25
+ assert addition[0].include?('<span class="aa">bmi</span>')
26
+ assert_equal 1, addition[0].split('<span>').size
27
+ end
28
+
29
+ def test_processor_with_almost_no_common_part
30
+ @diff = [
31
+ { :action => :match, :token => ' '},
32
+ { :action => :match, :token => ' '},
33
+ { :action => :discard_a, :token => 'button'},
34
+ {:action => :discard_b, :token => 'submit'},
35
+ { :action => :match, :token => 'x'}]
36
+
37
+ proc = ResultProcessor.new(@diff)
38
+ removal, addition = proc.results
39
+
40
+ assert_equal 1, removal.size
41
+ assert_equal '&nbsp;&nbsp;buttonx', removal[0] # no highlight
42
+ assert_equal 1, addition.size
43
+ assert_equal '&nbsp;&nbsp;submitx', addition[0] # no highlight
44
+ end
45
+
46
+ def test_close_span_tag_when_having_difference_at_the_end
47
+ diff = []
48
+ s1 = " submit_to_remote 'create_btn', 'Create', :url => { :action => 'cre"
49
+ s2 = " submit_to_remote 'create_btn', 'Create', :url => { :action => 'sub"
50
+
51
+ s1[0..s1.size-6].each_char do |c|
52
+ diff << { :action => :match, :token => c}
53
+ end
54
+ diff << { :action => :discard_a, :token => 'c'}
55
+ diff << { :action => :discard_a, :token => 'r'}
56
+ diff << { :action => :discard_a, :token => 'e'}
57
+ diff << { :action => :discard_b, :token => 's'}
58
+ diff << { :action => :discard_b, :token => 'u'}
59
+ diff << { :action => :discard_b, :token => 'b'}
60
+
61
+ proc = ResultProcessor.new(diff)
62
+ removal, addition = proc.results
63
+ assert_equal 1, removal.size
64
+ assert removal[0].include?('action&nbsp;=&gt;<span class="rr">cre</span>')
65
+
66
+ assert_equal 1, addition.size
67
+ assert addition[0].include?('action&nbsp;=&gt;<span class="aa">sub</span>')
68
+ end
69
+
70
+ def create_test_input
71
+ @diff = []
72
+ s1 = " button_to_remote 'create_btn', 'Create', :url => { :action => 'create' }"
73
+ s2 = " submit_to_remote 'create_btn', 'Create', :url => { :action => 'create' }"
74
+
75
+ @diff = [
76
+ [:match, ' '],
77
+ [:match, ' '],
78
+ [:discard_a,'b'],
79
+ [:discard_b,'s'],
80
+ [:match, 'u'],
81
+ [:discard_b,'b'],
82
+ [:discard_b,'m'],
83
+ [:discard_b,'i'],
84
+ [:match, 't'],
85
+ [:discard_a,'t'],
86
+ [:discard_a,'o'],
87
+ [:discard_a,'n']]
88
+ @diff = @diff.collect { |d| { :action => d.first, :token => d.last}}
89
+
90
+ s1[@diff.size..-1].each_char do |c|
91
+ @diff << { :action => :match, :token => c}
92
+ end
93
+ end
94
+
95
+ end
metadata ADDED
@@ -0,0 +1,125 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: git-commit-notifier
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - Bodo Tasche
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-03-24 00:00:00 +01:00
18
+ default_executable: git-commit-notifier
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: diff-lcs
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ version: "0"
30
+ type: :runtime
31
+ version_requirements: *id001
32
+ - !ruby/object:Gem::Dependency
33
+ name: mocha
34
+ prerelease: false
35
+ requirement: &id002 !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ segments:
40
+ - 0
41
+ version: "0"
42
+ type: :runtime
43
+ version_requirements: *id002
44
+ - !ruby/object:Gem::Dependency
45
+ name: hpricot
46
+ prerelease: false
47
+ requirement: &id003 !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ segments:
52
+ - 0
53
+ version: "0"
54
+ type: :runtime
55
+ version_requirements: *id003
56
+ description: This git commit notifier sends html mails with nice diffs for every changed file.
57
+ email: bodo@wannawork.de
58
+ executables:
59
+ - git-commit-notifier
60
+ extensions: []
61
+
62
+ extra_rdoc_files:
63
+ - LICENSE
64
+ - README.textile
65
+ files:
66
+ - .document
67
+ - .gitignore
68
+ - LICENSE
69
+ - README.textile
70
+ - Rakefile
71
+ - VERSION
72
+ - bin/git-commit-notifier
73
+ - config/git-notifier-configl.yml.sample
74
+ - git-commit-notifier.gemspec
75
+ - lib/commit_hook.rb
76
+ - lib/diff_to_html.rb
77
+ - lib/emailer.rb
78
+ - lib/git.rb
79
+ - lib/result_processor.rb
80
+ - template/email.html.erb
81
+ - template/styles.css
82
+ - test/fixtures/git_log
83
+ - test/fixtures/git_show_51b986619d88f7ba98be7d271188785cbbb541a0
84
+ - test/fixtures/git_show_a4629e707d80a5769f7a71ca6ed9471015e14dc9
85
+ - test/fixtures/git_show_dce6ade4cdc2833b53bd600ef10f9bce83c7102d
86
+ - test/fixtures/git_show_e28ad77bba0574241e6eb64dfd0c1291b221effe
87
+ - test/test_helper.rb
88
+ - test/unit/test_commit_hook.rb
89
+ - test/unit/test_diff_to_html.rb
90
+ - test/unit/test_result_processor.rb
91
+ has_rdoc: true
92
+ homepage: http://github.com/bodo/git-commit-notifier
93
+ licenses: []
94
+
95
+ post_install_message:
96
+ rdoc_options:
97
+ - --charset=UTF-8
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ segments:
105
+ - 0
106
+ version: "0"
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ segments:
112
+ - 0
113
+ version: "0"
114
+ requirements: []
115
+
116
+ rubyforge_project:
117
+ rubygems_version: 1.3.6
118
+ signing_key:
119
+ specification_version: 3
120
+ summary: Sends git commit messages with diffs
121
+ test_files:
122
+ - test/test_helper.rb
123
+ - test/unit/test_commit_hook.rb
124
+ - test/unit/test_diff_to_html.rb
125
+ - test/unit/test_result_processor.rb