rake_check 0.3.0 → 0.3.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.
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