rubysmith 0.4.0 → 0.8.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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/README.adoc +28 -15
- data/lib/rubysmith.rb +3 -1
- data/lib/rubysmith/builder.rb +1 -4
- data/lib/rubysmith/builders/bundler.rb +6 -5
- data/lib/rubysmith/builders/documentation.rb +1 -1
- data/lib/rubysmith/builders/rake.rb +2 -2
- data/lib/rubysmith/builders/rspec/context.rb +4 -3
- data/lib/rubysmith/builders/rspec/helper.rb +1 -2
- data/lib/rubysmith/builders/rubocop/formatter.rb +33 -0
- data/lib/rubysmith/builders/rubocop/setup.rb +33 -0
- data/lib/rubysmith/builders/ruby_critic.rb +27 -0
- data/lib/rubysmith/cli/configuration.rb +2 -1
- data/lib/rubysmith/cli/defaults.yml +4 -0
- data/lib/rubysmith/cli/parsers/build.rb +26 -1
- data/lib/rubysmith/cli/parsers/core.rb +5 -1
- data/lib/rubysmith/cli/processors/build.rb +10 -3
- data/lib/rubysmith/cli/shell.rb +9 -10
- data/lib/rubysmith/identity.rb +1 -1
- data/lib/rubysmith/realm.rb +4 -0
- data/lib/rubysmith/templates/%project_name%/.rubycritic.yml.erb +3 -0
- data/lib/rubysmith/templates/%project_name%/Gemfile.erb +40 -16
- data/lib/rubysmith/templates/%project_name%/Rakefile.erb +15 -1
- data/lib/rubysmith/templates/%project_name%/bin/console.erb +3 -5
- data/lib/rubysmith/templates/%project_name%/bin/guard.erb +0 -1
- data/lib/rubysmith/templates/%project_name%/bin/rubocop.erb +0 -1
- data/lib/rubysmith/templates/%project_name%/lib/%project_name%.rb.erb +3 -0
- data/lib/rubysmith/templates/%project_name%/spec/spec_helper.rb.erb +11 -5
- data/lib/rubysmith/templates/%project_name%/spec/support/shared_contexts/temp_dir.rb.erb +5 -3
- metadata +16 -209
- metadata.gz.sig +0 -0
- data/lib/rubysmith/builders/rubocop.rb +0 -42
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cc49110ec0c6a64e8a61c955db7e7019df90dc35058f29b5d1fb88b66ddbe6b1
|
|
4
|
+
data.tar.gz: 04cf9523178bd4510f596089e560444e5bcfbe500f01e152d27d02068aaab200
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0dc3eb2629ad86d42a4dea655b9460930dc671e27be1f9cacf424e66e89f2b396406944715b243d375d578cadb5fbc6d4996f4a8d30da8139881555f78f4ff27
|
|
7
|
+
data.tar.gz: 421f8be12cb1c8a9445c3b9d6913f455ce041612f082aba3f4b5b9758c877a5b4f069d1fa202804c02d7c71eef630419eebae19551bb49a140ab9d82f7bac26e
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data.tar.gz.sig
CHANGED
|
Binary file
|
data/README.adoc
CHANGED
|
@@ -23,18 +23,23 @@ toc::[]
|
|
|
23
23
|
== Features
|
|
24
24
|
|
|
25
25
|
* Builds a Ruby project skeleton for custom design and development.
|
|
26
|
-
* Uses link:https://www.alchemists.io/projects/refinements[Refinements] Ruby core library enhancements.
|
|
27
26
|
* Uses link:https://www.alchemists.io/projects/runcom[Runcom] for resource configuration management.
|
|
28
27
|
* Uses link:https://www.alchemists.io/projects/pragmater[Pragmater] for Ruby source pragma directives.
|
|
28
|
+
* Supports link:https://github.com/amazing-print/amazing_print[Amazing Print].
|
|
29
29
|
* Supports link:https://github.com/rubysec/bundler-audit[Bundler Audit].
|
|
30
|
+
* Supports link:https://github.com/rubymem/bundler-leak[Bundler Leak].
|
|
30
31
|
* Supports link:https://git-scm.com[Git].
|
|
31
32
|
* Supports link:https://www.alchemists.io/projects/git-lint[Git Lint].
|
|
32
33
|
* Supports link:https://github.com/guard/guard[Guard].
|
|
33
34
|
* Supports link:http://pryrepl.org[Pry].
|
|
34
35
|
* Supports link:https://github.com/troessner/reek[Reek].
|
|
36
|
+
* Supports link:https://www.alchemists.io/projects/refinements[Refinements].
|
|
35
37
|
* Supports link:https://rspec.info[RSpec].
|
|
36
38
|
* Supports link:https://github.com/rubocop-hq/rubocop[Rubocop].
|
|
39
|
+
* Supports link:https://docs.rubocop.org/rubocop-performance[Rubocop Performance].
|
|
40
|
+
* Supports link:https://github.com/rubocop-hq/rubocop-rake[Rubocop Rake].
|
|
37
41
|
* Supports link:https://github.com/rubocop-hq/rubocop-rspec[Rubocop RSpec].
|
|
42
|
+
* Supports link:https://github.com/whitesmith/RubyCritic[RubyCritic].
|
|
38
43
|
* Supports link:https://github.com/simplecov-ruby/simplecov[SimpleCov].
|
|
39
44
|
* Supports common settings and a structured layout for building projects.
|
|
40
45
|
* Provides common documentation:
|
|
@@ -73,25 +78,29 @@ From the command line, type: `rubysmith --help`
|
|
|
73
78
|
|
|
74
79
|
....
|
|
75
80
|
USAGE:
|
|
81
|
+
-b, --build NAME [options] Build new project.
|
|
76
82
|
-v, --version Show gem version.
|
|
77
83
|
-h, --help Show this message.
|
|
78
84
|
-c, --config ACTION Manage gem configuration: edit or view.
|
|
79
|
-
-b, --build NAME [options] Build new project.
|
|
80
85
|
|
|
81
86
|
BUILD OPTIONS:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
--[no-]amazing_print Add Amazing Print.
|
|
88
|
+
--[no-]bundler-audit Add Bundler Audit.
|
|
89
|
+
--[no-]bundler-leak Add Bundler Leak.
|
|
90
|
+
--[no-]console Add console script.
|
|
91
|
+
--[no-]documentation Add documentation.
|
|
92
|
+
--[no-]git Add Git.
|
|
93
|
+
--[no-]git-lint Add Git Lint.
|
|
94
|
+
--[no-]guard Add Guard.
|
|
95
|
+
--[no-]pry Add Pry.
|
|
96
|
+
--[no-]reek Add Reek.
|
|
97
|
+
--[no-]refinements Add Refinements.
|
|
98
|
+
--[no-]rspec Add RSpec.
|
|
99
|
+
--[no-]rubocop Add Rubocop.
|
|
100
|
+
--[no-]ruby_critic Add RubyCritic.
|
|
101
|
+
--[no-]setup Add setup script.
|
|
102
|
+
--[no-]simple_cov Add SimpleCov.
|
|
103
|
+
--min Use minimum/no options.
|
|
95
104
|
....
|
|
96
105
|
|
|
97
106
|
=== Building
|
|
@@ -151,7 +160,9 @@ The default configuration is as follows:
|
|
|
151
160
|
:format: "md"
|
|
152
161
|
:license: "mit"
|
|
153
162
|
:build:
|
|
163
|
+
:amazing_print: true
|
|
154
164
|
:bundler_audit: true
|
|
165
|
+
:bundler_leak: true
|
|
155
166
|
:console: true
|
|
156
167
|
:documentation: true
|
|
157
168
|
:git: true
|
|
@@ -160,8 +171,10 @@ The default configuration is as follows:
|
|
|
160
171
|
:minimum: false
|
|
161
172
|
:pry: true
|
|
162
173
|
:reek: true
|
|
174
|
+
:refinements: true
|
|
163
175
|
:rspec: true
|
|
164
176
|
:rubocop: true
|
|
177
|
+
:ruby_critic: true
|
|
165
178
|
:setup: true
|
|
166
179
|
:simple_cov: true
|
|
167
180
|
:builders:
|
data/lib/rubysmith.rb
CHANGED
|
@@ -20,7 +20,9 @@ require "rubysmith/builders/reek"
|
|
|
20
20
|
require "rubysmith/builders/rspec/context"
|
|
21
21
|
require "rubysmith/builders/rspec/helper"
|
|
22
22
|
require "rubysmith/builders/pragma"
|
|
23
|
-
require "rubysmith/builders/rubocop"
|
|
23
|
+
require "rubysmith/builders/rubocop/setup"
|
|
24
|
+
require "rubysmith/builders/rubocop/formatter"
|
|
25
|
+
require "rubysmith/builders/ruby_critic"
|
|
24
26
|
require "rubysmith/cli/parsers/core"
|
|
25
27
|
require "rubysmith/cli/parsers/build"
|
|
26
28
|
require "rubysmith/cli/parsers/assembler"
|
data/lib/rubysmith/builder.rb
CHANGED
|
@@ -10,10 +10,7 @@ module Rubysmith
|
|
|
10
10
|
class Builder
|
|
11
11
|
using Refinements::Pathnames
|
|
12
12
|
|
|
13
|
-
LOGGER = Logger.new(
|
|
14
|
-
STDOUT,
|
|
15
|
-
formatter: ->(severity, _at, _program, message) { "#{severity} #{message}\n" }
|
|
16
|
-
)
|
|
13
|
+
LOGGER = Logger.new(STDOUT, formatter: ->(_severity, _at, _program, message) { "#{message}\n" })
|
|
17
14
|
|
|
18
15
|
HELPERS = {
|
|
19
16
|
inserter: Text::Inserter,
|
|
@@ -20,11 +20,12 @@ module Rubysmith
|
|
|
20
20
|
def call
|
|
21
21
|
builder.call(realm.with(template_path: "%project_name%/Gemfile.erb"))
|
|
22
22
|
.render
|
|
23
|
-
.replace(/\n\s
|
|
24
|
-
.replace(/\n\s
|
|
25
|
-
.replace(
|
|
26
|
-
.replace(
|
|
27
|
-
.replace(/\n
|
|
23
|
+
.replace(/\n\s+group/, "\n\ngroup")
|
|
24
|
+
.replace(/\n\s+gem/, "\n gem")
|
|
25
|
+
.replace(/ (?=.+refinements)/, "")
|
|
26
|
+
.replace(/(\n+|\s+)end/, "\nend")
|
|
27
|
+
.replace(/\n\ngroup :(code_quality|test|tools) do\nend/, "")
|
|
28
|
+
.replace(/org"\n+/, "org\"\n\n")
|
|
28
29
|
Dir.chdir(realm.project_root) { runner.start %w[install --quiet] }
|
|
29
30
|
nil
|
|
30
31
|
end
|
|
@@ -16,11 +16,11 @@ module Rubysmith
|
|
|
16
16
|
def call
|
|
17
17
|
builder.call(realm.with(template_path: "%project_name%/Rakefile.erb"))
|
|
18
18
|
.render
|
|
19
|
-
.replace(/\A\n+/, "")
|
|
20
19
|
.replace(/\[\s+/, "[")
|
|
21
20
|
.replace(/\s+\]/, "]")
|
|
22
|
-
.replace(/\n{2,}/, "\n\n")
|
|
23
21
|
.replace(" ", "")
|
|
22
|
+
.replace(/\n+(?=require)/, "\n")
|
|
23
|
+
.replace(/\n{2,}/, "\n\n")
|
|
24
24
|
nil
|
|
25
25
|
end
|
|
26
26
|
|
|
@@ -17,9 +17,10 @@ module Rubysmith
|
|
|
17
17
|
def call
|
|
18
18
|
return unless realm.build_rspec
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
realm.with(template_path: "%project_name%/spec/support/shared_contexts/temp_dir.rb.erb")
|
|
21
|
+
.then { |new_realm| builder.call new_realm }
|
|
22
|
+
.render
|
|
23
|
+
.replace(/\n\s+\n\s+/, "\n ")
|
|
23
24
|
end
|
|
24
25
|
|
|
25
26
|
private
|
|
@@ -20,8 +20,7 @@ module Rubysmith
|
|
|
20
20
|
builder.call(realm.with(template_path: "%project_name%/spec/spec_helper.rb.erb"))
|
|
21
21
|
.render
|
|
22
22
|
.replace(/\n{3,}/, "\n\n")
|
|
23
|
-
.replace(
|
|
24
|
-
.replace(" Simple", "Simple")
|
|
23
|
+
.replace(/\n\s{2}(?=(require|Simple|using|Pathname|Dir))/, "\n")
|
|
25
24
|
end
|
|
26
25
|
|
|
27
26
|
private
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "rubocop"
|
|
4
|
+
require "refinements/ios"
|
|
5
|
+
|
|
6
|
+
module Rubysmith
|
|
7
|
+
module Builders
|
|
8
|
+
module Rubocop
|
|
9
|
+
# Executes Rubocop auto-correct on newly generated project.
|
|
10
|
+
class Formatter
|
|
11
|
+
using Refinements::IOs
|
|
12
|
+
|
|
13
|
+
def self.call realm
|
|
14
|
+
new(realm).call
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def initialize realm, client: RuboCop::CLI.new
|
|
18
|
+
@realm = realm
|
|
19
|
+
@client = client
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def call
|
|
23
|
+
STDOUT.squelch { client.run ["--auto-correct", realm.project_root.to_s] }
|
|
24
|
+
nil
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
attr_reader :realm, :client
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Rubysmith
|
|
4
|
+
module Builders
|
|
5
|
+
module Rubocop
|
|
6
|
+
# Builds project skeleton for Rubocop code quality support.
|
|
7
|
+
class Setup
|
|
8
|
+
def self.call realm, builder: Builder
|
|
9
|
+
new(realm, builder: builder).call
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def initialize realm, builder: Builder
|
|
13
|
+
@realm = realm
|
|
14
|
+
@builder = builder
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def call
|
|
18
|
+
return unless realm.build_rubocop
|
|
19
|
+
|
|
20
|
+
builder.call(realm.with(template_path: "%project_name%/bin/rubocop.erb"))
|
|
21
|
+
.render
|
|
22
|
+
.permit 0o755
|
|
23
|
+
|
|
24
|
+
builder.call(realm.with(template_path: "%project_name%/.rubocop.yml.erb")).render
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
attr_reader :realm, :builder
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Rubysmith
|
|
4
|
+
module Builders
|
|
5
|
+
# Builds project skeleton RubyCritic code quality support.
|
|
6
|
+
class RubyCritic
|
|
7
|
+
def self.call realm, builder: Builder
|
|
8
|
+
new(realm, builder: builder).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize realm, builder: Builder
|
|
12
|
+
@realm = realm
|
|
13
|
+
@builder = builder
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
return unless realm.build_ruby_critic
|
|
18
|
+
|
|
19
|
+
builder.call(realm.with(template_path: "%project_name%/.rubycritic.yml.erb")).render
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
attr_reader :realm, :builder
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
:format: "md"
|
|
9
9
|
:license: "mit"
|
|
10
10
|
:build:
|
|
11
|
+
:amazing_print: true
|
|
11
12
|
:bundler_audit: true
|
|
13
|
+
:bundler_leak: true
|
|
12
14
|
:console: true
|
|
13
15
|
:documentation: true
|
|
14
16
|
:git: true
|
|
@@ -17,8 +19,10 @@
|
|
|
17
19
|
:minimum: false
|
|
18
20
|
:pry: true
|
|
19
21
|
:reek: true
|
|
22
|
+
:refinements: true
|
|
20
23
|
:rspec: true
|
|
21
24
|
:rubocop: true
|
|
25
|
+
:ruby_critic: true
|
|
22
26
|
:setup: true
|
|
23
27
|
:simple_cov: true
|
|
24
28
|
:builders:
|
|
@@ -4,6 +4,7 @@ module Rubysmith
|
|
|
4
4
|
module CLI
|
|
5
5
|
module Parsers
|
|
6
6
|
# Handles parsing of Command Line Interface (CLI) build options.
|
|
7
|
+
# :reek:TooManyMethods
|
|
7
8
|
class Build
|
|
8
9
|
def self.call client:, options:
|
|
9
10
|
new(client: client, options: options).call
|
|
@@ -16,7 +17,7 @@ module Rubysmith
|
|
|
16
17
|
|
|
17
18
|
def call arguments = []
|
|
18
19
|
client.separator "\nBUILD OPTIONS:\n"
|
|
19
|
-
private_methods.grep(/add_/).each
|
|
20
|
+
private_methods.sort.grep(/add_/).each { |method| __send__ method }
|
|
20
21
|
arguments.empty? ? arguments : client.parse!(arguments)
|
|
21
22
|
end
|
|
22
23
|
|
|
@@ -30,12 +31,24 @@ module Rubysmith
|
|
|
30
31
|
end
|
|
31
32
|
end
|
|
32
33
|
|
|
34
|
+
def add_amazing_print
|
|
35
|
+
client.on "--[no-]amazing_print", "Add Amazing Print." do |value|
|
|
36
|
+
options[:build_amazing_print] = value
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
33
40
|
def add_bundler_audit
|
|
34
41
|
client.on "--[no-]bundler-audit", "Add Bundler Audit." do |value|
|
|
35
42
|
options[:build_bundler_audit] = value
|
|
36
43
|
end
|
|
37
44
|
end
|
|
38
45
|
|
|
46
|
+
def add_bundler_leak
|
|
47
|
+
client.on "--[no-]bundler-leak", "Add Bundler Leak." do |value|
|
|
48
|
+
options[:build_bundler_leak] = value
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
39
52
|
def add_console
|
|
40
53
|
client.on "--[no-]console", "Add console script." do |value|
|
|
41
54
|
options[:build_console] = value
|
|
@@ -78,6 +91,12 @@ module Rubysmith
|
|
|
78
91
|
end
|
|
79
92
|
end
|
|
80
93
|
|
|
94
|
+
def add_refinements
|
|
95
|
+
client.on "--[no-]refinements", "Add Refinements." do |value|
|
|
96
|
+
options[:build_refinements] = value
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
81
100
|
def add_rspec
|
|
82
101
|
client.on "--[no-]rspec", "Add RSpec." do |value|
|
|
83
102
|
options[:build_rspec] = value
|
|
@@ -90,6 +109,12 @@ module Rubysmith
|
|
|
90
109
|
end
|
|
91
110
|
end
|
|
92
111
|
|
|
112
|
+
def add_ruby_critic
|
|
113
|
+
client.on "--[no-]ruby_critic", "Add RubyCritic." do |value|
|
|
114
|
+
options[:build_ruby_critic] = value
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
93
118
|
def add_setup
|
|
94
119
|
client.on "--[no-]setup", "Add setup script." do |value|
|
|
95
120
|
options[:build_setup] = value
|
|
@@ -19,7 +19,7 @@ module Rubysmith
|
|
|
19
19
|
def call arguments = []
|
|
20
20
|
client.banner = "#{Identity::LABEL} - #{Identity::SUMMARY}"
|
|
21
21
|
client.separator "\nUSAGE:\n"
|
|
22
|
-
|
|
22
|
+
collate
|
|
23
23
|
arguments.empty? ? arguments : client.parse!(arguments)
|
|
24
24
|
end
|
|
25
25
|
|
|
@@ -27,6 +27,10 @@ module Rubysmith
|
|
|
27
27
|
|
|
28
28
|
attr_reader :client, :options
|
|
29
29
|
|
|
30
|
+
def collate
|
|
31
|
+
private_methods.sort.grep(/add_/).each { |method| __send__ method }
|
|
32
|
+
end
|
|
33
|
+
|
|
30
34
|
def add_config
|
|
31
35
|
client.on "-c",
|
|
32
36
|
"--config ACTION",
|
|
@@ -9,7 +9,8 @@ module Rubysmith
|
|
|
9
9
|
MINIMUM = [
|
|
10
10
|
Builders::Core,
|
|
11
11
|
Builders::Bundler,
|
|
12
|
-
Builders::Pragma
|
|
12
|
+
Builders::Pragma,
|
|
13
|
+
Builders::Rubocop::Formatter
|
|
13
14
|
].freeze
|
|
14
15
|
|
|
15
16
|
# Order is important.
|
|
@@ -26,16 +27,22 @@ module Rubysmith
|
|
|
26
27
|
Builders::RSpec::Context,
|
|
27
28
|
Builders::RSpec::Helper,
|
|
28
29
|
Builders::Pragma,
|
|
29
|
-
Builders::Rubocop,
|
|
30
|
+
Builders::Rubocop::Setup,
|
|
31
|
+
Builders::Rubocop::Formatter,
|
|
32
|
+
Builders::RubyCritic,
|
|
30
33
|
Builders::Git::Commit
|
|
31
34
|
].freeze
|
|
32
35
|
|
|
36
|
+
def self.with_minimum
|
|
37
|
+
new builders: MINIMUM
|
|
38
|
+
end
|
|
39
|
+
|
|
33
40
|
def initialize builders: MAXIMUM
|
|
34
41
|
@builders = builders
|
|
35
42
|
end
|
|
36
43
|
|
|
37
44
|
def call options
|
|
38
|
-
Realm[**options].then
|
|
45
|
+
Realm[**options].then { |realm| process realm }
|
|
39
46
|
end
|
|
40
47
|
|
|
41
48
|
private
|
data/lib/rubysmith/cli/shell.rb
CHANGED
|
@@ -11,7 +11,7 @@ module Rubysmith
|
|
|
11
11
|
|
|
12
12
|
PROCESSORS = {
|
|
13
13
|
config: Processors::Config.new,
|
|
14
|
-
build_minimum: Processors::Build.
|
|
14
|
+
build_minimum: Processors::Build.with_minimum,
|
|
15
15
|
build_maximum: Processors::Build.new
|
|
16
16
|
}.freeze
|
|
17
17
|
|
|
@@ -23,16 +23,14 @@ module Rubysmith
|
|
|
23
23
|
def call arguments = []
|
|
24
24
|
parse arguments
|
|
25
25
|
|
|
26
|
-
# rubocop:disable Style/MethodCallWithArgsParentheses
|
|
27
26
|
case options
|
|
28
|
-
in config: action, **remainder then
|
|
29
|
-
in build_minimum: true, **remainder then
|
|
30
|
-
in build:, **remainder then
|
|
27
|
+
in config: action, **remainder then process_config action
|
|
28
|
+
in build_minimum: true, **remainder then process_build :build_minimum, options
|
|
29
|
+
in build:, **remainder then process_build :build_maximum, options
|
|
31
30
|
in version:, **remainder then puts version
|
|
32
31
|
in help:, **remainder then usage
|
|
33
32
|
else usage
|
|
34
33
|
end
|
|
35
|
-
# rubocop:enable Style/MethodCallWithArgsParentheses
|
|
36
34
|
end
|
|
37
35
|
|
|
38
36
|
private
|
|
@@ -45,12 +43,13 @@ module Rubysmith
|
|
|
45
43
|
puts error.message
|
|
46
44
|
end
|
|
47
45
|
|
|
48
|
-
def
|
|
49
|
-
processors.fetch(
|
|
46
|
+
def process_config action
|
|
47
|
+
processors.fetch(:config).call action
|
|
50
48
|
end
|
|
51
49
|
|
|
52
|
-
def
|
|
53
|
-
processors.fetch(kind).call settings.
|
|
50
|
+
def process_build kind, settings
|
|
51
|
+
processors.fetch(kind).call settings.transform_keys(build: :project_name)
|
|
52
|
+
.merge(now: Time.now)
|
|
54
53
|
end
|
|
55
54
|
|
|
56
55
|
def options
|
data/lib/rubysmith/identity.rb
CHANGED
data/lib/rubysmith/realm.rb
CHANGED
|
@@ -17,7 +17,9 @@ module Rubysmith
|
|
|
17
17
|
documentation_format
|
|
18
18
|
documentation_license
|
|
19
19
|
build_minimum
|
|
20
|
+
build_amazing_print
|
|
20
21
|
build_bundler_audit
|
|
22
|
+
build_bundler_leak
|
|
21
23
|
build_console
|
|
22
24
|
build_documentation
|
|
23
25
|
build_git
|
|
@@ -25,8 +27,10 @@ module Rubysmith
|
|
|
25
27
|
build_guard
|
|
26
28
|
build_pry
|
|
27
29
|
build_reek
|
|
30
|
+
build_refinements
|
|
28
31
|
build_rspec
|
|
29
32
|
build_rubocop
|
|
33
|
+
build_ruby_critic
|
|
30
34
|
build_setup
|
|
31
35
|
build_simple_cov
|
|
32
36
|
builders_pragmater_comments
|
|
@@ -1,35 +1,59 @@
|
|
|
1
1
|
source "https://rubygems.org"
|
|
2
2
|
|
|
3
3
|
<% unless realm.build_minimum %>
|
|
4
|
-
|
|
4
|
+
<% if realm.build_refinements %>
|
|
5
|
+
gem "refinements", "~> 8.0"
|
|
6
|
+
<% end %>
|
|
7
|
+
|
|
8
|
+
group :code_quality do
|
|
5
9
|
<% if realm.build_bundler_audit %>
|
|
6
10
|
gem "bundler-audit", "~> 0.7"
|
|
7
11
|
<% end %>
|
|
8
|
-
<% if realm.
|
|
9
|
-
gem "
|
|
10
|
-
<% end %>
|
|
11
|
-
<% if realm.build_guard %>
|
|
12
|
-
gem "guard-rspec", "~> 4.7"
|
|
12
|
+
<% if realm.build_bundler_leak %>
|
|
13
|
+
gem "bundler-leak", "~> 0.2"
|
|
13
14
|
<% end %>
|
|
14
|
-
<% if realm.
|
|
15
|
-
gem "
|
|
16
|
-
gem "pry-byebug", "~> 3.9"
|
|
15
|
+
<% if realm.build_git && realm.build_git_lint %>
|
|
16
|
+
gem "git-lint", "~> 2.0"
|
|
17
17
|
<% end %>
|
|
18
|
-
gem "rake", "~> 13.0"
|
|
19
18
|
<% if realm.build_reek %>
|
|
20
19
|
gem "reek", "~> 6.0"
|
|
21
20
|
<% end %>
|
|
22
|
-
<% if realm.build_rspec %>
|
|
23
|
-
gem "rspec", "~> 3.10"
|
|
24
|
-
<% end %>
|
|
25
21
|
<% if realm.build_rubocop %>
|
|
26
|
-
gem "rubocop", "~> 1.
|
|
27
|
-
gem "rubocop-performance", "~> 1.
|
|
22
|
+
gem "rubocop", "~> 1.5"
|
|
23
|
+
gem "rubocop-performance", "~> 1.9"
|
|
28
24
|
gem "rubocop-rake", "~> 0.5"
|
|
25
|
+
<% end %>
|
|
26
|
+
<% if realm.build_rspec && realm.build_rubocop %>
|
|
29
27
|
gem "rubocop-rspec", "~> 2.0"
|
|
30
28
|
<% end %>
|
|
29
|
+
<% if realm.build_ruby_critic %>
|
|
30
|
+
gem "rubycritic", "~> 4.5", require: false
|
|
31
|
+
<% end %>
|
|
31
32
|
<% if realm.build_simple_cov %>
|
|
32
|
-
gem "simplecov", "~> 0.
|
|
33
|
+
gem "simplecov", "~> 0.20"
|
|
34
|
+
<% end %>
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
group :development do
|
|
38
|
+
gem "rake", "~> 13.0"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
group :test do
|
|
42
|
+
<% if realm.build_guard %>
|
|
43
|
+
gem "guard-rspec", "~> 4.7", require: false
|
|
44
|
+
<% end %>
|
|
45
|
+
<% if realm.build_rspec %>
|
|
46
|
+
gem "rspec", "~> 3.10"
|
|
47
|
+
<% end %>
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
group :tools do
|
|
51
|
+
<% if realm.build_amazing_print %>
|
|
52
|
+
gem "amazing_print", "~> 1.2"
|
|
53
|
+
<% end %>
|
|
54
|
+
<% if realm.build_pry %>
|
|
55
|
+
gem "pry", "~> 0.13"
|
|
56
|
+
gem "pry-byebug", "~> 3.9"
|
|
33
57
|
<% end %>
|
|
34
58
|
end
|
|
35
59
|
<% end %>
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
require "bundler/setup"
|
|
2
|
+
|
|
1
3
|
<% if realm.build_bundler_audit %>
|
|
2
4
|
require "bundler/audit/task"
|
|
3
5
|
<% end %>
|
|
6
|
+
<% if realm.build_bundler_leak %>
|
|
7
|
+
require "bundler/plumber/task"
|
|
8
|
+
<% end %>
|
|
4
9
|
<% if realm.build_git && realm.build_git_lint %>
|
|
5
10
|
require "git/lint/rake/setup"
|
|
6
11
|
<% end %>
|
|
@@ -13,10 +18,16 @@
|
|
|
13
18
|
<% if realm.build_rubocop %>
|
|
14
19
|
require "rubocop/rake_task"
|
|
15
20
|
<% end %>
|
|
21
|
+
<% if realm.build_ruby_critic %>
|
|
22
|
+
require "rubycritic/rake_task"
|
|
23
|
+
<% end %>
|
|
16
24
|
|
|
17
25
|
<% if realm.build_bundler_audit %>
|
|
18
26
|
Bundler::Audit::Task.new
|
|
19
27
|
<% end %>
|
|
28
|
+
<% if realm.build_bundler_leak %>
|
|
29
|
+
Bundler::Plumber::Task.new
|
|
30
|
+
<% end %>
|
|
20
31
|
<% if realm.build_reek %>
|
|
21
32
|
Reek::Rake::Task.new
|
|
22
33
|
<% end %>
|
|
@@ -26,8 +37,11 @@
|
|
|
26
37
|
<% if realm.build_rubocop %>
|
|
27
38
|
RuboCop::RakeTask.new
|
|
28
39
|
<% end %>
|
|
40
|
+
<% if realm.build_ruby_critic %>
|
|
41
|
+
RubyCritic::RakeTask.new
|
|
42
|
+
<% end %>
|
|
29
43
|
|
|
30
44
|
desc "Run code quality checks"
|
|
31
|
-
task code_quality: %i[<% if realm.build_bundler_audit %>bundle:audit<% end %> <% if realm.build_git && realm.build_git_lint %>git_lint<% end %> <% if realm.build_reek %>reek<% end %> <% if realm.build_rubocop %>rubocop<% end %>]
|
|
45
|
+
task code_quality: %i[<% if realm.build_bundler_audit %>bundle:audit<% end %> <% if realm.build_bundler_leak %>bundle:leak<% end %> <% if realm.build_git && realm.build_git_lint %>git_lint<% end %> <% if realm.build_reek %>reek<% end %> <% if realm.build_rubocop %>rubocop<% end %> <% if realm.build_ruby_critic %>rubycritic<% end %>]
|
|
32
46
|
|
|
33
47
|
task default: %i[code_quality <% if realm.build_rspec %>spec<% end %>]
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
#! /usr/bin/env ruby
|
|
2
2
|
|
|
3
3
|
require "bundler/setup"
|
|
4
|
-
require
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
require "pry-byebug"
|
|
8
|
-
<% end %>
|
|
4
|
+
Bundler.require :tools
|
|
5
|
+
|
|
6
|
+
require_relative "../lib/<%= realm.project_name %>"
|
|
9
7
|
require "irb"
|
|
10
8
|
|
|
11
9
|
IRB.start __FILE__
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
require "bundler/setup"
|
|
2
|
+
Bundler.require :tools
|
|
2
3
|
|
|
3
4
|
<% if realm.build_simple_cov %>
|
|
4
5
|
require "simplecov"
|
|
5
6
|
SimpleCov.start { enable_coverage :branch }
|
|
6
7
|
<% end %>
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
require "
|
|
11
|
-
|
|
9
|
+
require "<%= realm.project_name %>"
|
|
10
|
+
<% if realm.build_refinements %>
|
|
11
|
+
require "refinements"
|
|
12
|
+
|
|
13
|
+
using Refinements::Pathnames
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
Pathname.require_tree __dir__, "support/shared_contexts/**/*.rb"
|
|
16
|
+
<% else %>
|
|
17
|
+
|
|
18
|
+
Dir[File.join(__dir__, "support", "shared_contexts", "**/*.rb")].sort.each { |path| require path }
|
|
19
|
+
<% end %>
|
|
14
20
|
|
|
15
21
|
RSpec.configure do |config|
|
|
16
22
|
config.color = true
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
RSpec.shared_context "with temporary directory", :temp_dir do
|
|
2
|
-
|
|
2
|
+
<% if realm.build_refinements %>using Refinements::Pathnames<% end %>
|
|
3
|
+
|
|
4
|
+
let(:temp_dir) { Bundler.root.join "tmp/rspec" }
|
|
3
5
|
|
|
4
6
|
around do |example|
|
|
5
|
-
FileUtils.mkdir_p temp_dir
|
|
7
|
+
<%= realm.build_refinements ? "temp_dir.make_path" : "FileUtils.mkdir_p temp_dir" %>
|
|
6
8
|
example.run
|
|
7
|
-
FileUtils.rm_rf temp_dir
|
|
9
|
+
<%= realm.build_refinements ? "temp_dir.remove_tree" : "FileUtils.rm_rf temp_dir" %>
|
|
8
10
|
end
|
|
9
11
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubysmith
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brooke Kuhlmann
|
|
@@ -28,7 +28,7 @@ cert_chain:
|
|
|
28
28
|
2XV8FRa7/JimI07sPLC13eLY3xd/aYTi85Z782KIA4j0G8XEEWAX0ouBhlXPocZv
|
|
29
29
|
QWc=
|
|
30
30
|
-----END CERTIFICATE-----
|
|
31
|
-
date: 2020-
|
|
31
|
+
date: 2020-12-30 00:00:00.000000000 Z
|
|
32
32
|
dependencies:
|
|
33
33
|
- !ruby/object:Gem::Dependency
|
|
34
34
|
name: pragmater
|
|
@@ -36,252 +36,56 @@ dependencies:
|
|
|
36
36
|
requirements:
|
|
37
37
|
- - "~>"
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
39
|
+
version: '9.0'
|
|
40
40
|
type: :runtime
|
|
41
41
|
prerelease: false
|
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
44
|
- - "~>"
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '
|
|
46
|
+
version: '9.0'
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: refinements
|
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '
|
|
53
|
+
version: '8.0'
|
|
54
54
|
type: :runtime
|
|
55
55
|
prerelease: false
|
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - "~>"
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '
|
|
60
|
+
version: '8.0'
|
|
61
61
|
- !ruby/object:Gem::Dependency
|
|
62
62
|
name: rubocop
|
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
|
64
64
|
requirements:
|
|
65
65
|
- - "~>"
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '1.
|
|
67
|
+
version: '1.5'
|
|
68
68
|
type: :runtime
|
|
69
69
|
prerelease: false
|
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
72
|
- - "~>"
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: '1.
|
|
74
|
+
version: '1.5'
|
|
75
75
|
- !ruby/object:Gem::Dependency
|
|
76
76
|
name: runcom
|
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
|
78
78
|
requirements:
|
|
79
79
|
- - "~>"
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: '
|
|
81
|
+
version: '7.0'
|
|
82
82
|
type: :runtime
|
|
83
83
|
prerelease: false
|
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
85
85
|
requirements:
|
|
86
86
|
- - "~>"
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '
|
|
89
|
-
- !ruby/object:Gem::Dependency
|
|
90
|
-
name: bundler-audit
|
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
|
92
|
-
requirements:
|
|
93
|
-
- - "~>"
|
|
94
|
-
- !ruby/object:Gem::Version
|
|
95
|
-
version: '0.7'
|
|
96
|
-
type: :development
|
|
97
|
-
prerelease: false
|
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
99
|
-
requirements:
|
|
100
|
-
- - "~>"
|
|
101
|
-
- !ruby/object:Gem::Version
|
|
102
|
-
version: '0.7'
|
|
103
|
-
- !ruby/object:Gem::Dependency
|
|
104
|
-
name: bundler-leak
|
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
|
106
|
-
requirements:
|
|
107
|
-
- - "~>"
|
|
108
|
-
- !ruby/object:Gem::Version
|
|
109
|
-
version: '0.2'
|
|
110
|
-
type: :development
|
|
111
|
-
prerelease: false
|
|
112
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
113
|
-
requirements:
|
|
114
|
-
- - "~>"
|
|
115
|
-
- !ruby/object:Gem::Version
|
|
116
|
-
version: '0.2'
|
|
117
|
-
- !ruby/object:Gem::Dependency
|
|
118
|
-
name: gemsmith
|
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
|
120
|
-
requirements:
|
|
121
|
-
- - "~>"
|
|
122
|
-
- !ruby/object:Gem::Version
|
|
123
|
-
version: '14.8'
|
|
124
|
-
type: :development
|
|
125
|
-
prerelease: false
|
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
127
|
-
requirements:
|
|
128
|
-
- - "~>"
|
|
129
|
-
- !ruby/object:Gem::Version
|
|
130
|
-
version: '14.8'
|
|
131
|
-
- !ruby/object:Gem::Dependency
|
|
132
|
-
name: git-lint
|
|
133
|
-
requirement: !ruby/object:Gem::Requirement
|
|
134
|
-
requirements:
|
|
135
|
-
- - "~>"
|
|
136
|
-
- !ruby/object:Gem::Version
|
|
137
|
-
version: '1.3'
|
|
138
|
-
type: :development
|
|
139
|
-
prerelease: false
|
|
140
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
141
|
-
requirements:
|
|
142
|
-
- - "~>"
|
|
143
|
-
- !ruby/object:Gem::Version
|
|
144
|
-
version: '1.3'
|
|
145
|
-
- !ruby/object:Gem::Dependency
|
|
146
|
-
name: guard-rspec
|
|
147
|
-
requirement: !ruby/object:Gem::Requirement
|
|
148
|
-
requirements:
|
|
149
|
-
- - "~>"
|
|
150
|
-
- !ruby/object:Gem::Version
|
|
151
|
-
version: '4.7'
|
|
152
|
-
type: :development
|
|
153
|
-
prerelease: false
|
|
154
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
155
|
-
requirements:
|
|
156
|
-
- - "~>"
|
|
157
|
-
- !ruby/object:Gem::Version
|
|
158
|
-
version: '4.7'
|
|
159
|
-
- !ruby/object:Gem::Dependency
|
|
160
|
-
name: pry
|
|
161
|
-
requirement: !ruby/object:Gem::Requirement
|
|
162
|
-
requirements:
|
|
163
|
-
- - "~>"
|
|
164
|
-
- !ruby/object:Gem::Version
|
|
165
|
-
version: '0.13'
|
|
166
|
-
type: :development
|
|
167
|
-
prerelease: false
|
|
168
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
169
|
-
requirements:
|
|
170
|
-
- - "~>"
|
|
171
|
-
- !ruby/object:Gem::Version
|
|
172
|
-
version: '0.13'
|
|
173
|
-
- !ruby/object:Gem::Dependency
|
|
174
|
-
name: pry-byebug
|
|
175
|
-
requirement: !ruby/object:Gem::Requirement
|
|
176
|
-
requirements:
|
|
177
|
-
- - "~>"
|
|
178
|
-
- !ruby/object:Gem::Version
|
|
179
|
-
version: '3.9'
|
|
180
|
-
type: :development
|
|
181
|
-
prerelease: false
|
|
182
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
183
|
-
requirements:
|
|
184
|
-
- - "~>"
|
|
185
|
-
- !ruby/object:Gem::Version
|
|
186
|
-
version: '3.9'
|
|
187
|
-
- !ruby/object:Gem::Dependency
|
|
188
|
-
name: rake
|
|
189
|
-
requirement: !ruby/object:Gem::Requirement
|
|
190
|
-
requirements:
|
|
191
|
-
- - "~>"
|
|
192
|
-
- !ruby/object:Gem::Version
|
|
193
|
-
version: '13.0'
|
|
194
|
-
type: :development
|
|
195
|
-
prerelease: false
|
|
196
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
197
|
-
requirements:
|
|
198
|
-
- - "~>"
|
|
199
|
-
- !ruby/object:Gem::Version
|
|
200
|
-
version: '13.0'
|
|
201
|
-
- !ruby/object:Gem::Dependency
|
|
202
|
-
name: reek
|
|
203
|
-
requirement: !ruby/object:Gem::Requirement
|
|
204
|
-
requirements:
|
|
205
|
-
- - "~>"
|
|
206
|
-
- !ruby/object:Gem::Version
|
|
207
|
-
version: '6.0'
|
|
208
|
-
type: :development
|
|
209
|
-
prerelease: false
|
|
210
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
211
|
-
requirements:
|
|
212
|
-
- - "~>"
|
|
213
|
-
- !ruby/object:Gem::Version
|
|
214
|
-
version: '6.0'
|
|
215
|
-
- !ruby/object:Gem::Dependency
|
|
216
|
-
name: rspec
|
|
217
|
-
requirement: !ruby/object:Gem::Requirement
|
|
218
|
-
requirements:
|
|
219
|
-
- - "~>"
|
|
220
|
-
- !ruby/object:Gem::Version
|
|
221
|
-
version: '3.10'
|
|
222
|
-
type: :development
|
|
223
|
-
prerelease: false
|
|
224
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
225
|
-
requirements:
|
|
226
|
-
- - "~>"
|
|
227
|
-
- !ruby/object:Gem::Version
|
|
228
|
-
version: '3.10'
|
|
229
|
-
- !ruby/object:Gem::Dependency
|
|
230
|
-
name: rubocop-performance
|
|
231
|
-
requirement: !ruby/object:Gem::Requirement
|
|
232
|
-
requirements:
|
|
233
|
-
- - "~>"
|
|
234
|
-
- !ruby/object:Gem::Version
|
|
235
|
-
version: '1.8'
|
|
236
|
-
type: :development
|
|
237
|
-
prerelease: false
|
|
238
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
239
|
-
requirements:
|
|
240
|
-
- - "~>"
|
|
241
|
-
- !ruby/object:Gem::Version
|
|
242
|
-
version: '1.8'
|
|
243
|
-
- !ruby/object:Gem::Dependency
|
|
244
|
-
name: rubocop-rake
|
|
245
|
-
requirement: !ruby/object:Gem::Requirement
|
|
246
|
-
requirements:
|
|
247
|
-
- - "~>"
|
|
248
|
-
- !ruby/object:Gem::Version
|
|
249
|
-
version: '0.5'
|
|
250
|
-
type: :development
|
|
251
|
-
prerelease: false
|
|
252
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
253
|
-
requirements:
|
|
254
|
-
- - "~>"
|
|
255
|
-
- !ruby/object:Gem::Version
|
|
256
|
-
version: '0.5'
|
|
257
|
-
- !ruby/object:Gem::Dependency
|
|
258
|
-
name: rubocop-rspec
|
|
259
|
-
requirement: !ruby/object:Gem::Requirement
|
|
260
|
-
requirements:
|
|
261
|
-
- - "~>"
|
|
262
|
-
- !ruby/object:Gem::Version
|
|
263
|
-
version: '2.0'
|
|
264
|
-
type: :development
|
|
265
|
-
prerelease: false
|
|
266
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
267
|
-
requirements:
|
|
268
|
-
- - "~>"
|
|
269
|
-
- !ruby/object:Gem::Version
|
|
270
|
-
version: '2.0'
|
|
271
|
-
- !ruby/object:Gem::Dependency
|
|
272
|
-
name: simplecov
|
|
273
|
-
requirement: !ruby/object:Gem::Requirement
|
|
274
|
-
requirements:
|
|
275
|
-
- - "~>"
|
|
276
|
-
- !ruby/object:Gem::Version
|
|
277
|
-
version: '0.19'
|
|
278
|
-
type: :development
|
|
279
|
-
prerelease: false
|
|
280
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
281
|
-
requirements:
|
|
282
|
-
- - "~>"
|
|
283
|
-
- !ruby/object:Gem::Version
|
|
284
|
-
version: '0.19'
|
|
88
|
+
version: '7.0'
|
|
285
89
|
description:
|
|
286
90
|
email:
|
|
287
91
|
- brooke@alchemists.io
|
|
@@ -309,7 +113,9 @@ files:
|
|
|
309
113
|
- lib/rubysmith/builders/reek.rb
|
|
310
114
|
- lib/rubysmith/builders/rspec/context.rb
|
|
311
115
|
- lib/rubysmith/builders/rspec/helper.rb
|
|
312
|
-
- lib/rubysmith/builders/rubocop.rb
|
|
116
|
+
- lib/rubysmith/builders/rubocop/formatter.rb
|
|
117
|
+
- lib/rubysmith/builders/rubocop/setup.rb
|
|
118
|
+
- lib/rubysmith/builders/ruby_critic.rb
|
|
313
119
|
- lib/rubysmith/builders/setup.rb
|
|
314
120
|
- lib/rubysmith/cli/configuration.rb
|
|
315
121
|
- lib/rubysmith/cli/defaults.yml
|
|
@@ -327,6 +133,7 @@ files:
|
|
|
327
133
|
- lib/rubysmith/templates/%project_name%/.reek.yml.erb
|
|
328
134
|
- lib/rubysmith/templates/%project_name%/.rubocop.yml.erb
|
|
329
135
|
- lib/rubysmith/templates/%project_name%/.ruby-version.erb
|
|
136
|
+
- lib/rubysmith/templates/%project_name%/.rubycritic.yml.erb
|
|
330
137
|
- lib/rubysmith/templates/%project_name%/CHANGES.adoc.erb
|
|
331
138
|
- lib/rubysmith/templates/%project_name%/CHANGES.md.erb
|
|
332
139
|
- lib/rubysmith/templates/%project_name%/CODE_OF_CONDUCT.adoc.erb
|
|
@@ -366,14 +173,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
366
173
|
requirements:
|
|
367
174
|
- - "~>"
|
|
368
175
|
- !ruby/object:Gem::Version
|
|
369
|
-
version: '
|
|
176
|
+
version: '3.0'
|
|
370
177
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
371
178
|
requirements:
|
|
372
179
|
- - ">="
|
|
373
180
|
- !ruby/object:Gem::Version
|
|
374
181
|
version: '0'
|
|
375
182
|
requirements: []
|
|
376
|
-
rubygems_version: 3.
|
|
183
|
+
rubygems_version: 3.2.3
|
|
377
184
|
signing_key:
|
|
378
185
|
specification_version: 4
|
|
379
186
|
summary: A command line interface for smithing Ruby projects.
|
metadata.gz.sig
CHANGED
|
Binary file
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "rubocop"
|
|
4
|
-
require "refinements/ios"
|
|
5
|
-
|
|
6
|
-
module Rubysmith
|
|
7
|
-
module Builders
|
|
8
|
-
# Builds project skeleton Rubocop code quality support.
|
|
9
|
-
class Rubocop
|
|
10
|
-
using Refinements::IOs
|
|
11
|
-
|
|
12
|
-
def self.call realm, builder: Builder
|
|
13
|
-
new(realm, builder: builder).call
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def initialize realm, builder: Builder, runner: RuboCop::CLI.new
|
|
17
|
-
@realm = realm
|
|
18
|
-
@builder = builder
|
|
19
|
-
@runner = runner
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def call
|
|
23
|
-
return unless realm.build_rubocop
|
|
24
|
-
|
|
25
|
-
builder.call(realm.with(template_path: "%project_name%/bin/rubocop.erb"))
|
|
26
|
-
.render
|
|
27
|
-
.permit 0o755
|
|
28
|
-
|
|
29
|
-
builder.call(realm.with(template_path: "%project_name%/.rubocop.yml.erb")).render
|
|
30
|
-
auto_correct
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
private
|
|
34
|
-
|
|
35
|
-
attr_reader :realm, :builder, :runner
|
|
36
|
-
|
|
37
|
-
def auto_correct
|
|
38
|
-
STDOUT.squelch { runner.run ["--auto-correct", realm.project_root.to_s] }
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|