yard-junk 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d528277a6fb7bba1da971f94aae6b57026c389f3
4
- data.tar.gz: 1e87ce70c14f718fcb2cd46eb4dcc5bbb86824e1
3
+ metadata.gz: d2951dd9b76ead149237efbb2d837868f334db37
4
+ data.tar.gz: 6b9e03ce2ec1b7f2c6eebb3fa7a23fa2bad10c95
5
5
  SHA512:
6
- metadata.gz: b8a095dad1cbc9da2e87a038ed30f563982ac38eb0f18c4f060cf0251ded6fea8cb40eccfb2405710789933b7f5c54faff649626e725678ef675bf3b35dd6d91
7
- data.tar.gz: 2466c0a768593a605283f7c136bfb4d012a28701dbf3b32026e48da138162528fd9789275bba4c7dfa94aa6d8a3db6136ae4b91419a5727ab317722d9552dc83
6
+ metadata.gz: 5b007c4ee552650b8c49d13619cbb98fb3dad7855ebf7a807c0c32ded821535197266e6511ef5754097937286a5bf1832e748fb824c38f9529914322e158e810
7
+ data.tar.gz: f58438719e6d9a11a7bd995d336e09f97b59aeaf5b81094e46fe7852ebfebe9c574f0fcd80455163333213c4f5f4da71130dac193a77b7dacdf73f63a07c89b7
@@ -1,5 +1,9 @@
1
1
  # Yard-Junk changelog
2
2
 
3
+ ## 0.0.4 -- 2017-09-09
4
+
5
+ * Support for partial reports `yard-junk --path path/to/folder` (#13)
6
+
3
7
  ## 0.0.3 -- 2017-09-07
4
8
 
5
9
  * Wiser dependency on `did_you_mean`, should not break CIs now.
data/README.md CHANGED
@@ -381,6 +381,19 @@ Examples:
381
381
  * `yard-junk --text --html build-artifacts/junk-yard.html` (several formatters at once: text to console,
382
382
  HTML to file).
383
383
 
384
+ You can also specify pathes to report (useful when working on large codebases, when you want to check
385
+ only your recent piece of work):
386
+
387
+ ```
388
+ yard-junk --path some/path/
389
+ yard-junk --path other/path/*sample*.rb
390
+ yard-junk --path specific/path.rb
391
+ yard-junk --path several,different/*.rb,patterns.rb
392
+ ```
393
+
394
+ Note that `yard-junk` would parse the pathes that set in `.yardopts` as usually, and then
395
+ **filter report** by pattern specified.
396
+
384
397
  ### Rake task (integrating in CI)
385
398
 
386
399
  Add this to your `Rakefile`:
@@ -425,8 +438,7 @@ Therefore, this independent tool was made.
425
438
 
426
439
  * Docs for usage as a system-wide YARD plugin;
427
440
  * Docs for internals;
428
- * Documentation quality checks as a next level of YARD checker ([#14](https://github.com/zverok/yard-junk/issues/14));
429
- * Option to check only selected parts of code ([#13](https://github.com/zverok/yard-junk/issues/13)).
441
+ * Documentation quality checks as a next level of YARD checker ([#14](https://github.com/zverok/yard-junk/issues/14)).
430
442
 
431
443
  ## Some examples of problems found in popular gems:
432
444
 
@@ -8,6 +8,7 @@ require 'yard-junk'
8
8
  require 'optparse'
9
9
 
10
10
  formatters = {}
11
+ check_path = nil
11
12
 
12
13
  OptionParser.new do |opts|
13
14
  opts.banner = 'Usage: yard-junk [formatters]'
@@ -28,6 +29,15 @@ OptionParser.new do |opts|
28
29
  opts.separator ''
29
30
  opts.separator 'Other options'
30
31
 
32
+ opts.on('-f', '--path PATTERN1,PATTERN2,PATTERN3', 'Limit output only to this files. Can be path to file or folder, or glob pattern') do |patterns|
33
+ check_path = patterns.split(',')
34
+ end
35
+
36
+ opts.on_tail('-v', '--version', 'Prints version') do
37
+ puts "YardJunk #{YardJunk::VERSION}"
38
+ exit
39
+ end
40
+
31
41
  opts.on_tail('-h', '--help', 'Show this message') do
32
42
  puts opts
33
43
  exit
@@ -38,4 +48,4 @@ formatters = {text: nil} if formatters.empty?
38
48
 
39
49
  janitor = YardJunk::Janitor.new
40
50
  janitor.run
41
- exit janitor.report(**formatters)
51
+ exit janitor.report(path: check_path, **formatters)
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'yard-junk/version'
3
4
  require_relative 'yard-junk/logger'
4
5
  require_relative 'yard-junk/command_line'
5
6
  require_relative 'yard-junk/janitor'
@@ -7,9 +7,9 @@ module YardJunk
7
7
  class Janitor
8
8
  def run(*opts)
9
9
  YARD::Registry.clear # Somehow loads all Ruby stdlib classes before Rake task started...
10
- Logger.instance.format = nil
10
+ Logger.instance.format = nil # Nothing shouuld be printed
11
11
 
12
- puts "Running YardJunk janitor...\n\n"
12
+ puts "Running YardJunk janitor (version #{YardJunk::VERSION})...\n\n"
13
13
 
14
14
  @duration = Benchmark.realtime do
15
15
  command = YARD::CLI::Yardoc.new
@@ -20,20 +20,20 @@ module YardJunk
20
20
  self
21
21
  end
22
22
 
23
- def stats
23
+ def stats(path = nil)
24
24
  {
25
- errors: errors.count,
26
- problems: problems.count,
25
+ errors: filter(errors, path).count,
26
+ problems: filter(problems, path).count,
27
27
  duration: @duration || 0
28
28
  }
29
29
  end
30
30
 
31
- def report(*args, **opts)
31
+ def report(*args, path: nil, **opts)
32
32
  guess_reporters(*args, **opts).each do |reporter|
33
- reporter.section('Errors', 'severe code or formatting problems', errors)
34
- reporter.section('Problems', 'mistyped tags or other typos in documentation', problems)
33
+ reporter.section('Errors', 'severe code or formatting problems', filter(errors, path))
34
+ reporter.section('Problems', 'mistyped tags or other typos in documentation', filter(problems, path))
35
35
 
36
- reporter.stats(stats)
36
+ reporter.stats(stats(path))
37
37
  reporter.finalize
38
38
  end
39
39
 
@@ -60,6 +60,16 @@ module YardJunk
60
60
  messages.select(&:warn?)
61
61
  end
62
62
 
63
+ def filter(messages, pathes)
64
+ return messages unless pathes
65
+ filters =
66
+ Array(pathes)
67
+ .map { |path| File.directory?(path) ? File.join(path, '**', '*.*') : path }
68
+ .flat_map(&Dir.method(:[]))
69
+ .map(&File.method(:expand_path))
70
+ messages.select { |m| filters.include?(File.expand_path(m.file)) }
71
+ end
72
+
63
73
  # TODO: specs for the logic
64
74
  def guess_reporters(*symbols, **symbols_with_args)
65
75
  symbols
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YardJunk
4
+ # @private
5
+ MAJOR = 0
6
+ # @private
7
+ MINOR = 0
8
+ # @private
9
+ PATCH = 4
10
+
11
+ # @private
12
+ VERSION = [MINOR, MAJOR, PATCH].join('.')
13
+ end
@@ -1,6 +1,8 @@
1
+ require_relative 'lib/yard-junk/version'
2
+
1
3
  Gem::Specification.new do |s|
2
4
  s.name = 'yard-junk'
3
- s.version = '0.0.3'
5
+ s.version = YardJunk::VERSION
4
6
  s.authors = ['Victor Shepelev']
5
7
  s.email = 'zverok.offline@gmail.com'
6
8
  s.homepage = 'https://github.com/zverok/junk_yard'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yard-junk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Shepelev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-07 00:00:00.000000000 Z
11
+ date: 2017-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow
@@ -218,6 +218,7 @@ files:
218
218
  - lib/yard-junk/logger.rb
219
219
  - lib/yard-junk/logger/message.rb
220
220
  - lib/yard-junk/rake.rb
221
+ - lib/yard-junk/version.rb
221
222
  - yard-junk.gemspec
222
223
  homepage: https://github.com/zverok/junk_yard
223
224
  licenses: