checker 0.6.5 → 0.6.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Build Status](https://secure.travis-ci.org/netguru/checker.png?branch=master)](http://travis-ci.org/netguru/checker)
|
3
|
+
[![Coverage Status](https://coveralls.io/repos/netguru/checker/badge.png?branch=master)](https://coveralls.io/r/netguru/checker)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/netguru/checker.png)](https://codeclimate.com/github/netguru/checker)
|
5
|
+
[![Gem Version](https://badge.fury.io/rb/checker.png)](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
|
-
|