k_builder 0.0.61 → 0.0.62
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/lib/k_builder.rb +2 -0
- data/lib/k_builder/base_builder.rb +4 -6
- data/lib/k_builder/commands/base_command.rb +36 -0
- data/lib/k_builder/commands/rubo_cop_command.rb +112 -0
- data/lib/k_builder/version.rb +1 -1
- data/~/last_cop.txt +19 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3544040b2994f74c65d824516980a5ca980d441c53e97629920c23513cf76a2
|
4
|
+
data.tar.gz: e0c8e494f82a58e1564f59cfb66f960f6a99561a3cc28bfab81c17a77a3b4f8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a27d1f32b26b8878260c11f15a0285b64a65769d9b17631cb05f9c772deab1ddf97bb3f7db9ab392efd9d9b257344bb85272827de19228905b9fe4493d6a485
|
7
|
+
data.tar.gz: f1a237017caff54b821d750dc9e467ec659a7127abae3d9640afe4a997c83afd9347c0113c99eb60d78c849875d26c34305983dbfc478d9e33a6be229ad8149f
|
data/lib/k_builder.rb
CHANGED
@@ -10,6 +10,8 @@ require 'k_builder/base_builder'
|
|
10
10
|
require 'k_builder/base_configuration'
|
11
11
|
require 'k_builder/configuration'
|
12
12
|
require 'k_builder/file_segments'
|
13
|
+
require 'k_builder/commands/base_command'
|
14
|
+
require 'k_builder/commands/rubo_cop_command'
|
13
15
|
|
14
16
|
require 'handlebars/helpers/template'
|
15
17
|
|
@@ -320,13 +320,11 @@ module KBuilder
|
|
320
320
|
Handlebars::Helpers::Template.render(template_content, opts) unless template_content.nil?
|
321
321
|
end
|
322
322
|
|
323
|
-
def run_cop(file,
|
324
|
-
|
325
|
-
|
326
|
-
opts.prepend('-a') if auto_safe
|
327
|
-
opts.prepend('-A') if auto_all
|
323
|
+
def run_cop(file, **opts)
|
324
|
+
command = Commands::RuboCopCommand.new(file, builder: self, **opts)
|
325
|
+
command.execute
|
328
326
|
|
329
|
-
|
327
|
+
self
|
330
328
|
end
|
331
329
|
|
332
330
|
# Need to handle absolute files, see
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module KBuilder
|
4
|
+
module Commands
|
5
|
+
# Base command for single responsibility actions that can be fired
|
6
|
+
# from methods in the builder.
|
7
|
+
#
|
8
|
+
# Uses the command pattern
|
9
|
+
class BaseCommand
|
10
|
+
include KLog::Logging
|
11
|
+
|
12
|
+
attr_accessor :builder
|
13
|
+
attr_accessor :valid
|
14
|
+
|
15
|
+
def initialize(**opts)
|
16
|
+
@builder = opts[:builder]
|
17
|
+
@valid = true
|
18
|
+
end
|
19
|
+
|
20
|
+
def guard(message)
|
21
|
+
# THIS SHOULD ONLY LOG IF DEBUGGING IS TURNED ON
|
22
|
+
log.error(message)
|
23
|
+
@valid = false
|
24
|
+
end
|
25
|
+
|
26
|
+
def valid?
|
27
|
+
@valid
|
28
|
+
end
|
29
|
+
|
30
|
+
def debug(title: nil)
|
31
|
+
log.section_heading(title) if title
|
32
|
+
debug_values if respond_to?(:debug_values)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module KBuilder
|
4
|
+
module Commands
|
5
|
+
# Run RuboCop against a file
|
6
|
+
class RuboCopCommand < BaseCommand
|
7
|
+
attr_reader :file_pattern
|
8
|
+
attr_reader :fix_safe
|
9
|
+
attr_reader :fix_unsafe
|
10
|
+
attr_reader :rubo_config_file
|
11
|
+
attr_reader :show_console
|
12
|
+
|
13
|
+
attr_reader :cop_options
|
14
|
+
attr_reader :cop_opt_values
|
15
|
+
|
16
|
+
# Initialize RuboCop command
|
17
|
+
#
|
18
|
+
# @param [String] file_pattern File name or file pattern
|
19
|
+
# @param [Hash] **opts The options
|
20
|
+
# @option opts [Boolean] :fix_safe RuboCop -a option will fix simple and safe issues
|
21
|
+
# @option opts [Boolean] :fix_unsafe RuboCop -A option will fix simple but potentially unsafe issues
|
22
|
+
# @option opts [Boolean] :show_console This will show in console, or if false set --out ~/last_cop.txt so that console is redirected to file
|
23
|
+
# @option opts [String] :rubo_config_file YAML file with RuboCop configuration options
|
24
|
+
#
|
25
|
+
# @example Cop for single file with auto fix turned on for simple issues
|
26
|
+
#
|
27
|
+
# RubCopCommand.new('abc.rb', fix_safe: true)
|
28
|
+
#
|
29
|
+
# @example Cop for all spec files to auto simple and unsafe issues
|
30
|
+
#
|
31
|
+
# RubCopCommand.new('spec/**/*.rb', fix_unsafe: true)
|
32
|
+
def initialize(file_pattern, **opts)
|
33
|
+
super(**opts)
|
34
|
+
|
35
|
+
@valid = true
|
36
|
+
|
37
|
+
self.file_pattern = file_pattern
|
38
|
+
|
39
|
+
self.fix_safe = opts[:fix_safe]
|
40
|
+
self.fix_unsafe = opts[:fix_unsafe]
|
41
|
+
self.show_console = opts[:show_console]
|
42
|
+
self.rubo_config_file = opts[:rubo_config_file]
|
43
|
+
end
|
44
|
+
|
45
|
+
def execute
|
46
|
+
return unless valid?
|
47
|
+
|
48
|
+
cop_run
|
49
|
+
end
|
50
|
+
|
51
|
+
def cli_options
|
52
|
+
cli_options = []
|
53
|
+
# quite is the same as simple, except you will see nothing if no offenses
|
54
|
+
cli_options << '--format' << 'quiet' # 'simple'
|
55
|
+
cli_options << '-a' if fix_safe
|
56
|
+
cli_options << '-A' if fix_unsafe
|
57
|
+
cli_options << '--config' << rubo_config_file if rubo_config_file
|
58
|
+
cli_options << '--out' << '~/last_cop.txt' unless show_console
|
59
|
+
cli_options << file_pattern
|
60
|
+
cli_options
|
61
|
+
end
|
62
|
+
|
63
|
+
def debug_values
|
64
|
+
log.kv 'rubocop target', file_pattern
|
65
|
+
log.kv '-a', 'automatic fix for safe issues' if fix_safe
|
66
|
+
log.kv '-A', 'automatic fix for potentially unsafe issues' if fix_unsafe
|
67
|
+
log.kv '-config', rubo_config_file if rubo_config_file
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
def file_pattern=(value)
|
73
|
+
@file_pattern = value
|
74
|
+
|
75
|
+
if value.nil? || value.empty?
|
76
|
+
guard 'file_pattern is required'
|
77
|
+
elsif Pathname.glob(value).length.zero?
|
78
|
+
guard 'file_pattern does not reference an existing file'
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def fix_safe=(value)
|
83
|
+
@fix_safe = value || false
|
84
|
+
end
|
85
|
+
|
86
|
+
def fix_unsafe=(value)
|
87
|
+
@fix_unsafe = value || false
|
88
|
+
end
|
89
|
+
|
90
|
+
def show_console=(value)
|
91
|
+
@show_console = value || false
|
92
|
+
end
|
93
|
+
|
94
|
+
def rubo_config_file=(value)
|
95
|
+
@rubo_config_file = value
|
96
|
+
|
97
|
+
return if value.nil? || value.empty?
|
98
|
+
|
99
|
+
guard("Unknown RuboCop config file: #{value}") unless File.exist?(value)
|
100
|
+
end
|
101
|
+
|
102
|
+
def cop_run
|
103
|
+
cli = RuboCop::CLI.new
|
104
|
+
|
105
|
+
# log.section_heading('CLI OPTIONS')
|
106
|
+
# log.block cli_options
|
107
|
+
|
108
|
+
cli.run(cli_options)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
data/lib/k_builder/version.rb
CHANGED
data/~/last_cop.txt
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
== /var/folders/jh/nffr8l5j4rzgc7s386gj770r0000gn/T/rspec-20210701-95573-12q1az6/make-pretty.rb ==
|
2
|
+
C: 1: 1: Naming/FileName: The name of this source file (make-pretty.rb) should use snake_case.
|
3
|
+
C: 1: 1: [Corrected] Style/FrozenStringLiteralComment: Missing frozen string literal comment.
|
4
|
+
C: 2: 1: [Corrected] Layout/EmptyLineAfterMagicComment: Add an empty line after magic comments.
|
5
|
+
C: 2: 1: [Corrected] Layout/IndentationWidth: Use 2 (not 0) spaces for indentation.
|
6
|
+
C: 2: 1: [Corrected] Style/SingleLineMethods: Avoid single-line method definitions.
|
7
|
+
C: 2: 19: [Corrected] Layout/SpaceAfterComma: Space missing after comma.
|
8
|
+
W: 2: 20: [Corrected] Lint/UnusedMethodArgument: Unused method argument - xyz. If it's necessary, use _ or _xyz as an argument name to indicate that it won't be used.
|
9
|
+
C: 2: 30: [Corrected] Layout/SpaceAroundOperators: Surrounding space missing for operator =.
|
10
|
+
C: 3: 1: Style/Documentation: Missing top-level class documentation comment.
|
11
|
+
C: 3: 4: [Corrected] Layout/TrailingEmptyLines: Final newline missing.
|
12
|
+
C: 3: 28: [Corrected] Style/Semicolon: Do not use semicolons to terminate expressions.
|
13
|
+
C: 3: 29: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
|
14
|
+
C: 4: 3: [Corrected] Layout/IndentationWidth: Use 2 (not 0) spaces for indentation.
|
15
|
+
C: 4: 13: [Corrected] Style/Semicolon: Do not use semicolons to terminate expressions.
|
16
|
+
C: 4: 14: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
|
17
|
+
W: 5: 1: [Corrected] Layout/DefEndAlignment: end at 5, 0 is not aligned with def at 3, 2.
|
18
|
+
|
19
|
+
1 file inspected, 16 offenses detected, 14 offenses corrected
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: k_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.62
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: handlebars-helpers
|
@@ -111,6 +111,8 @@ files:
|
|
111
111
|
- lib/k_builder.rb
|
112
112
|
- lib/k_builder/base_builder.rb
|
113
113
|
- lib/k_builder/base_configuration.rb
|
114
|
+
- lib/k_builder/commands/base_command.rb
|
115
|
+
- lib/k_builder/commands/rubo_cop_command.rb
|
114
116
|
- lib/k_builder/configuration.rb
|
115
117
|
- lib/k_builder/file_segments.rb
|
116
118
|
- lib/k_builder/version.rb
|
@@ -121,6 +123,7 @@ files:
|
|
121
123
|
- usage/_out5.png
|
122
124
|
- usage/_usage_folder_after.png
|
123
125
|
- usage/_usage_folder_before.png
|
126
|
+
- "~/last_cop.txt"
|
124
127
|
homepage: http://appydave.com
|
125
128
|
licenses:
|
126
129
|
- MIT
|