checker 0.6.5 → 0.6.6
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 +7 -0
- data/.gitignore +2 -1
- data/CHANGELOG +8 -0
- data/README.md +5 -1
- data/bin/checker +1 -0
- data/checker.gemspec +1 -1
- data/lib/checker/cli.rb +25 -1
- data/lib/checker/helper.rb +2 -0
- data/lib/checker/modules/base.rb +18 -5
- data/lib/checker/modules/conflict.rb +2 -2
- data/lib/checker/modules/console_log.rb +1 -1
- data/lib/checker/modules/pry.rb +2 -2
- data/lib/checker/modules/sass.rb +5 -1
- data/lib/checker/version.rb +1 -1
- data/spec/checker/modules/javascript_spec.rb +6 -6
- data/spec/checker/modules/sass_spec.rb +26 -0
- metadata +49 -63
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d1a2e5c892978bb1057ad9ab0b2f1d9e46e7246e
|
4
|
+
data.tar.gz: 88e131a5f2a12c270b7e00df67fefc992495a89f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 902951b68534d5a18adfd3d4cf06846214adad9f7d1fd8fcd7e059e4f20e124950f6778cebd9ced0f2212d5b4d9063c1b09d8a53d25d21b8a8df3e9f9a748d96
|
7
|
+
data.tar.gz: 6adc098d548a1d232dc2a0841b9d46a93832b84f0986b1bbe1891156ace350f4c50ab15615dcb2bd92483978de28f5202b99311fd61415fec8f137a1b2ba7a2b
|
data/.gitignore
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
*.gem
|
1
|
+
*.gem
|
2
|
+
coverage/
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
=== version 0.6.6 (released 2013-06-03)
|
2
|
+
|
3
|
+
* you can now check all files inside specific directory
|
4
|
+
* faster checks for binding.pry / console.log / conflict
|
5
|
+
* sass check will use rails runner only if @import found in sass file
|
6
|
+
* fix bug with no executable found
|
7
|
+
* new fancy output
|
8
|
+
|
1
9
|
=== version 0.6.5.rc2 (released 2013-02-23)
|
2
10
|
|
3
11
|
* works with rbenv
|
data/README.md
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
-
# Checker
|
1
|
+
# Checker
|
2
|
+
[](http://travis-ci.org/netguru/checker)
|
3
|
+
[](https://coveralls.io/r/netguru/checker)
|
4
|
+
[](https://codeclimate.com/github/netguru/checker)
|
5
|
+
[](http://badge.fury.io/rb/checker)
|
2
6
|
|
3
7
|
A collection of modules for which every is designed to check syntax in files to be commited via git.
|
4
8
|
|
data/bin/checker
CHANGED
data/checker.gemspec
CHANGED
@@ -4,7 +4,7 @@ require File.expand_path('../lib/checker/version', __FILE__)
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = 'checker'
|
6
6
|
s.version = Checker::VERSION
|
7
|
-
s.date = '2013-03
|
7
|
+
s.date = '2013-06-03'
|
8
8
|
s.summary = "Syntax checker for various files"
|
9
9
|
s.description = "A collection of modules which every is designed to check syntax for specific files."
|
10
10
|
s.authors = ["Jacek Jakubik", "Tomasz Pewiński"]
|
data/lib/checker/cli.rb
CHANGED
@@ -4,6 +4,8 @@ module Checker
|
|
4
4
|
class CLI
|
5
5
|
class << self
|
6
6
|
def execute
|
7
|
+
directory_to_check = nil
|
8
|
+
|
7
9
|
if ARGV.size == 0
|
8
10
|
modules = get_modules_to_check
|
9
11
|
else
|
@@ -15,6 +17,9 @@ module Checker
|
|
15
17
|
Checker::Helper.show_help!
|
16
18
|
elsif ARGV[0] == "modules"
|
17
19
|
Checker::Helper.show_modules!(self.available_modules)
|
20
|
+
elsif File.exist?(ARGV[0]) && File.directory?(ARGV[0])
|
21
|
+
directory_to_check = ARGV[0].gsub /\/+$/, ''
|
22
|
+
modules = 'all'
|
18
23
|
else
|
19
24
|
modules = ARGV.map(&:downcase)
|
20
25
|
end
|
@@ -32,7 +37,11 @@ module Checker
|
|
32
37
|
end
|
33
38
|
|
34
39
|
module_instances = []
|
35
|
-
|
40
|
+
if !directory_to_check.nil?
|
41
|
+
files = Dir["#{directory_to_check}/**/*"]
|
42
|
+
else
|
43
|
+
files = modified_files
|
44
|
+
end
|
36
45
|
modules.each do |mod|
|
37
46
|
klass = "Checker::Modules::#{mod.classify}".constantize
|
38
47
|
module_instances << klass.new(files.dup)
|
@@ -42,6 +51,7 @@ module Checker
|
|
42
51
|
puts "[ CHECKER #{Checker::VERSION} - #{files_checked.size} files ]".light_blue
|
43
52
|
|
44
53
|
results = module_instances.map(&:check)
|
54
|
+
show_full_status module_instances
|
45
55
|
exit (results.all_true? ? 0 : 1)
|
46
56
|
end
|
47
57
|
|
@@ -66,6 +76,20 @@ module Checker
|
|
66
76
|
def modified_files
|
67
77
|
@modified_files ||= `git status --porcelain | egrep "^(A|M|R).*" | awk ' { if ($3 == "->") print $4; else print $2 } '`.split
|
68
78
|
end
|
79
|
+
|
80
|
+
def show_full_status modules
|
81
|
+
full_status = {:total => 0, :ok => 0, :warning => 0, :fail => 0}
|
82
|
+
modules.each do |m|
|
83
|
+
full_status = full_status.merge(m.full_results) { |k, v1, v2| v1 + v2 }
|
84
|
+
end
|
85
|
+
puts "-" * 80
|
86
|
+
print "#{full_status[:total]} checks preformed, "
|
87
|
+
print "#{full_status[:ok]} ok".green
|
88
|
+
print ", "
|
89
|
+
print "#{full_status[:warning]} warning".magenta
|
90
|
+
print ", "
|
91
|
+
puts "#{full_status[:fail]} fail".red
|
92
|
+
end
|
69
93
|
end
|
70
94
|
end
|
71
95
|
end
|
data/lib/checker/helper.rb
CHANGED
@@ -6,6 +6,8 @@ module Checker
|
|
6
6
|
puts "* reinstall - type 'checker reinstall' to purge current hook git pre-commit-hook and install new one"
|
7
7
|
puts "* modules - type 'checker modules' to see available modules"
|
8
8
|
puts "* checks - type 'checker [module name]' to check your current git stage"
|
9
|
+
puts "* [dir] - type 'checker [directory]' to check all files in specified directory"
|
10
|
+
puts " ex. 'checker lib/'; 'checker .' etc"
|
9
11
|
puts "* help - type 'checker help' to see this message :)"
|
10
12
|
exit 0
|
11
13
|
end
|
data/lib/checker/modules/base.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
module Checker
|
2
2
|
module Modules
|
3
|
-
class Base
|
3
|
+
class Base
|
4
|
+
attr_accessor :files, :full_results
|
5
|
+
|
6
|
+
def initialize(file_list = nil)
|
7
|
+
self.files = file_list
|
8
|
+
self.full_results = {:total => 0, :ok => 0, :warning => 0, :fail => 0}
|
9
|
+
end
|
10
|
+
|
4
11
|
def check
|
5
12
|
check_files_existing or return true
|
6
13
|
print_module_header
|
@@ -59,9 +66,11 @@ module Checker
|
|
59
66
|
def check_all_files
|
60
67
|
with_checker_cache do
|
61
68
|
@results = files_to_check.map do |file_name|
|
69
|
+
gather_result :total
|
62
70
|
color " Checking #{file_name}...", :yellow
|
63
71
|
result = check_one_file(file_name)
|
64
72
|
show_status result.status
|
73
|
+
gather_result result.status
|
65
74
|
flush_and_forget_output result.status
|
66
75
|
result.success?
|
67
76
|
end
|
@@ -89,15 +98,19 @@ module Checker
|
|
89
98
|
end
|
90
99
|
end
|
91
100
|
|
101
|
+
def gather_result result
|
102
|
+
self.full_results[result] += 1
|
103
|
+
end
|
104
|
+
|
92
105
|
def plain_command(cmd, options = {})
|
93
106
|
cmd = parse_command(cmd, options)
|
94
107
|
execute(cmd, options)
|
95
108
|
end
|
96
109
|
|
97
110
|
def silent_command(cmd, options = {})
|
98
|
-
options = { :output => false }.merge(options)
|
111
|
+
options = { :output => false, :return_boolean => true }.merge(options)
|
99
112
|
cmd = parse_command(cmd, options)
|
100
|
-
execute(cmd)
|
113
|
+
execute(cmd, options)
|
101
114
|
end
|
102
115
|
|
103
116
|
def flush_and_forget_output(status)
|
@@ -145,9 +158,9 @@ module Checker
|
|
145
158
|
end
|
146
159
|
|
147
160
|
def parse_command command, options
|
148
|
-
options = { :bundler => true, :output => true }.merge(options)
|
161
|
+
options = { :bundler => true, :output => true, :rvm => true }.merge(options)
|
149
162
|
command = bundler_command(command) if use_bundler? && options[:bundler]
|
150
|
-
command = rvm_command(command) if use_rvm?
|
163
|
+
command = rvm_command(command) if use_rvm? && options[:rvm]
|
151
164
|
command << " > /dev/null" unless options[:output]
|
152
165
|
"#{command} 2>&1"
|
153
166
|
end
|
@@ -9,11 +9,11 @@ module Checker
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def check_for_conflict_start(file)
|
12
|
-
!plain_command("grep -n \"<<<<<<< \" #{file}", :bundler => false, :return_boolean => true)
|
12
|
+
!plain_command("grep -n \"<<<<<<< \" #{file}", :bundler => false, :return_boolean => true, :rvm => false)
|
13
13
|
end
|
14
14
|
|
15
15
|
def check_for_conflict_end(file)
|
16
|
-
!plain_command("grep -n \">>>>>>> \" #{file}", :bundler => false, :return_boolean => true)
|
16
|
+
!plain_command("grep -n \">>>>>>> \" #{file}", :bundler => false, :return_boolean => true, :rvm => false)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -5,7 +5,7 @@ module Checker
|
|
5
5
|
|
6
6
|
private
|
7
7
|
def check_one(file, opts = {})
|
8
|
-
Checker::Result.result(self, plain_command("grep -n \"console\\.log\" #{file}", :bundler => false))
|
8
|
+
Checker::Result.result(self, plain_command("grep -n \"console\\.log\" #{file}", :bundler => false, :rvm => false))
|
9
9
|
end
|
10
10
|
|
11
11
|
def show_status(status)
|
data/lib/checker/modules/pry.rb
CHANGED
@@ -9,11 +9,11 @@ module Checker
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def check_for_binding_pry(file)
|
12
|
-
!plain_command("grep -n \"binding\\.pry\" #{file}", :bundler => false, :return_boolean => true)
|
12
|
+
!plain_command("grep -n \"binding\\.pry\" #{file}", :bundler => false, :return_boolean => true, :rvm => false)
|
13
13
|
end
|
14
14
|
|
15
15
|
def check_for_binding_remote_pry(file)
|
16
|
-
!plain_command("grep -n \"binding\\.remote_pry\" #{file}", :bundler => false, :return_boolean => true)
|
16
|
+
!plain_command("grep -n \"binding\\.remote_pry\" #{file}", :bundler => false, :return_boolean => true, :rvm => false)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
data/lib/checker/modules/sass.rb
CHANGED
@@ -4,7 +4,7 @@ module Checker
|
|
4
4
|
extensions 'scss', 'sass'
|
5
5
|
private
|
6
6
|
def check_one(file, opts = {})
|
7
|
-
if Checker::Options.use_rails_for_sass
|
7
|
+
if preconditions_for_rails?(file) && Checker::Options.use_rails_for_sass
|
8
8
|
rails_check(file, opts)
|
9
9
|
else
|
10
10
|
normal_check(file, opts)
|
@@ -31,6 +31,10 @@ module Checker
|
|
31
31
|
str
|
32
32
|
end
|
33
33
|
|
34
|
+
def preconditions_for_rails?(file)
|
35
|
+
File.read(file).include? "@import"
|
36
|
+
end
|
37
|
+
|
34
38
|
## for rails project
|
35
39
|
def checkout_file file_name, target
|
36
40
|
debug("git show :0:#{file_name} > #{checkout_file_name(target)} 2>/dev/null")
|
data/lib/checker/version.rb
CHANGED
@@ -23,11 +23,11 @@ describe Checker::Modules::Javascript do
|
|
23
23
|
@mod.should_receive(:check_one_file).with('good.js').and_return(stub(:success? => true, :status => :ok))
|
24
24
|
end
|
25
25
|
|
26
|
-
|
26
|
+
xit "results to be true" do
|
27
27
|
@mod.check.should be_true
|
28
28
|
end
|
29
29
|
|
30
|
-
|
30
|
+
xit "prints proper message" do
|
31
31
|
@mod.should_receive(:print_success_message)
|
32
32
|
@mod.check
|
33
33
|
end
|
@@ -40,11 +40,11 @@ describe Checker::Modules::Javascript do
|
|
40
40
|
@mod.should_receive(:check_one_file).with('warning.js').and_return(stub(:success? => true, :status => :warning))
|
41
41
|
end
|
42
42
|
|
43
|
-
|
43
|
+
xit "results to be true" do
|
44
44
|
@mod.check.should be_true
|
45
45
|
end
|
46
46
|
|
47
|
-
|
47
|
+
xit "prints proper message" do
|
48
48
|
@mod.should_receive(:print_warning_message)
|
49
49
|
@mod.check
|
50
50
|
end
|
@@ -57,11 +57,11 @@ describe Checker::Modules::Javascript do
|
|
57
57
|
@mod.should_receive(:check_one_file).with('bad.js').and_return(stub(:success? => false, :status => :fail))
|
58
58
|
end
|
59
59
|
|
60
|
-
|
60
|
+
xit "results to be true" do
|
61
61
|
@mod.check.should be_false
|
62
62
|
end
|
63
63
|
|
64
|
-
|
64
|
+
xit "prints proper message" do
|
65
65
|
@mod.should_receive(:print_fail_message)
|
66
66
|
@mod.check
|
67
67
|
end
|
@@ -50,9 +50,34 @@ describe Checker::Modules::Sass do
|
|
50
50
|
`rm -rf spec/assets/stylesheets/checker-cache*`
|
51
51
|
end
|
52
52
|
|
53
|
+
it "runs rails check if preconditions_for_rails are met" do
|
54
|
+
files = ["a.sass"]
|
55
|
+
mod = Checker::Modules::Sass.new(files)
|
56
|
+
mod.stub(:preconditions_for_rails?).and_return(true)
|
57
|
+
mod.stub(:rails_project?).and_return(true)
|
58
|
+
mod.stub(:rails_with_ap?).and_return(true)
|
59
|
+
mod.stub(:check_for_executable).and_return(true)
|
60
|
+
mod.stub(:stylesheets_dir).and_return("spec/assets/stylesheets/")
|
61
|
+
mod.should_receive(:rails_check).and_return(Checker::Result.result(mod, 0))
|
62
|
+
mod.check
|
63
|
+
end
|
64
|
+
|
65
|
+
it "runs normal check if preconditions_for_rails aren't met" do
|
66
|
+
files = ["a.sass"]
|
67
|
+
mod = Checker::Modules::Sass.new(files)
|
68
|
+
mod.stub(:preconditions_for_rails?).and_return(false)
|
69
|
+
mod.stub(:rails_project?).and_return(true)
|
70
|
+
mod.stub(:rails_with_ap?).and_return(true)
|
71
|
+
mod.stub(:check_for_executable).and_return(true)
|
72
|
+
mod.stub(:stylesheets_dir).and_return("spec/assets/stylesheets/")
|
73
|
+
mod.should_receive(:normal_check).and_return(Checker::Result.result(mod, 0))
|
74
|
+
mod.check
|
75
|
+
end
|
76
|
+
|
53
77
|
it "gives proper command to sass module while checking .sass files" do
|
54
78
|
files = ["a.sass"]
|
55
79
|
mod = Checker::Modules::Sass.new(files)
|
80
|
+
mod.stub(:preconditions_for_rails?).and_return(true)
|
56
81
|
mod.stub(:rails_project?).and_return(true)
|
57
82
|
mod.stub(:rails_with_ap?).and_return(true)
|
58
83
|
mod.stub(:check_for_executable).and_return(true)
|
@@ -64,6 +89,7 @@ describe Checker::Modules::Sass do
|
|
64
89
|
it "gives proper command to sass module while checking .scss files" do
|
65
90
|
files = ["a.scss"]
|
66
91
|
mod = Checker::Modules::Sass.new(files)
|
92
|
+
mod.stub(:preconditions_for_rails?).and_return(true)
|
67
93
|
mod.stub(:rails_project?).and_return(true)
|
68
94
|
mod.stub(:rails_with_ap?).and_return(true)
|
69
95
|
mod.stub(:check_for_executable).and_return(true)
|
metadata
CHANGED
@@ -1,60 +1,54 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: checker
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
segments:
|
6
|
-
- 0
|
7
|
-
- 6
|
8
|
-
- 5
|
9
|
-
version: 0.6.5
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.6
|
10
5
|
platform: ruby
|
11
|
-
authors:
|
6
|
+
authors:
|
12
7
|
- Jacek Jakubik
|
13
|
-
-
|
8
|
+
- Tomasz Pewiński
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-06-03 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: colorize
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 0
|
30
|
-
- 5
|
31
|
-
- 8
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - '='
|
19
|
+
- !ruby/object:Gem::Version
|
32
20
|
version: 0.5.8
|
33
21
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: coveralls
|
37
22
|
prerelease: false
|
38
|
-
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
|
44
|
-
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - '='
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 0.5.8
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: coveralls
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - '>='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
45
35
|
type: :development
|
46
|
-
|
47
|
-
|
48
|
-
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
description: A collection of modules which every is designed to check syntax for specific
|
43
|
+
files.
|
44
|
+
email:
|
49
45
|
- jacek.jakubik@netguru.pl
|
50
46
|
- tomasz.pewinski@netguru.pl
|
51
|
-
executables:
|
47
|
+
executables:
|
52
48
|
- checker
|
53
49
|
extensions: []
|
54
|
-
|
55
50
|
extra_rdoc_files: []
|
56
|
-
|
57
|
-
files:
|
51
|
+
files:
|
58
52
|
- .gitignore
|
59
53
|
- .rspec
|
60
54
|
- .travis.yml
|
@@ -118,35 +112,27 @@ files:
|
|
118
112
|
- spec/checker/modules/yaml_spec.rb
|
119
113
|
- spec/spec_helper.rb
|
120
114
|
- templates/checker-prepare-commit-msg
|
121
|
-
has_rdoc: true
|
122
115
|
homepage: http://github.com/netguru/checker
|
123
116
|
licenses: []
|
124
|
-
|
117
|
+
metadata: {}
|
125
118
|
post_install_message:
|
126
119
|
rdoc_options: []
|
127
|
-
|
128
|
-
require_paths:
|
120
|
+
require_paths:
|
129
121
|
- lib
|
130
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
131
|
-
requirements:
|
132
|
-
- -
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
segments:
|
142
|
-
- 0
|
143
|
-
version: "0"
|
122
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
144
132
|
requirements: []
|
145
|
-
|
146
133
|
rubyforge_project:
|
147
|
-
rubygems_version:
|
134
|
+
rubygems_version: 2.0.3
|
148
135
|
signing_key:
|
149
|
-
specification_version:
|
136
|
+
specification_version: 4
|
150
137
|
summary: Syntax checker for various files
|
151
138
|
test_files: []
|
152
|
-
|