rake_command_filter 0.1.0 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b99322995e35812faec4bd062f750776b6b7eea7
4
- data.tar.gz: 4768b435d692f5829208ce58dd2c0640cf43bca6
3
+ metadata.gz: e6da33db01e0aa28bf058126cf2c218064bc7b23
4
+ data.tar.gz: 44341e8177e2edcbdc1c4277fbeecf9439a6b82c
5
5
  SHA512:
6
- metadata.gz: f53de448bf4b05ad4965f053f477578a02f0cc04a1b8c06f55e6131f92ab478e6c774aa3b1743639a2a8dcda4aa4989a143fb534db37466f80cde802e8394232
7
- data.tar.gz: e3c83d48389dbe1a6c96431749878802c0acbf4e5484f2c914c6719e0bb6e6408c749139f5ef543e9c87c20e7736596dc42cbbfbebf0793998f0f7e19e897957
6
+ metadata.gz: 1374a9869b8750de1ddd274d868ea42ff7e2fdb16656822e7922bad713af50390d6cec1bce4479f238032b34950a749ea6fde31c7471c754293b3407f3ad06eb
7
+ data.tar.gz: da1ddebd4327c0cc8cafb97b3985eb6b7dd9d908418e7917ebbaac7a255408323f326c2cdb353a1de53f3f0bebace6150349ef38344bee90e247a6376ec548b4
data/README.md CHANGED
@@ -1,3 +1,4 @@
1
+ [![Gem Version](https://badge.fury.io/rb/rake_command_filter.svg)](https://badge.fury.io/rb/rake_command_filter)
1
2
  [![Build Status](https://travis-ci.org/chrisjones-tripletri/rake_command_filter.svg?branch=master)](https://travis-ci.org/chrisjones-tripletri/rake_command_filter)
2
3
  [![Code Climate](https://codeclimate.com/github/chrisjones-tripletri/rake_command_filter/badges/gpa.svg)](https://codeclimate.com/github/chrisjones-tripletri/rake_command_filter)
3
4
  [![Test Coverage](https://codeclimate.com/github/chrisjones-tripletri/rake_command_filter/badges/coverage.svg)](https://codeclimate.com/github/chrisjones-tripletri/rake_command_filter/coverage)
@@ -48,6 +49,9 @@ require 'rake_command_filter'
48
49
 
49
50
  RakeCommandFilter::RakeTask.new(:full_validation) do
50
51
  desc 'Run full validation'
52
+ run_definition(RakeCommandFilter::RubocopCommandDefinition.new) do
53
+ add_parameter('app/assets/stylesheets')
54
+ end
51
55
  run_definition(RakeCommandFilter::RubocopCommandDefinition.new)
52
56
  run_definition(RakeCommandFilter::RSpecCommandDefinition.new)
53
57
  run_definition(RakeCommandFilter::YardCommandDefinition.new)
@@ -32,6 +32,7 @@ module RakeCommandFilter
32
32
 
33
33
  # override this method
34
34
  def execute
35
+ return execute_system(@name)
35
36
  end
36
37
 
37
38
  # @return the most severe result from an array of results
@@ -44,33 +45,31 @@ module RakeCommandFilter
44
45
  worst << result
45
46
  end
46
47
  end
47
- worst = result_failure('INTERNAL ERROR: no pattern matched a result in the output') if worst.empty?
48
48
  return worst
49
49
  end
50
50
 
51
- protected
52
-
53
51
  # @return a result indicating the command was successful
54
- def result_success(msg)
52
+ def self.result_success(msg)
55
53
  create_result(RakeCommandFilter::MATCH_SUCCESS, msg)
56
54
  end
57
55
 
58
56
  # @return a result indicating the command failed.
59
- def result_failure(msg)
57
+ def self.result_failure(msg)
60
58
  create_result(RakeCommandFilter::MATCH_FAILURE, msg)
61
59
  end
62
60
 
63
61
  # @return a result indicating the command showed a warning.
64
- def result_warning(msg)
62
+ def self.result_warning(msg)
65
63
  create_result(RakeCommandFilter::MATCH_WARNING, msg)
66
64
  end
67
65
 
68
- private
69
-
70
- def create_result(result, msg)
66
+ # used to create a result with the specified result code and msg
67
+ def self.create_result(result, msg)
71
68
  LineFilterResult.new(@name, result, msg)
72
69
  end
73
70
 
71
+ private
72
+
74
73
  def execute_system(command)
75
74
  saved_lines = []
76
75
  results = []
@@ -100,12 +99,11 @@ module RakeCommandFilter
100
99
  end
101
100
 
102
101
  def output_results(results, saved_lines, command_start)
102
+ results << create_default_result if results.empty?
103
103
  worst_results = CommandDefinition.find_worst_result(results)
104
+
104
105
  # if the lines
105
- if worst_results[0].result != RakeCommandFilter::MATCH_SUCCESS &&
106
- @default_line_handling == RakeCommandFilter::LINE_HANDLING_HIDE_UNTIL_ERROR
107
- print_lines(saved_lines)
108
- end
106
+ output_lines(worst_results, saved_lines)
109
107
  unless @default_line_handling == RakeCommandFilter::LINE_HANDLING_HIDE_ALWAYS
110
108
  worst_results.each do |result|
111
109
  result.output(Time.now - command_start) unless result.result == RakeCommandFilter::MATCH_WARNING
@@ -113,6 +111,17 @@ module RakeCommandFilter
113
111
  end
114
112
  end
115
113
 
114
+ def output_lines(worst_results, saved_lines)
115
+ if worst_results[0].result != RakeCommandFilter::MATCH_SUCCESS &&
116
+ @default_line_handling == RakeCommandFilter::LINE_HANDLING_HIDE_UNTIL_ERROR
117
+ print_lines(saved_lines)
118
+ end
119
+ end
120
+
121
+ def create_default_result
122
+ CommandDefinition.result_failure('INTERNAL ERROR: no pattern matched a result in the output')
123
+ end
124
+
116
125
  def match_line(line, results)
117
126
  result = process_filters(line)
118
127
  results << result if result
@@ -1,4 +1,4 @@
1
1
  module RakeCommandFilter
2
2
  # version of this gem
3
- VERSION = '0.1.0'.freeze
3
+ VERSION = '0.1.1'.freeze
4
4
  end
@@ -9,6 +9,7 @@ require_relative './rake_command_definition'
9
9
  require_relative './rubocop_command_definition'
10
10
  require_relative './rspec_command_definition'
11
11
  require_relative './yard_command_definition'
12
+ require_relative './scss_lint_command_definition'
12
13
  require_relative './command_failed_error'
13
14
 
14
15
  # A rake task that filters the output of other rake tasks so you can see
@@ -31,9 +31,9 @@ module RakeCommandFilter
31
31
  add_filter(:rspec_filter, /(\d+)\s+example[s]?,\s+(\d+)\s+failure/) do |matches|
32
32
  failures = matches[1].to_i
33
33
  if failures > 0
34
- result_failure(RSpecCommandDefinition.failure_msg(failures))
34
+ CommandDefinition.result_failure(RSpecCommandDefinition.failure_msg(failures))
35
35
  else
36
- result_success(RSpecCommandDefinition.success_msg(matches[0]))
36
+ CommandDefinition.result_success(RSpecCommandDefinition.success_msg(matches[0]))
37
37
  end
38
38
  end
39
39
  end
@@ -42,7 +42,11 @@ module RakeCommandFilter
42
42
  add_filter(:simplecov_filter, /Coverage.+LOC\s+\((\d+[\.]?\d+)%/) do |matches|
43
43
  percent = matches[0].to_f
44
44
  msg = RSpecCommandDefinition.coverage_msg(percent)
45
- (percent >= coverage_threshold) ? result_success(msg) : result_failure(msg)
45
+ if percent >= coverage_threshold
46
+ CommandDefinition.result_success(msg)
47
+ else
48
+ CommandDefinition.result_failure(msg)
49
+ end
46
50
  end
47
51
  end
48
52
  end
@@ -18,11 +18,11 @@ module RakeCommandFilter
18
18
 
19
19
  # just use sensible defaults here.
20
20
  add_filter(:offenses_filter, /(\d+)\s+file.*,\s+(\d+)\s+offense/) do |matches|
21
- result_failure(RubocopCommandDefinition.failure_msg(matches[1], matches[0]))
21
+ CommandDefinition.result_failure(RubocopCommandDefinition.failure_msg(matches[1], matches[0]))
22
22
  end
23
23
 
24
24
  add_filter(:no_offenses_filter, /(\d+)\s+file.*,\s+no\s+offenses/) do |matches|
25
- result_success(RubocopCommandDefinition.success_msg(matches[0]))
25
+ CommandDefinition.result_success(RubocopCommandDefinition.success_msg(matches[0]))
26
26
  end
27
27
  end
28
28
  end
@@ -0,0 +1,34 @@
1
+ module RakeCommandFilter
2
+ # default way to run rubocop and parse its output
3
+ class ScssLintCommandDefinition < CommandDefinition
4
+ # for testing
5
+ def self.warning_msg
6
+ 'One or more scss warnings, see above'
7
+ end
8
+
9
+ def self.error_msg
10
+ 'One or more scss errors, see above'
11
+ end
12
+
13
+ # Default parser for scss lint output.
14
+ # @param id override this if you want to do something other than 'scss-lint'
15
+ def initialize(id = 'scss-lint')
16
+ super(id)
17
+ # just use sensible defaults here.
18
+ add_filter(:scss_error, /(.*\[(.)\].*)/) do |matches|
19
+ kind = matches[1]
20
+ if kind == 'W'
21
+ CommandDefinition.result_warning(ScssLintCommandDefinition.warning_msg)
22
+ else
23
+ CommandDefinition.result_failure(ScssLintCommandDefinition.error_msg)
24
+ end
25
+ end
26
+ end
27
+
28
+ protected
29
+
30
+ def create_default_result
31
+ CommandDefinition.result_success('No errors.')
32
+ end
33
+ end
34
+ end
@@ -22,10 +22,10 @@ module RakeCommandFilter
22
22
  add_filter(:yard_percentage, /(\d+.?\d+)%\s+document/) do |matches|
23
23
  percent = matches[0].to_f
24
24
  msg = YardCommandDefinition.percent_msg(percent)
25
- (percent >= threshold) ? result_success(msg) : result_failure(msg)
25
+ (percent >= threshold) ? CommandDefinition.result_success(msg) : CommandDefinition.result_failure(msg)
26
26
  end
27
27
  add_filter(:yard_warning, /\[warn\]:(.*)/) do |_matches|
28
- result_warning(YardCommandDefinition.warning_msg)
28
+ CommandDefinition.result_warning(YardCommandDefinition.warning_msg)
29
29
  end
30
30
  end
31
31
  end
@@ -28,4 +28,5 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency 'simplecov', '~> 0.11'
29
29
  spec.add_development_dependency 'yard', '~> 0.8'
30
30
  spec.add_development_dependency 'codeclimate-test-reporter'
31
+ spec.add_development_dependency 'scss-lint'
31
32
  end
@@ -10,6 +10,6 @@
10
10
  null
11
11
  ]
12
12
  },
13
- "timestamp": 1455204256
13
+ "timestamp": 1455291802
14
14
  }
15
15
  }
@@ -14,7 +14,7 @@
14
14
  <img src="./assets/0.10.0/loading.gif" alt="loading"/>
15
15
  </div>
16
16
  <div id="wrapper" style="display:none;">
17
- <div class="timestamp">Generated <abbr class="timeago" title="2016-02-11T09:24:16-06:00">2016-02-11T09:24:16-06:00</abbr></div>
17
+ <div class="timestamp">Generated <abbr class="timeago" title="2016-02-12T09:43:22-06:00">2016-02-12T09:43:22-06:00</abbr></div>
18
18
  <ul class="group_tabs"></ul>
19
19
 
20
20
  <div id="content">
@@ -0,0 +1,4 @@
1
+
2
+ p {
3
+ border: none;
4
+ }
@@ -0,0 +1,4 @@
1
+
2
+ html {
3
+ font-size: 100%;
4
+ }
@@ -297,7 +297,7 @@
297
297
  </div>
298
298
 
299
299
  <div id="footer">
300
- Generated on Thu Feb 11 09:24:14 2016 by
300
+ Generated on Fri Feb 12 09:43:19 2016 by
301
301
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
302
302
  0.8.7.6 (ruby-2.2.3).
303
303
  </div>
@@ -92,7 +92,7 @@
92
92
  </div>
93
93
 
94
94
  <div id="footer">
95
- Generated on Thu Feb 11 09:24:14 2016 by
95
+ Generated on Fri Feb 12 09:43:19 2016 by
96
96
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
97
97
  0.8.7.6 (ruby-2.2.3).
98
98
  </div>
@@ -92,7 +92,7 @@
92
92
  </div>
93
93
 
94
94
  <div id="footer">
95
- Generated on Thu Feb 11 09:24:14 2016 by
95
+ Generated on Fri Feb 12 09:43:19 2016 by
96
96
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
97
97
  0.8.7.6 (ruby-2.2.3).
98
98
  </div>
@@ -103,7 +103,7 @@
103
103
  </div>
104
104
 
105
105
  <div id="footer">
106
- Generated on Thu Feb 11 09:24:14 2016 by
106
+ Generated on Fri Feb 12 09:43:19 2016 by
107
107
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
108
  0.8.7.6 (ruby-2.2.3).
109
109
  </div>
@@ -334,7 +334,7 @@
334
334
  </div>
335
335
 
336
336
  <div id="footer">
337
- Generated on Thu Feb 11 09:24:14 2016 by
337
+ Generated on Fri Feb 12 09:43:20 2016 by
338
338
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
339
339
  0.8.7.6 (ruby-2.2.3).
340
340
  </div>
@@ -92,7 +92,7 @@
92
92
  </div>
93
93
 
94
94
  <div id="footer">
95
- Generated on Thu Feb 11 09:24:14 2016 by
95
+ Generated on Fri Feb 12 09:43:20 2016 by
96
96
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
97
97
  0.8.7.6 (ruby-2.2.3).
98
98
  </div>
@@ -92,7 +92,7 @@
92
92
  </div>
93
93
 
94
94
  <div id="footer">
95
- Generated on Thu Feb 11 09:24:14 2016 by
95
+ Generated on Fri Feb 12 09:43:20 2016 by
96
96
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
97
97
  0.8.7.6 (ruby-2.2.3).
98
98
  </div>
@@ -103,7 +103,7 @@
103
103
  </div>
104
104
 
105
105
  <div id="footer">
106
- Generated on Thu Feb 11 09:24:14 2016 by
106
+ Generated on Fri Feb 12 09:43:20 2016 by
107
107
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
108
  0.8.7.6 (ruby-2.2.3).
109
109
  </div>
@@ -334,7 +334,7 @@
334
334
  </div>
335
335
 
336
336
  <div id="footer">
337
- Generated on Thu Feb 11 09:24:18 2016 by
337
+ Generated on Fri Feb 12 09:43:25 2016 by
338
338
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
339
339
  0.8.7.6 (ruby-2.2.3).
340
340
  </div>
@@ -92,7 +92,7 @@
92
92
  </div>
93
93
 
94
94
  <div id="footer">
95
- Generated on Thu Feb 11 09:24:18 2016 by
95
+ Generated on Fri Feb 12 09:43:25 2016 by
96
96
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
97
97
  0.8.7.6 (ruby-2.2.3).
98
98
  </div>
@@ -92,7 +92,7 @@
92
92
  </div>
93
93
 
94
94
  <div id="footer">
95
- Generated on Thu Feb 11 09:24:18 2016 by
95
+ Generated on Fri Feb 12 09:43:25 2016 by
96
96
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
97
97
  0.8.7.6 (ruby-2.2.3).
98
98
  </div>
@@ -103,7 +103,7 @@
103
103
  </div>
104
104
 
105
105
  <div id="footer">
106
- Generated on Thu Feb 11 09:24:18 2016 by
106
+ Generated on Fri Feb 12 09:43:25 2016 by
107
107
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
108
  0.8.7.6 (ruby-2.2.3).
109
109
  </div>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake_command_filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Jones
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-11 00:00:00.000000000 Z
11
+ date: 2016-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: scss-lint
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  description: Runs several rake tasks or system commands, and filters their output
126
140
  for easy review
127
141
  email:
@@ -151,6 +165,7 @@ files:
151
165
  - lib/rake_command_filter/version.rb
152
166
  - lib/rspec_command_definition.rb
153
167
  - lib/rubocop_command_definition.rb
168
+ - lib/scss_lint_command_definition.rb
154
169
  - lib/yard_command_definition.rb
155
170
  - rake_command_filter.gemspec
156
171
  - test_cases/rspec/fail/coverage/.last_run.json
@@ -215,6 +230,8 @@ files:
215
230
  - test_cases/rubocop/fail/rubocop_fail.rb
216
231
  - test_cases/rubocop/ok/rubocop_ok.rb
217
232
  - test_cases/rubocop/rubocop.yml
233
+ - test_cases/scss/fail/fail.css.scss
234
+ - test_cases/scss/ok/ok.css.scss
218
235
  - test_cases/yard/.yardoc/checksums
219
236
  - test_cases/yard/.yardoc/object_types
220
237
  - test_cases/yard/.yardoc/objects/root.dat