commit_checker 0.0.1

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c65359a42953c26a1cde2971b6d3834a5c860b3e
4
+ data.tar.gz: 0e0dee639d4e3637afb94f8f0a90ba96611ce7af
5
+ SHA512:
6
+ metadata.gz: 360bac921242878f672eb8c060f7c9cdb78556cf7ff6010527427dc82dcff2f6bceb96d673aa24c2b801127a551b7596cfede5d0f9e4be9c5e57d85e32c375d8
7
+ data.tar.gz: c213f99f17fe2330249ff0ff5d60d66bd27dc83f71976d724ff554c5a01816aae934aa826b37ee33f0a1adf8276557ea389ec5024dea24b7f7e037aad73412c1
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ .bundle/
data/.rubocop.yml ADDED
@@ -0,0 +1,48 @@
1
+ # to see potential flags to enable/disable, check out github.com/bbatsov/rubocop/blob/master/config/
2
+
3
+ Encoding:
4
+ Enabled: false
5
+
6
+ LineLength:
7
+ Enabled: true
8
+ Max: 160
9
+
10
+ HashSyntax:
11
+ Enabled: false
12
+
13
+ StringLiterals:
14
+ Enabled: false
15
+
16
+ IfUnlessModifier:
17
+ Enabled: false
18
+
19
+ WhileUntilModifier:
20
+ Enabled: false
21
+
22
+ SpaceInsideHashLiteralBraces:
23
+ Enabled: false
24
+
25
+ MethodLength:
26
+ Enabled: true
27
+ Max: 50
28
+
29
+ RedundantSelf:
30
+ Enabled: false
31
+
32
+ Style/GuardClause:
33
+ Enabled: false
34
+
35
+ Void:
36
+ Enabled: false
37
+
38
+ WordArray:
39
+ Enabled: false
40
+
41
+ Documentation:
42
+ Enabled: false
43
+
44
+ Style/BlockComments:
45
+ Enabled: false
46
+
47
+ AssignmentInCondition:
48
+ Enabled: false
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ commit_checker
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.1.0
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,65 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ commit_checker (0.0.1)
5
+ highline
6
+ railties
7
+ rubocop
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ actionpack (4.1.4)
13
+ actionview (= 4.1.4)
14
+ activesupport (= 4.1.4)
15
+ rack (~> 1.5.2)
16
+ rack-test (~> 0.6.2)
17
+ actionview (4.1.4)
18
+ activesupport (= 4.1.4)
19
+ builder (~> 3.1)
20
+ erubis (~> 2.7.0)
21
+ activesupport (4.1.4)
22
+ i18n (~> 0.6, >= 0.6.9)
23
+ json (~> 1.7, >= 1.7.7)
24
+ minitest (~> 5.1)
25
+ thread_safe (~> 0.1)
26
+ tzinfo (~> 1.1)
27
+ ast (2.0.0)
28
+ builder (3.2.2)
29
+ erubis (2.7.0)
30
+ highline (1.6.21)
31
+ i18n (0.6.11)
32
+ json (1.8.1)
33
+ minitest (5.4.0)
34
+ parser (2.2.0.pre.3)
35
+ ast (>= 1.1, < 3.0)
36
+ slop (~> 3.4, >= 3.4.5)
37
+ powerpack (0.0.9)
38
+ rack (1.5.2)
39
+ rack-test (0.6.2)
40
+ rack (>= 1.0)
41
+ railties (4.1.4)
42
+ actionpack (= 4.1.4)
43
+ activesupport (= 4.1.4)
44
+ rake (>= 0.8.7)
45
+ thor (>= 0.18.1, < 2.0)
46
+ rainbow (2.0.0)
47
+ rake (10.3.2)
48
+ rubocop (0.24.1)
49
+ json (>= 1.7.7, < 2)
50
+ parser (>= 2.2.0.pre.3, < 3.0)
51
+ powerpack (~> 0.0.6)
52
+ rainbow (>= 1.99.1, < 3.0)
53
+ ruby-progressbar (~> 1.4)
54
+ ruby-progressbar (1.5.1)
55
+ slop (3.5.0)
56
+ thor (0.19.1)
57
+ thread_safe (0.3.4)
58
+ tzinfo (1.2.1)
59
+ thread_safe (~> 0.1)
60
+
61
+ PLATFORMS
62
+ ruby
63
+
64
+ DEPENDENCIES
65
+ commit_checker!
data/Readme.md ADDED
File without changes
@@ -0,0 +1,16 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'commit_checker'
3
+ s.version = '0.0.1'
4
+ s.date = '2014-07-14'
5
+ s.summary = "Commit Checker"
6
+ s.description = "A simple gem which help setup hook to check commit"
7
+ s.authors = ["Hieu Nguyen"]
8
+ s.email = 'hieu.nguyen@eastagile.com'
9
+ s.files = `git ls-files`.split($/)
10
+ s.require_paths = ["lib"]
11
+ s.homepage = ''
12
+ s.license = 'MIT'
13
+ s.add_dependency 'railties', '4.1.4'
14
+ s.add_dependency 'rubocop', '0.24.1'
15
+ s.add_dependency 'highline', '1.6.21'
16
+ end
@@ -0,0 +1,11 @@
1
+ require 'rails/railtie'
2
+
3
+ module CommitChecker
4
+ class Task < ::Rails::Railtie
5
+ railtie_name :commit_checker
6
+
7
+ rake_tasks do
8
+ Dir[File.join(File.dirname(__FILE__), 'tasks/*.rake')].each { |f| load f }
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,57 @@
1
+ require 'highline/import'
2
+ require 'open3'
3
+
4
+ namespace :hooks do
5
+ desc 'Install necessary git hooks'
6
+ task :install do
7
+ hooks = %w[
8
+ applypatch-msg
9
+ pre-applypatch
10
+ post-applypatch
11
+ pre-commit
12
+ prepare-commit-msg
13
+ commit-msg
14
+ post-commit
15
+ pre-rebase
16
+ post-checkout
17
+ post-merge
18
+ pre-receive
19
+ update
20
+ post-receive
21
+ post-update
22
+ pre-auto-gc
23
+ ]
24
+
25
+ hooks.each do |hook|
26
+ repo_hook_path = "#{File.dirname(__FILE__)}/#{hook}.template.rb"
27
+ git_hook_path = "#{Rails.root}/.git/hooks/#{hook}"
28
+
29
+ if File.exists?(repo_hook_path)
30
+
31
+ if File.exists?(git_hook_path) || File.symlink?(git_hook_path)
32
+ should_continue = ''
33
+ while %w[y yes no n].exclude?(should_continue.downcase)
34
+ should_continue = ask("Warning: #{git_hook_path} already exists. Overwrite it? [y/n]: ")
35
+ Open3.capture3("rm -f #{git_hook_path}")
36
+ end
37
+ break if %w[no n].include?(should_continue.downcase)
38
+ end
39
+
40
+ stdout_str, stderr_str, status = Open3.capture3("cp #{repo_hook_path} #{git_hook_path}")
41
+
42
+ stdout_str, stderr_str, status = Open3.capture3("chmod 755 #{git_hook_path}")
43
+ raise "error: #{stderr_str} for #{hook} when setting permissions to 755" unless status.success?
44
+
45
+ stdout_str, stderr_str, status = Open3.capture3("chmod +x #{git_hook_path}")
46
+ raise "error: #{stderr_str} for #{hook} when making executable (chmod +x)" unless status.success?
47
+
48
+ if status.success?
49
+ puts "installed #{hook}: copied #{git_hook_path} -> #{repo_hook_path}"
50
+ puts "If you have trouble running your git hook, try changing the shebang line (#!) in #{repo_hook_path}"
51
+ else
52
+ raise "error: #{stderr_str} for #{hook}" unless status.success?
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # run committed files against the ruby style guide.
4
+ require 'open3'
5
+ stdout, stderr, status = Open3.capture3("git diff --name-only --cached | grep -E '#{%w[rb rake].map{|ext| '\.' + ext}.join('|')}' ")
6
+ modified_files = stdout.split(/\n/)
7
+ if modified_files.count > 0
8
+ $stdout.puts("Code conventions: running files against rubocop (https://github.com/bbatsov/rubocop/):")
9
+ $stdout.puts(modified_files.join("\n "))
10
+ stdout, stderr, status = Open3.capture3("rubocop #{modified_files.join(' ')}")
11
+ if status.exitstatus != 0
12
+ $stdout.puts(stdout)
13
+ $stdout.puts("*******************************************************************************************")
14
+ $stdout.puts("The files you committed need cleanup! Many of the warnings are probably old and not yours.")
15
+ $stdout.puts("We need your help with cleaning. If you think some errors should be ignored, edit .rubocop.yml")
16
+ $stdout.puts("You might also try running 'rubocop $your_file --auto-correct', but review the changes!")
17
+ $stdout.puts("*******************************************************************************************")
18
+ exit 1
19
+ else
20
+ $stdout.puts("Files passed Rubocop!")
21
+ exit 0
22
+ end
23
+ end
24
+
25
+ # if you want to add your own pre-commit logic, consider what would happen if one or many checks worked or failed,
26
+ # i.e. a sub_routines: [{ name: foo, status: some_value },...]
@@ -0,0 +1,3 @@
1
+ module CommitChecker
2
+ require 'commit_checker/task' if defined?(Rails)
3
+ end
metadata ADDED
@@ -0,0 +1,97 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: commit_checker
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Hieu Nguyen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: railties
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 4.1.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 4.1.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.24.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.24.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: highline
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.6.21
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.6.21
55
+ description: A simple gem which help setup hook to check commit
56
+ email: hieu.nguyen@eastagile.com
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - ".gitignore"
62
+ - ".rubocop.yml"
63
+ - ".ruby-gemset"
64
+ - ".ruby-version"
65
+ - Gemfile
66
+ - Gemfile.lock
67
+ - Readme.md
68
+ - commit_checker.gemspec
69
+ - lib/commit_checker.rb
70
+ - lib/commit_checker/task.rb
71
+ - lib/commit_checker/tasks/hooks.rake
72
+ - lib/commit_checker/tasks/pre-commit.template.rb
73
+ homepage: ''
74
+ licenses:
75
+ - MIT
76
+ metadata: {}
77
+ post_install_message:
78
+ rdoc_options: []
79
+ require_paths:
80
+ - lib
81
+ required_ruby_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ required_rubygems_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ requirements: []
92
+ rubyforge_project:
93
+ rubygems_version: 2.2.0
94
+ signing_key:
95
+ specification_version: 4
96
+ summary: Commit Checker
97
+ test_files: []