rake_check 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -16,3 +16,6 @@ tmp
16
16
  # YARD artifacts
17
17
  .yardoc
18
18
  _yardoc
19
+
20
+ rake_check.sublime-project
21
+ rake_check.sublime-workspace
@@ -15,7 +15,7 @@ class BrakemanChecker
15
15
  begin
16
16
  @tracker = Brakeman.run('.')
17
17
  rescue SystemExit
18
- return { type: :brakeman, check_output: "", status: "Rails App not found" }
18
+ return { type: :brakeman, check_output: "", status: "Rails App not found".green }
19
19
  end
20
20
  { type: :brakeman, check_output: output, status: status }
21
21
  end
@@ -31,7 +31,7 @@ class CoffeeLintChecker
31
31
  # @return [String] Checkstatus
32
32
  # @author dmasur
33
33
  def status
34
- return 'No CoffeeScript Files found' if @shell_output == ""
34
+ return 'Not found'.green if @shell_output.include? "0 files"
35
35
  @violations = violation_count
36
36
  if @violations > 0
37
37
  print_violations
@@ -10,8 +10,13 @@ class CucumberChecker
10
10
  # @return [Hash] Checkresult
11
11
  # @author dmasur
12
12
  def result
13
+
13
14
  @shell_output = begin
14
- `export COVERAGE=true; cucumber; export COVERAGE=;`
15
+ if Dir["features"].empty?
16
+ return { type: :cucumber, check_output: '', status: "Not found".green }
17
+ else
18
+ `export COVERAGE=true; cucumber features; export COVERAGE=;`
19
+ end
15
20
  rescue Errno::ENOENT
16
21
  "Cucumber not found"
17
22
  end
@@ -11,11 +11,15 @@ class KonachaChecker
11
11
  # @author dmasur
12
12
  def result
13
13
  @shell_output = begin
14
- `rake konacha:run`
14
+ `rake konacha:run 2>&1`
15
15
  rescue Errno::ENOENT
16
16
  "Konacha not found"
17
17
  end
18
- { type: :konacha, check_output: output, status: status }
18
+ if @shell_output.include?("Don't know how to build task 'konacha:run'")
19
+ { type: :konacha, check_output: '', status: 'Not found'.green }
20
+ else
21
+ { type: :konacha, check_output: output, status: status }
22
+ end
19
23
  end
20
24
 
21
25
  private
@@ -8,6 +8,7 @@ require 'rake_check/cucumber_checker'
8
8
  require 'rake_check/brakeman_checker'
9
9
  require 'rake_check/coffee_lint_checker'
10
10
  require 'rake_check/konacha_checker'
11
+ require 'benchmark'
11
12
  ##
12
13
  # Do exakt what it is called
13
14
  #
@@ -43,33 +44,40 @@ end
43
44
  # @author dmasur
44
45
  def print_summary(results)
45
46
  result = results.map do |result|
46
- "#{result[:type]}§#{result[:status]}"
47
+ "#{result[:type].to_s.capitalize}§#{result[:status]}"
47
48
  end
48
49
  puts `echo "#{result.join("\n")}" | column -t -s§`
49
50
  end
50
-
51
+ def execute(klass, argument=nil)
52
+ @index += 1
53
+ name = klass.to_s.gsub("Checker", '')
54
+ name = [name, argument].compact.join(' ')
55
+ print "[#{@index}/9] Testing #{name} "
56
+ checker = klass.new
57
+ time = Benchmark.measure do
58
+ @results << if argument
59
+ checker.result(argument)
60
+ else
61
+ checker.result
62
+ end
63
+ end
64
+ print "(#{time.total.round(2)} sec): "
65
+ puts @results.last[:status]
66
+ end
51
67
  desc "Check all Metric tools"
52
68
  task :check do
53
- results ||= []
54
- puts "[1/9] Testing Cucumber ..."
55
- results << CucumberChecker.new.result
56
- puts "[2/9] Testing RSpec ..."
69
+ @results = []
70
+ @index = 0
71
+ execute CucumberChecker
57
72
  Dir["spec*"].each do |spec_dir|
58
- results << RspecChecker.new.result(spec_dir)
73
+ execute RspecChecker, spec_dir
59
74
  end
60
- puts "[3/9] Testing Rails Best Practices ..."
61
- results << RbpChecker.new.result
62
- puts "[4/9] Testing Yard ..."
63
- results << YardChecker.new.result
64
- puts "[5/9] Testing Reek ..."
65
- results << ReekChecker.new.result
66
- puts "[6/9] Testing Cane ..."
67
- results << CaneChecker.new.result
68
- puts "[7/9] Testing Brakeman ..."
69
- results << BrakemanChecker.new.result
70
- puts "[8/9] Testing CoffeLint ..."
71
- results << CoffeeLintChecker.new.result
72
- puts "[9/9] Testing Konacha ..."
73
- results << KonachaChecker.new.result
74
- print_check_result results
75
+ execute RbpChecker
76
+ execute YardChecker
77
+ execute ReekChecker
78
+ execute CaneChecker
79
+ execute BrakemanChecker
80
+ execute CoffeeLintChecker
81
+ execute KonachaChecker
82
+ print_check_result @results
75
83
  end
@@ -3,5 +3,5 @@ module RakeCheck
3
3
  # The Version Constant
4
4
  #
5
5
  # @author dmasur
6
- VERSION = "0.3.0"
6
+ VERSION = "0.3.1"
7
7
  end
@@ -1,13 +1,14 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../../../lib/rake_check/brakeman_checker')
2
+ require_relative '../../spec_helper'
2
3
 
3
4
  describe BrakemanChecker do
4
5
  let(:tracker) { stub("Tracker", checks: stub("Checks", warnings: [])) }
5
6
  it "gives N/A on no Rails Apps" do
6
- subject.result.should == { type: :brakeman, check_output: '', status: 'Rails App not found' }
7
+ Brakeman.should_receive(:run)
8
+ subject.result.should == { type: :brakeman, check_output: '', status: 'N/A' }
7
9
  end
8
10
  it "gives OK with no Errors" do
9
11
  Brakeman.should_receive(:run).and_return tracker
10
- subject.stub(:`)
11
12
  subject.result.should == { type: :brakeman,
12
13
  check_output: '',
13
14
  status: "\e[32m0\e[0m Warnings" }
@@ -2,16 +2,19 @@ require File.expand_path(File.dirname(__FILE__) + '/../../../lib/rake_check/cucu
2
2
 
3
3
  describe CucumberChecker do
4
4
  it "gives N/A on Error" do
5
+ Dir.stub(:[] => [stub])
5
6
  subject.stub(:`).and_return('Error')
6
7
  subject.result.should == { type: :cucumber, check_output: '', status: 'N/A' }
7
8
  end
8
9
  it "gives OK with no Errors" do
10
+ Dir.stub :[] => [stub]
9
11
  subject.stub(:`).and_return('8 scenarios (8 passed)')
10
12
  subject.result.should == { type: :cucumber,
11
13
  check_output: '',
12
14
  status: "\e[32mOK\e[0m" }
13
15
  end
14
16
  it "is red on Error" do
17
+ Dir.stub :[] => [stub]
15
18
  subject.stub(:`).and_return('8 scenarios (1 failed, 7 passed)')
16
19
  subject.result.should == { type: :cucumber,
17
20
  check_output: '8 scenarios (1 failed, 7 passed)',
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake_check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-18 00:00:00.000000000 Z
12
+ date: 2012-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70184417362800 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70184417362800
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: colored
27
- requirement: &70184417380400 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70184417380400
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rake
38
- requirement: &70184417378080 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70184417378080
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: reek
49
- requirement: &70184417375100 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0'
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *70184417375100
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: cane
60
- requirement: &70184417395000 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: '0'
66
86
  type: :runtime
67
87
  prerelease: false
68
- version_requirements: *70184417395000
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: cucumber
71
- requirement: &70184417390940 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: '0'
77
102
  type: :runtime
78
103
  prerelease: false
79
- version_requirements: *70184417390940
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: brakeman
82
- requirement: &70184417389240 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ! '>='
@@ -87,7 +117,12 @@ dependencies:
87
117
  version: '0'
88
118
  type: :runtime
89
119
  prerelease: false
90
- version_requirements: *70184417389240
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
91
126
  description: Checking the Project for Code Smells and bad documentation
92
127
  email:
93
128
  - dominik.masur@googlemail.com
@@ -145,7 +180,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
145
180
  version: '0'
146
181
  segments:
147
182
  - 0
148
- hash: -2624268959899313887
183
+ hash: -1356481860266727982
149
184
  required_rubygems_version: !ruby/object:Gem::Requirement
150
185
  none: false
151
186
  requirements:
@@ -154,10 +189,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
189
  version: '0'
155
190
  segments:
156
191
  - 0
157
- hash: -2624268959899313887
192
+ hash: -1356481860266727982
158
193
  requirements: []
159
194
  rubyforge_project:
160
- rubygems_version: 1.8.10
195
+ rubygems_version: 1.8.24
161
196
  signing_key:
162
197
  specification_version: 3
163
198
  summary: Checking the Project for Code Smells and bad documentation