yalphabetize 0.2.1 → 0.3.0
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 +4 -4
- data/bin/yalphabetize +1 -1
- data/lib/yalphabetize/aliaser.rb +55 -0
- data/lib/yalphabetize/alphabetizer.rb +19 -0
- data/lib/yalphabetize/cli.rb +5 -19
- data/lib/yalphabetize/erb_compiler.rb +1 -1
- data/lib/yalphabetize/file_yalphabetizer.rb +23 -6
- data/lib/yalphabetize/logger.rb +4 -2
- data/lib/yalphabetize/offence_detector.rb +1 -1
- data/lib/yalphabetize/option_parser.rb +21 -0
- data/lib/yalphabetize/reader.rb +0 -21
- data/lib/yalphabetize/version.rb +1 -1
- data/lib/yalphabetize/yalphabetizer.rb +105 -0
- data/lib/yalphabetize/yaml_finder.rb +9 -1
- data/lib/yalphabetize.rb +16 -0
- metadata +36 -4
- data/lib/yalphabetizer.rb +0 -69
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 702ef0ac265097aa95ae58399f9bd221336ebba2f29ee51b07ff03beb7c471bd
|
4
|
+
data.tar.gz: d2da1541ac411f12ba6b3a70534df739cfca69620b07d067dfa75bd18c4d7da7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43205417abde2761326cd34006fa49cbd574d1ec98e5d47a01f9a5769fad51883de9bc7822e206cbabf66c56f91ea54ce3c3d986bae3639550d5e3899a9759ff
|
7
|
+
data.tar.gz: 543936dea7ac58dc5857419cd27330214759109fa3bdb8bdf50524964bb4b1f1d6e30ce9a60fce156c70cb5fdc2694b60fc139f80085678d2841d864dd3e070c
|
data/bin/yalphabetize
CHANGED
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Yalphabetize
|
4
|
+
class Aliaser
|
5
|
+
def initialize(stream_node)
|
6
|
+
@stream_node = stream_node
|
7
|
+
@aliases = {}
|
8
|
+
end
|
9
|
+
|
10
|
+
def call
|
11
|
+
nodes.each do |node|
|
12
|
+
next unless node.respond_to?(:anchor) && node.anchor
|
13
|
+
|
14
|
+
ensure_anchor_then_alias(node)
|
15
|
+
end
|
16
|
+
stream_node
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
attr_reader :stream_node, :aliases
|
22
|
+
|
23
|
+
def ensure_anchor_then_alias(node)
|
24
|
+
if node.alias?
|
25
|
+
aliases[node.anchor] ||= node
|
26
|
+
elsif aliases[node.anchor]
|
27
|
+
swap(node, aliases[node.anchor])
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def swap(anchor_node, alias_node)
|
32
|
+
stream_node.each do |node|
|
33
|
+
node.children&.map! do |child_node|
|
34
|
+
convert_node(child_node, anchor_node, alias_node)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def nodes
|
40
|
+
stream_node.select do |node|
|
41
|
+
node.respond_to?(:anchor) && node.anchor
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def convert_node(child_node, anchor_node, alias_node)
|
46
|
+
if child_node == anchor_node
|
47
|
+
alias_node
|
48
|
+
elsif child_node == alias_node
|
49
|
+
anchor_node
|
50
|
+
else
|
51
|
+
child_node
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -7,6 +7,7 @@ module Yalphabetize
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def call
|
10
|
+
transform(stream_node)
|
10
11
|
alphabetize(stream_node)
|
11
12
|
stream_node
|
12
13
|
end
|
@@ -36,5 +37,23 @@ module Yalphabetize
|
|
36
37
|
node.children.shift
|
37
38
|
end
|
38
39
|
end
|
40
|
+
|
41
|
+
def transform(node)
|
42
|
+
node.children&.each(&method(:transform))
|
43
|
+
|
44
|
+
return unless node.mapping?
|
45
|
+
|
46
|
+
pair_up_children(node)
|
47
|
+
end
|
48
|
+
|
49
|
+
def pair_up_children(node)
|
50
|
+
children_clone = node.children.dup
|
51
|
+
|
52
|
+
children_clone.each_slice(2) do |slice|
|
53
|
+
node.children.push(slice)
|
54
|
+
node.children.shift
|
55
|
+
node.children.shift
|
56
|
+
end
|
57
|
+
end
|
39
58
|
end
|
40
59
|
end
|
data/lib/yalphabetize/cli.rb
CHANGED
@@ -1,14 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'yalphabetize/alphabetizer'
|
4
|
-
require 'yalphabetize/file_yalphabetizer'
|
5
|
-
require 'yalphabetize/logger'
|
6
|
-
require 'yalphabetize/offence_detector'
|
7
|
-
require 'yalphabetize/reader'
|
8
|
-
require 'yalphabetize/writer'
|
9
|
-
require 'yalphabetize/yaml_finder'
|
10
|
-
require 'yalphabetizer'
|
11
|
-
|
12
3
|
module Yalphabetize
|
13
4
|
class CLI
|
14
5
|
def self.call(argv)
|
@@ -20,20 +11,15 @@ module Yalphabetize
|
|
20
11
|
end
|
21
12
|
|
22
13
|
def call
|
23
|
-
Yalphabetizer.call
|
24
|
-
argv,
|
25
|
-
reader_class: Yalphabetize::Reader,
|
26
|
-
finder: Yalphabetize::YamlFinder.new,
|
27
|
-
alphabetizer_class: Yalphabetize::Alphabetizer,
|
28
|
-
writer_class: Yalphabetize::Writer,
|
29
|
-
offence_detector_class: Yalphabetize::OffenceDetector,
|
30
|
-
logger: Yalphabetize::Logger.new($stdout),
|
31
|
-
file_yalphabetizer_class: Yalphabetize::FileYalphabetizer
|
32
|
-
)
|
14
|
+
Yalphabetizer.call argv, options
|
33
15
|
end
|
34
16
|
|
35
17
|
private
|
36
18
|
|
37
19
|
attr_reader :argv
|
20
|
+
|
21
|
+
def options
|
22
|
+
OptionParser.parse!(argv)
|
23
|
+
end
|
38
24
|
end
|
39
25
|
end
|
@@ -29,13 +29,14 @@ module Yalphabetize
|
|
29
29
|
:logger, :autocorrect, :alphabetizer_class, :writer_class
|
30
30
|
|
31
31
|
def autocorrect_file
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
alphabetize
|
33
|
+
handle_aliases
|
34
|
+
rewrite_yml_file
|
35
|
+
print_to_log
|
35
36
|
end
|
36
37
|
|
37
38
|
def offences?
|
38
|
-
offence_detector_class.new(
|
39
|
+
offence_detector_class.new(stream_node).offences?
|
39
40
|
end
|
40
41
|
|
41
42
|
def replace_interpolations
|
@@ -48,12 +49,28 @@ module Yalphabetize
|
|
48
49
|
end
|
49
50
|
end
|
50
51
|
|
52
|
+
def alphabetize
|
53
|
+
alphabetizer_class.new(stream_node).call
|
54
|
+
end
|
55
|
+
|
56
|
+
def handle_aliases
|
57
|
+
Aliaser.new(stream_node).call
|
58
|
+
end
|
59
|
+
|
60
|
+
def rewrite_yml_file
|
61
|
+
writer_class.new(stream_node, file_path).call
|
62
|
+
end
|
63
|
+
|
64
|
+
def print_to_log
|
65
|
+
logger.log_correction(file_path)
|
66
|
+
end
|
67
|
+
|
51
68
|
def reader
|
52
69
|
@_reader ||= reader_class.new(file_path)
|
53
70
|
end
|
54
71
|
|
55
|
-
def
|
56
|
-
@
|
72
|
+
def stream_node
|
73
|
+
@_stream_node ||= reader.to_ast
|
57
74
|
end
|
58
75
|
|
59
76
|
def interpolations_mapping
|
data/lib/yalphabetize/logger.rb
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
|
3
3
|
module Yalphabetize
|
4
4
|
class Logger
|
5
|
-
|
5
|
+
DEFAULT_OUTPUT = $stdout
|
6
|
+
|
7
|
+
def initialize(output = DEFAULT_OUTPUT)
|
6
8
|
@output = output
|
7
9
|
@inspected_count = 0
|
8
10
|
@offences = {}
|
@@ -40,7 +42,7 @@ module Yalphabetize
|
|
40
42
|
|
41
43
|
private
|
42
44
|
|
43
|
-
attr_reader :
|
45
|
+
attr_reader :offences, :inspected_count, :output
|
44
46
|
|
45
47
|
def puts_offence(file_path, status)
|
46
48
|
case status
|
@@ -25,7 +25,7 @@ module Yalphabetize
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def alphabetized_children?(node)
|
28
|
-
node.children.each_cons(2).all? { |a, b| (a.first.value <=> b.first.value) <= 0 }
|
28
|
+
node.children.each_slice(2).each_cons(2).all? { |a, b| (a.first.value <=> b.first.value) <= 0 }
|
29
29
|
end
|
30
30
|
|
31
31
|
def each_child_also_alphabetized?(children)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
|
5
|
+
module Yalphabetize
|
6
|
+
class OptionParser
|
7
|
+
PARSER = ::OptionParser.new do |o|
|
8
|
+
o.banner = 'Usage: yalphabetize [options] [file1, file2, ...]'
|
9
|
+
|
10
|
+
o.on('-a', '--autocorrect', 'Automatically alphabetize inspected yaml files')
|
11
|
+
o.on('-h', '--help', 'Prints this help') do
|
12
|
+
puts o
|
13
|
+
Kernel.exit
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.parse!(argv)
|
18
|
+
{}.tap { |options| PARSER.parse!(argv, into: options) }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/yalphabetize/reader.rb
CHANGED
@@ -2,8 +2,6 @@
|
|
2
2
|
|
3
3
|
require 'psych'
|
4
4
|
require 'securerandom'
|
5
|
-
require 'yalphabetize/erb_compiler'
|
6
|
-
require 'yalphabetize/parsing_error'
|
7
5
|
|
8
6
|
module Yalphabetize
|
9
7
|
class Reader
|
@@ -14,7 +12,6 @@ module Yalphabetize
|
|
14
12
|
|
15
13
|
def to_ast
|
16
14
|
substitute_interpolations
|
17
|
-
transform(stream_node)
|
18
15
|
stream_node
|
19
16
|
end
|
20
17
|
|
@@ -51,23 +48,5 @@ module Yalphabetize
|
|
51
48
|
e.context
|
52
49
|
)
|
53
50
|
end
|
54
|
-
|
55
|
-
def transform(node)
|
56
|
-
node.children&.each(&method(:transform))
|
57
|
-
|
58
|
-
return unless node.mapping?
|
59
|
-
|
60
|
-
pair_up_children(node)
|
61
|
-
end
|
62
|
-
|
63
|
-
def pair_up_children(node)
|
64
|
-
children_clone = node.children.dup
|
65
|
-
|
66
|
-
children_clone.each_slice(2) do |slice|
|
67
|
-
node.children.push(slice)
|
68
|
-
node.children.shift
|
69
|
-
node.children.shift
|
70
|
-
end
|
71
|
-
end
|
72
51
|
end
|
73
52
|
end
|
data/lib/yalphabetize/version.rb
CHANGED
@@ -0,0 +1,105 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Yalphabetize
|
4
|
+
class Yalphabetizer
|
5
|
+
def self.call(args = [], options = {})
|
6
|
+
new(args, options).call
|
7
|
+
end
|
8
|
+
|
9
|
+
def initialize(args, options)
|
10
|
+
@args = args
|
11
|
+
@options = options
|
12
|
+
end
|
13
|
+
|
14
|
+
def call
|
15
|
+
initial_log
|
16
|
+
process_files
|
17
|
+
final_log
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
attr_reader :args, :options
|
23
|
+
|
24
|
+
def initial_log
|
25
|
+
logger.initial_summary(file_paths)
|
26
|
+
end
|
27
|
+
|
28
|
+
def process_files
|
29
|
+
file_paths.each(&method(:process_file))
|
30
|
+
end
|
31
|
+
|
32
|
+
def process_file(file_path)
|
33
|
+
file_yalphabetizer_class.new(
|
34
|
+
file_path,
|
35
|
+
reader_class: reader_class,
|
36
|
+
offence_detector_class: offence_detector_class,
|
37
|
+
logger: logger,
|
38
|
+
autocorrect: options[:autocorrect],
|
39
|
+
alphabetizer_class: alphabetizer_class,
|
40
|
+
writer_class: writer_class
|
41
|
+
).call
|
42
|
+
end
|
43
|
+
|
44
|
+
def file_paths
|
45
|
+
@_file_paths ||= finder.paths(only: only_paths, exclude: excluded_paths)
|
46
|
+
end
|
47
|
+
|
48
|
+
def only_paths
|
49
|
+
if args.any?
|
50
|
+
args
|
51
|
+
elsif config
|
52
|
+
config['only'] || []
|
53
|
+
else
|
54
|
+
[]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def excluded_paths
|
59
|
+
if config
|
60
|
+
config['exclude'] || []
|
61
|
+
else
|
62
|
+
[]
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def config
|
67
|
+
return unless File.exist?('.yalphabetize.yml')
|
68
|
+
|
69
|
+
@_config ||= Psych.load_file('.yalphabetize.yml') || {}
|
70
|
+
end
|
71
|
+
|
72
|
+
def final_log
|
73
|
+
logger.final_summary
|
74
|
+
logger.offences? ? 1 : 0
|
75
|
+
end
|
76
|
+
|
77
|
+
def reader_class
|
78
|
+
Yalphabetize::Reader
|
79
|
+
end
|
80
|
+
|
81
|
+
def finder
|
82
|
+
Yalphabetize::YamlFinder
|
83
|
+
end
|
84
|
+
|
85
|
+
def alphabetizer_class
|
86
|
+
Yalphabetize::Alphabetizer
|
87
|
+
end
|
88
|
+
|
89
|
+
def writer_class
|
90
|
+
Yalphabetize::Writer
|
91
|
+
end
|
92
|
+
|
93
|
+
def offence_detector_class
|
94
|
+
Yalphabetize::OffenceDetector
|
95
|
+
end
|
96
|
+
|
97
|
+
def logger
|
98
|
+
@_logger ||= Yalphabetize::Logger.new
|
99
|
+
end
|
100
|
+
|
101
|
+
def file_yalphabetizer_class
|
102
|
+
Yalphabetize::FileYalphabetizer
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
@@ -6,6 +6,14 @@ module Yalphabetize
|
|
6
6
|
class YamlFinder
|
7
7
|
YAML_EXTENSIONS = %w[.yml .yaml].freeze
|
8
8
|
|
9
|
+
def self.paths(only:, exclude:)
|
10
|
+
if exclude.any?
|
11
|
+
new.paths(only) - new.paths(exclude)
|
12
|
+
else
|
13
|
+
new.paths(only)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
9
17
|
def initialize
|
10
18
|
@files = []
|
11
19
|
end
|
@@ -37,7 +45,7 @@ module Yalphabetize
|
|
37
45
|
end
|
38
46
|
|
39
47
|
def files_in_glob(glob)
|
40
|
-
files_in_dir([glob, glob.gsub('**', '')].uniq)
|
48
|
+
files_in_dir([glob, glob.gsub('**/', '').gsub('**', '')].uniq)
|
41
49
|
end
|
42
50
|
|
43
51
|
def files_in_dir(dir = Dir.pwd)
|
data/lib/yalphabetize.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'yalphabetize/aliaser'
|
4
|
+
require_relative 'yalphabetize/alphabetizer'
|
5
|
+
require_relative 'yalphabetize/cli'
|
6
|
+
require_relative 'yalphabetize/erb_compiler'
|
7
|
+
require_relative 'yalphabetize/file_yalphabetizer'
|
8
|
+
require_relative 'yalphabetize/logger'
|
9
|
+
require_relative 'yalphabetize/offence_detector'
|
10
|
+
require_relative 'yalphabetize/option_parser'
|
11
|
+
require_relative 'yalphabetize/parsing_error'
|
12
|
+
require_relative 'yalphabetize/reader'
|
13
|
+
require_relative 'yalphabetize/version'
|
14
|
+
require_relative 'yalphabetize/writer'
|
15
|
+
require_relative 'yalphabetize/yalphabetizer'
|
16
|
+
require_relative 'yalphabetize/yaml_finder'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yalphabetize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Jenkins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: psych
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rspec
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +80,20 @@ dependencies:
|
|
66
80
|
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: simplecov
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
69
97
|
description:
|
70
98
|
email:
|
71
99
|
executables:
|
@@ -74,21 +102,25 @@ extensions: []
|
|
74
102
|
extra_rdoc_files: []
|
75
103
|
files:
|
76
104
|
- bin/yalphabetize
|
105
|
+
- lib/yalphabetize.rb
|
106
|
+
- lib/yalphabetize/aliaser.rb
|
77
107
|
- lib/yalphabetize/alphabetizer.rb
|
78
108
|
- lib/yalphabetize/cli.rb
|
79
109
|
- lib/yalphabetize/erb_compiler.rb
|
80
110
|
- lib/yalphabetize/file_yalphabetizer.rb
|
81
111
|
- lib/yalphabetize/logger.rb
|
82
112
|
- lib/yalphabetize/offence_detector.rb
|
113
|
+
- lib/yalphabetize/option_parser.rb
|
83
114
|
- lib/yalphabetize/parsing_error.rb
|
84
115
|
- lib/yalphabetize/reader.rb
|
85
116
|
- lib/yalphabetize/version.rb
|
86
117
|
- lib/yalphabetize/writer.rb
|
118
|
+
- lib/yalphabetize/yalphabetizer.rb
|
87
119
|
- lib/yalphabetize/yaml_finder.rb
|
88
|
-
- lib/yalphabetizer.rb
|
89
120
|
homepage:
|
90
121
|
licenses: []
|
91
|
-
metadata:
|
122
|
+
metadata:
|
123
|
+
rubygems_mfa_required: 'true'
|
92
124
|
post_install_message:
|
93
125
|
rdoc_options: []
|
94
126
|
require_paths:
|
data/lib/yalphabetizer.rb
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'open3'
|
4
|
-
|
5
|
-
class Yalphabetizer
|
6
|
-
def self.call(args = [], **options)
|
7
|
-
new(args, options).call
|
8
|
-
end
|
9
|
-
|
10
|
-
def initialize(args, options)
|
11
|
-
@args = args
|
12
|
-
|
13
|
-
@reader_class = options[:reader_class]
|
14
|
-
@finder = options[:finder]
|
15
|
-
@alphabetizer_class = options[:alphabetizer_class]
|
16
|
-
@writer_class = options[:writer_class]
|
17
|
-
@offence_detector_class = options[:offence_detector_class]
|
18
|
-
@logger = options[:logger]
|
19
|
-
@file_yalphabetizer_class = options[:file_yalphabetizer_class]
|
20
|
-
end
|
21
|
-
|
22
|
-
def call
|
23
|
-
initial_log
|
24
|
-
process_files
|
25
|
-
final_log
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
attr_reader :args, :reader_class, :finder, :alphabetizer_class, :writer_class,
|
31
|
-
:offence_detector_class, :logger, :file_yalphabetizer_class
|
32
|
-
|
33
|
-
def initial_log
|
34
|
-
logger.initial_summary(file_paths)
|
35
|
-
end
|
36
|
-
|
37
|
-
def process_files
|
38
|
-
file_paths.each(&method(:process_file))
|
39
|
-
end
|
40
|
-
|
41
|
-
def process_file(file_path)
|
42
|
-
file_yalphabetizer_class.new(
|
43
|
-
file_path,
|
44
|
-
reader_class: reader_class,
|
45
|
-
offence_detector_class: offence_detector_class,
|
46
|
-
logger: logger,
|
47
|
-
autocorrect: autocorrect?,
|
48
|
-
alphabetizer_class: alphabetizer_class,
|
49
|
-
writer_class: writer_class
|
50
|
-
).call
|
51
|
-
end
|
52
|
-
|
53
|
-
def file_paths
|
54
|
-
explicit_paths = args.reject { |arg| arg[0] == '-' }
|
55
|
-
finder.paths(explicit_paths)
|
56
|
-
end
|
57
|
-
|
58
|
-
def autocorrect?
|
59
|
-
return true if args.include? '-a'
|
60
|
-
return true if args.include? '--autocorrect'
|
61
|
-
|
62
|
-
false
|
63
|
-
end
|
64
|
-
|
65
|
-
def final_log
|
66
|
-
logger.final_summary
|
67
|
-
logger.offences? ? 1 : 0
|
68
|
-
end
|
69
|
-
end
|