rubysmith 0.11.0 → 0.12.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/README.adoc +11 -6
- data/lib/rubysmith/builder.rb +5 -2
- data/lib/rubysmith/builders/bundler.rb +2 -2
- data/lib/rubysmith/builders/console.rb +1 -1
- data/lib/rubysmith/builders/core.rb +4 -2
- data/lib/rubysmith/builders/documentation.rb +1 -1
- data/lib/rubysmith/builders/git/commit.rb +1 -1
- data/lib/rubysmith/builders/git/setup.rb +1 -1
- data/lib/rubysmith/builders/guard.rb +1 -1
- data/lib/rubysmith/builders/pragma.rb +1 -1
- data/lib/rubysmith/builders/rake.rb +3 -1
- data/lib/rubysmith/builders/reek.rb +1 -1
- data/lib/rubysmith/builders/rspec/context.rb +1 -1
- data/lib/rubysmith/builders/rspec/helper.rb +1 -1
- data/lib/rubysmith/builders/rubocop/formatter.rb +1 -1
- data/lib/rubysmith/builders/rubocop/setup.rb +1 -1
- data/lib/rubysmith/builders/setup.rb +1 -1
- data/lib/rubysmith/cli/configuration/content.rb +4 -1
- data/lib/rubysmith/cli/configuration/defaults.yml +2 -1
- data/lib/rubysmith/cli/parsers/build.rb +13 -8
- data/lib/rubysmith/cli/parsers/core.rb +1 -1
- data/lib/rubysmith/cli/processors/build.rb +0 -1
- data/lib/rubysmith/identity.rb +2 -2
- data/lib/rubysmith/renderers/erb.rb +1 -1
- data/lib/rubysmith/renderers/namespace.rb +2 -2
- data/lib/rubysmith/templates/%project_name%/Gemfile.erb +13 -11
- data/lib/rubysmith/templates/%project_name%/Rakefile.erb +1 -7
- data/lib/rubysmith/templates/%project_name%/bin/console.erb +1 -1
- data/lib/rubysmith/templates/%project_name%/lib/%project_path%.rb.erb +13 -0
- data/lib/rubysmith/templates/%project_name%/spec/spec_helper.rb.erb +1 -1
- data/lib/rubysmith.rb +9 -31
- data.tar.gz.sig +0 -0
- metadata +20 -8
- metadata.gz.sig +0 -0
- data/lib/rubysmith/builders/ruby_critic.rb +0 -25
- data/lib/rubysmith/templates/%project_name%/.rubycritic.yml.erb +0 -3
- data/lib/rubysmith/templates/%project_name%/lib/%project_name%.rb.erb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 628bf912ecce44ded950cf18f54d54a3a8ca13430ccc300f7db53062da718716
|
4
|
+
data.tar.gz: cbefec98da88d0e1b6198789805eeed82ea6b5238bee41ca9341c7d6114ed84c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b7bb2b58f60f60057c12e9f9358d720a10fe4825eefcefb8231d4998647c1d44523a550a05a2938b8d16536954ba2cb6f9fa3a4d5a484a0536f24420cb51991
|
7
|
+
data.tar.gz: 315a9e28cd8231629bb17fce77051f0fb42b86c25d1fb04245437333b20171c5b5dc40b1e3cbca33cce6c611761fea3ec31493a6dad2e34c56982a598e66785d
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -15,8 +15,11 @@ Rubysmith is a command line interface for smithing Ruby projects.
|
|
15
15
|
|
16
16
|
This gem is useful in situations in which you need something more sophisticated than a
|
17
17
|
link:https://bundler.io/guides/bundler_in_a_single_file_ruby_script.html[Bundler Inline] script but
|
18
|
-
less complicated than a
|
19
|
-
|
18
|
+
less complicated than a link:https://www.alchemists.io/projects/gemsmith[Gemsmith] gem. Rubysmith is
|
19
|
+
the foundation of Gemsmith and provides a lot of the same functionality as Gemsmith but solely
|
20
|
+
tailored for pure Ruby projects. Again, this is a great tool for spiking quick Ruby implementations,
|
21
|
+
sharing code snippets with others, or building full blown Ruby projects for collaboration with
|
22
|
+
others.
|
20
23
|
|
21
24
|
toc::[]
|
22
25
|
|
@@ -31,6 +34,7 @@ toc::[]
|
|
31
34
|
* Supports link:https://www.alchemists.io/projects/git-lint[Git Lint].
|
32
35
|
* Supports link:https://github.com/guard/guard[Guard].
|
33
36
|
* Supports link:http://pryrepl.org[Pry].
|
37
|
+
* Supports link:https://github.com/ruby/rake[Rake].
|
34
38
|
* Supports link:https://github.com/troessner/reek[Reek].
|
35
39
|
* Supports link:https://www.alchemists.io/projects/refinements[Refinements].
|
36
40
|
* Supports link:https://rspec.info[RSpec].
|
@@ -38,7 +42,6 @@ toc::[]
|
|
38
42
|
* Supports link:https://docs.rubocop.org/rubocop-performance[Rubocop Performance].
|
39
43
|
* Supports link:https://github.com/rubocop-hq/rubocop-rake[Rubocop Rake].
|
40
44
|
* Supports link:https://github.com/rubocop-hq/rubocop-rspec[Rubocop RSpec].
|
41
|
-
* Supports link:https://github.com/whitesmith/RubyCritic[RubyCritic].
|
42
45
|
* Supports link:https://github.com/simplecov-ruby/simplecov[SimpleCov].
|
43
46
|
* Supports common settings and a structured layout for building projects.
|
44
47
|
* Provides common documentation:
|
@@ -90,15 +93,16 @@ BUILD OPTIONS:
|
|
90
93
|
--[no-]git Add Git.
|
91
94
|
--[no-]git-lint Add Git Lint.
|
92
95
|
--[no-]guard Add Guard.
|
96
|
+
--min Use minimum/no options.
|
93
97
|
--[no-]pry Add Pry.
|
98
|
+
--[no-]rake Add Rake.
|
94
99
|
--[no-]reek Add Reek.
|
95
100
|
--[no-]refinements Add Refinements.
|
96
101
|
--[no-]rspec Add RSpec.
|
97
102
|
--[no-]rubocop Add Rubocop.
|
98
|
-
--[no-]ruby_critic Add RubyCritic.
|
99
103
|
--[no-]setup Add setup script.
|
100
104
|
--[no-]simple_cov Add SimpleCov.
|
101
|
-
--
|
105
|
+
--[no-]zeitwerk Add Zeitwerk.
|
102
106
|
....
|
103
107
|
|
104
108
|
=== Building
|
@@ -167,13 +171,14 @@ The default configuration is as follows:
|
|
167
171
|
:guard: true
|
168
172
|
:minimum: false
|
169
173
|
:pry: true
|
174
|
+
:rake: true
|
170
175
|
:reek: true
|
171
176
|
:refinements: true
|
172
177
|
:rspec: true
|
173
178
|
:rubocop: true
|
174
|
-
:ruby_critic: true
|
175
179
|
:setup: true
|
176
180
|
:simple_cov: true
|
181
|
+
:zeitwerk: true
|
177
182
|
:builders:
|
178
183
|
:pragmater:
|
179
184
|
:comments:
|
data/lib/rubysmith/builder.rb
CHANGED
@@ -19,7 +19,7 @@ module Rubysmith
|
|
19
19
|
logger: LOGGER
|
20
20
|
}.freeze
|
21
21
|
|
22
|
-
def self.call(
|
22
|
+
def self.call(...) = new(...)
|
23
23
|
|
24
24
|
def initialize configuration, helpers: HELPERS
|
25
25
|
@configuration = configuration
|
@@ -119,7 +119,10 @@ module Rubysmith
|
|
119
119
|
def relative_build_path = build_path.relative_path_from(configuration.build_root)
|
120
120
|
|
121
121
|
def build_path
|
122
|
-
pathway.end_path
|
122
|
+
pathway.end_path
|
123
|
+
.gsub("%project_name%", configuration.project_name)
|
124
|
+
.sub("%project_path%", configuration.project_path)
|
125
|
+
.sub ".erb", ""
|
123
126
|
end
|
124
127
|
|
125
128
|
def pathway = configuration.to_pathway
|
@@ -10,7 +10,7 @@ module Rubysmith
|
|
10
10
|
class Bundler
|
11
11
|
using Refinements::Pathnames
|
12
12
|
|
13
|
-
def self.call(
|
13
|
+
def self.call(...) = new(...).call
|
14
14
|
|
15
15
|
def initialize configuration, builder: Builder, client: ::Bundler::CLI
|
16
16
|
@configuration = configuration
|
@@ -23,7 +23,7 @@ module Rubysmith
|
|
23
23
|
.render
|
24
24
|
.replace(/\n\s+group/, "\n\ngroup")
|
25
25
|
.replace(/\n\s+gem/, "\n gem")
|
26
|
-
.replace(/ (?=.+refinements)/, "")
|
26
|
+
.replace(/ (?=.+(refinements|zeitwerk))/, "")
|
27
27
|
.replace(/(\n+|\s+)end/, "\nend")
|
28
28
|
.replace(/\n\ngroup :(code_quality|test|tools) do\nend/, "")
|
29
29
|
.replace(/org"\n+/, "org\"\n\n")
|
@@ -4,7 +4,7 @@ module Rubysmith
|
|
4
4
|
module Builders
|
5
5
|
# Builds project skeleton console for object inspection and exploration.
|
6
6
|
class Console
|
7
|
-
def self.call(
|
7
|
+
def self.call(...) = new(...).call
|
8
8
|
|
9
9
|
def initialize configuration, builder: Builder
|
10
10
|
@configuration = configuration
|
@@ -4,7 +4,7 @@ module Rubysmith
|
|
4
4
|
module Builders
|
5
5
|
# Builds project skeleton core structure and minimum file support.
|
6
6
|
class Core
|
7
|
-
def self.call(
|
7
|
+
def self.call(...) = new(...).call
|
8
8
|
|
9
9
|
def initialize configuration, builder: Builder
|
10
10
|
@configuration = configuration
|
@@ -12,8 +12,10 @@ module Rubysmith
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def call
|
15
|
-
builder.call(configuration.with(template_path: "%project_name%/lib/%
|
15
|
+
builder.call(configuration.with(template_path: "%project_name%/lib/%project_path%.rb.erb"))
|
16
16
|
.render
|
17
|
+
.replace(/ (?!(module|end))/, "")
|
18
|
+
|
17
19
|
builder.call(configuration.with(template_path: "%project_name%/.ruby-version.erb")).render
|
18
20
|
nil
|
19
21
|
end
|
@@ -4,7 +4,7 @@ module Rubysmith
|
|
4
4
|
module Builders
|
5
5
|
# Builds project skeleton documentation.
|
6
6
|
class Documentation
|
7
|
-
def self.call(
|
7
|
+
def self.call(...) = new(...).call
|
8
8
|
|
9
9
|
def initialize configuration, builder: Builder
|
10
10
|
@configuration = configuration
|
@@ -5,7 +5,7 @@ module Rubysmith
|
|
5
5
|
module Git
|
6
6
|
# Builds project skeleton initial Git commit message.
|
7
7
|
class Commit
|
8
|
-
def self.call(
|
8
|
+
def self.call(...) = new(...).call
|
9
9
|
|
10
10
|
def initialize configuration, builder: Builder
|
11
11
|
@configuration = configuration
|
@@ -5,7 +5,7 @@ module Rubysmith
|
|
5
5
|
module Git
|
6
6
|
# Initializes project skeleton as a Git repository.
|
7
7
|
class Setup
|
8
|
-
def self.call(
|
8
|
+
def self.call(...) = new(...).call
|
9
9
|
|
10
10
|
def initialize configuration, builder: Builder
|
11
11
|
@configuration = configuration
|
@@ -4,7 +4,7 @@ module Rubysmith
|
|
4
4
|
module Builders
|
5
5
|
# Builds project skeleton Guard support for a red, green, refactor loop.
|
6
6
|
class Guard
|
7
|
-
def self.call(
|
7
|
+
def self.call(...) = new(...).call
|
8
8
|
|
9
9
|
def initialize configuration, builder: Builder
|
10
10
|
@configuration = configuration
|
@@ -6,7 +6,7 @@ module Rubysmith
|
|
6
6
|
module Builders
|
7
7
|
# Builds project skeleton pragmas so all Ruby strings are frozen by default.
|
8
8
|
class Pragma
|
9
|
-
def self.call(
|
9
|
+
def self.call(...) = new(...).call
|
10
10
|
|
11
11
|
def initialize configuration, client: Pragmater::Runner
|
12
12
|
@configuration = configuration
|
@@ -4,7 +4,7 @@ module Rubysmith
|
|
4
4
|
module Builders
|
5
5
|
# Builds project skeleton Rake support.
|
6
6
|
class Rake
|
7
|
-
def self.call(
|
7
|
+
def self.call(...) = new(...).call
|
8
8
|
|
9
9
|
def initialize configuration, builder: Builder
|
10
10
|
@configuration = configuration
|
@@ -12,6 +12,8 @@ module Rubysmith
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def call
|
15
|
+
return unless configuration.build_rake
|
16
|
+
|
15
17
|
builder.call(configuration.with(template_path: "%project_name%/Rakefile.erb"))
|
16
18
|
.render
|
17
19
|
.replace(/\[\s+/, "[")
|
@@ -4,7 +4,7 @@ module Rubysmith
|
|
4
4
|
module Builders
|
5
5
|
# Builds project skeleton Reek code quality support.
|
6
6
|
class Reek
|
7
|
-
def self.call(
|
7
|
+
def self.call(...) = new(...).call
|
8
8
|
|
9
9
|
def initialize configuration, builder: Builder
|
10
10
|
@configuration = configuration
|
@@ -5,7 +5,7 @@ module Rubysmith
|
|
5
5
|
module RSpec
|
6
6
|
# Builds RSpec shared context for temporary directories.
|
7
7
|
class Context
|
8
|
-
def self.call(
|
8
|
+
def self.call(...) = new(...).call
|
9
9
|
|
10
10
|
def initialize configuration, builder: Builder
|
11
11
|
@configuration = configuration
|
@@ -5,7 +5,7 @@ module Rubysmith
|
|
5
5
|
module RSpec
|
6
6
|
# Builds RSpec spec helper for project skeleton.
|
7
7
|
class Helper
|
8
|
-
def self.call(
|
8
|
+
def self.call(...) = new(...).call
|
9
9
|
|
10
10
|
def initialize configuration, builder: Builder
|
11
11
|
@configuration = configuration
|
@@ -5,7 +5,7 @@ module Rubysmith
|
|
5
5
|
module Rubocop
|
6
6
|
# Builds project skeleton for Rubocop code quality support.
|
7
7
|
class Setup
|
8
|
-
def self.call(
|
8
|
+
def self.call(...) = new(...).call
|
9
9
|
|
10
10
|
def initialize configuration, builder: Builder
|
11
11
|
@configuration = configuration
|
@@ -4,7 +4,7 @@ module Rubysmith
|
|
4
4
|
module Builders
|
5
5
|
# Builds project skeleton setup script.
|
6
6
|
class Setup
|
7
|
-
def self.call(
|
7
|
+
def self.call(...) = new(...).call
|
8
8
|
|
9
9
|
def initialize configuration, builder: Builder
|
10
10
|
@configuration = configuration
|
@@ -28,13 +28,14 @@ module Rubysmith
|
|
28
28
|
:build_git_lint,
|
29
29
|
:build_guard,
|
30
30
|
:build_pry,
|
31
|
+
:build_rake,
|
31
32
|
:build_reek,
|
32
33
|
:build_refinements,
|
33
34
|
:build_rspec,
|
34
35
|
:build_rubocop,
|
35
|
-
:build_ruby_critic,
|
36
36
|
:build_setup,
|
37
37
|
:build_simple_cov,
|
38
|
+
:build_zeitwerk,
|
38
39
|
:builders_pragmater_comments,
|
39
40
|
:builders_pragmater_includes,
|
40
41
|
:version,
|
@@ -59,6 +60,8 @@ module Rubysmith
|
|
59
60
|
|
60
61
|
def project_root = build_root.join(project_name)
|
61
62
|
|
63
|
+
def project_path = project_name.snakecase
|
64
|
+
|
62
65
|
def to_pathway
|
63
66
|
Pathway[start_root: template_root, start_path: template_path, end_root: build_root]
|
64
67
|
end
|
@@ -17,13 +17,14 @@
|
|
17
17
|
:guard: true
|
18
18
|
:minimum: false
|
19
19
|
:pry: true
|
20
|
+
:rake: true
|
20
21
|
:reek: true
|
21
22
|
:refinements: true
|
22
23
|
:rspec: true
|
23
24
|
:rubocop: true
|
24
|
-
:ruby_critic: true
|
25
25
|
:setup: true
|
26
26
|
:simple_cov: true
|
27
|
+
:zeitwerk: true
|
27
28
|
:builders:
|
28
29
|
:pragmater:
|
29
30
|
:comments:
|
@@ -4,9 +4,8 @@ module Rubysmith
|
|
4
4
|
module CLI
|
5
5
|
module Parsers
|
6
6
|
# Handles parsing of Command Line Interface (CLI) build options.
|
7
|
-
# :reek:TooManyMethods
|
8
7
|
class Build
|
9
|
-
def self.call(
|
8
|
+
def self.call(...) = new(...).call
|
10
9
|
|
11
10
|
def initialize options: {}, client: CLIENT
|
12
11
|
@options = options
|
@@ -77,6 +76,12 @@ module Rubysmith
|
|
77
76
|
end
|
78
77
|
end
|
79
78
|
|
79
|
+
def add_rake
|
80
|
+
client.on "--[no-]rake", "Add Rake." do |value|
|
81
|
+
options[:build_rake] = value
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
80
85
|
def add_reek
|
81
86
|
client.on "--[no-]reek", "Add Reek." do |value|
|
82
87
|
options[:build_reek] = value
|
@@ -101,12 +106,6 @@ module Rubysmith
|
|
101
106
|
end
|
102
107
|
end
|
103
108
|
|
104
|
-
def add_ruby_critic
|
105
|
-
client.on "--[no-]ruby_critic", "Add RubyCritic." do |value|
|
106
|
-
options[:build_ruby_critic] = value
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
109
|
def add_setup
|
111
110
|
client.on "--[no-]setup", "Add setup script." do |value|
|
112
111
|
options[:build_setup] = value
|
@@ -118,6 +117,12 @@ module Rubysmith
|
|
118
117
|
options[:build_simple_cov] = value
|
119
118
|
end
|
120
119
|
end
|
120
|
+
|
121
|
+
def add_zeitwerk
|
122
|
+
client.on "--[no-]zeitwerk", "Add Zeitwerk." do |value|
|
123
|
+
options[:build_zeitwerk] = value
|
124
|
+
end
|
125
|
+
end
|
121
126
|
end
|
122
127
|
end
|
123
128
|
end
|
@@ -7,7 +7,7 @@ module Rubysmith
|
|
7
7
|
module Parsers
|
8
8
|
# Handles parsing of Command Line Interface (CLI) core options.
|
9
9
|
class Core
|
10
|
-
def self.call(
|
10
|
+
def self.call(...) = new(...).call
|
11
11
|
|
12
12
|
def initialize options: {}, client: CLIENT
|
13
13
|
@options = options
|
data/lib/rubysmith/identity.rb
CHANGED
@@ -4,8 +4,8 @@ module Rubysmith
|
|
4
4
|
module Identity
|
5
5
|
NAME = "rubysmith"
|
6
6
|
LABEL = "Rubysmith"
|
7
|
-
VERSION = "0.
|
8
|
-
VERSION_LABEL = "#{LABEL} #{VERSION}"
|
7
|
+
VERSION = "0.12.0"
|
8
|
+
VERSION_LABEL = "#{LABEL} #{VERSION}".freeze
|
9
9
|
SUMMARY = "A command line interface for smithing Ruby projects."
|
10
10
|
end
|
11
11
|
end
|
@@ -14,7 +14,7 @@ module Rubysmith
|
|
14
14
|
@depth = namespace.scan("::").length
|
15
15
|
end
|
16
16
|
|
17
|
-
def call(content) = "#{prefix}#{body content}#{suffix
|
17
|
+
def call(content = nil) = "#{prefix}#{body content}#{suffix}"
|
18
18
|
|
19
19
|
private
|
20
20
|
|
@@ -28,7 +28,7 @@ module Rubysmith
|
|
28
28
|
|
29
29
|
# :reek:FeatureEnvy
|
30
30
|
def body content
|
31
|
-
content.lstrip.split("\n").reduce "" do |snippet, line|
|
31
|
+
String(content).lstrip.split("\n").reduce "" do |snippet, line|
|
32
32
|
next "#{snippet}\n" if line.blank?
|
33
33
|
|
34
34
|
"#{snippet}#{line.gsub(/^\s{2}/, "").indent depth + 1}\n"
|
@@ -6,6 +6,9 @@ source "https://rubygems.org"
|
|
6
6
|
<% if configuration.build_refinements %>
|
7
7
|
gem "refinements", "~> 8.0"
|
8
8
|
<% end %>
|
9
|
+
<% if configuration.build_zeitwerk %>
|
10
|
+
gem "zeitwerk", "~> 2.4"
|
11
|
+
<% end %>
|
9
12
|
|
10
13
|
group :code_quality do
|
11
14
|
<% if configuration.build_bundler_leak %>
|
@@ -18,24 +21,23 @@ source "https://rubygems.org"
|
|
18
21
|
gem "reek", "~> 6.0"
|
19
22
|
<% end %>
|
20
23
|
<% if configuration.build_rubocop %>
|
21
|
-
gem "rubocop", "~> 1.
|
22
|
-
gem "rubocop-performance", "~> 1.
|
23
|
-
gem "rubocop-rake", "~> 0.
|
24
|
+
gem "rubocop", "~> 1.20"
|
25
|
+
gem "rubocop-performance", "~> 1.11"
|
26
|
+
gem "rubocop-rake", "~> 0.6"
|
24
27
|
<% end %>
|
25
28
|
<% if configuration.build_rspec && configuration.build_rubocop %>
|
26
|
-
gem "rubocop-rspec", "~> 2.
|
27
|
-
<% end %>
|
28
|
-
<% if configuration.build_ruby_critic %>
|
29
|
-
gem "rubycritic", "~> 4.5", require: false
|
29
|
+
gem "rubocop-rspec", "~> 2.4"
|
30
30
|
<% end %>
|
31
31
|
<% if configuration.build_simple_cov %>
|
32
32
|
gem "simplecov", "~> 0.20"
|
33
33
|
<% end %>
|
34
34
|
end
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
<% if configuration.build_rake %>
|
37
|
+
group :development do
|
38
|
+
gem "rake", "~> 13.0"
|
39
|
+
end
|
40
|
+
<% end %>
|
39
41
|
|
40
42
|
group :test do
|
41
43
|
<% if configuration.build_guard %>
|
@@ -48,7 +50,7 @@ source "https://rubygems.org"
|
|
48
50
|
|
49
51
|
group :tools do
|
50
52
|
<% if configuration.build_amazing_print %>
|
51
|
-
gem "amazing_print", "~> 1.
|
53
|
+
gem "amazing_print", "~> 1.3"
|
52
54
|
<% end %>
|
53
55
|
<% if configuration.build_pry %>
|
54
56
|
gem "pry", "~> 0.13"
|
@@ -15,9 +15,6 @@ require "bundler/setup"
|
|
15
15
|
<% if configuration.build_rubocop %>
|
16
16
|
require "rubocop/rake_task"
|
17
17
|
<% end %>
|
18
|
-
<% if configuration.build_ruby_critic %>
|
19
|
-
require "rubycritic/rake_task"
|
20
|
-
<% end %>
|
21
18
|
|
22
19
|
<% if configuration.build_bundler_leak %>
|
23
20
|
Bundler::Plumber::Task.new
|
@@ -31,11 +28,8 @@ require "bundler/setup"
|
|
31
28
|
<% if configuration.build_rubocop %>
|
32
29
|
RuboCop::RakeTask.new
|
33
30
|
<% end %>
|
34
|
-
<% if configuration.build_ruby_critic %>
|
35
|
-
RubyCritic::RakeTask.new
|
36
|
-
<% end %>
|
37
31
|
|
38
32
|
desc "Run code quality checks"
|
39
|
-
task code_quality: %i[<% if configuration.build_bundler_leak %>bundle:leak<% end %> <% if configuration.build_git && configuration.build_git_lint %>git_lint<% end %> <% if configuration.build_reek %>reek<% end %> <% if configuration.build_rubocop %>rubocop<% end %>
|
33
|
+
task code_quality: %i[<% if configuration.build_bundler_leak %>bundle:leak<% end %> <% if configuration.build_git && configuration.build_git_lint %>git_lint<% end %> <% if configuration.build_reek %>reek<% end %> <% if configuration.build_rubocop %>rubocop<% end %>]
|
40
34
|
|
41
35
|
task default: %i[code_quality <% if configuration.build_rspec %>spec<% end %>]
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<% if configuration.build_zeitwerk %>
|
2
|
+
require "zeitwerk"
|
3
|
+
<% if configuration.project_path.include? "/" %>
|
4
|
+
loader = Zeitwerk::Loader.new
|
5
|
+
loader.push_dir "#{__dir__}/.."
|
6
|
+
loader.setup
|
7
|
+
<% else %>
|
8
|
+
loader = Zeitwerk::Loader.for_gem
|
9
|
+
loader.setup
|
10
|
+
<% end %>
|
11
|
+
<% end %>
|
12
|
+
# Main namespace.
|
13
|
+
<% namespace %>
|
data/lib/rubysmith.rb
CHANGED
@@ -1,33 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
require "rubysmith/builders/git/commit"
|
13
|
-
require "rubysmith/builders/bundler"
|
14
|
-
require "rubysmith/builders/rake"
|
15
|
-
require "rubysmith/builders/console"
|
16
|
-
require "rubysmith/builders/setup"
|
17
|
-
require "rubysmith/builders/guard"
|
18
|
-
require "rubysmith/builders/reek"
|
19
|
-
require "rubysmith/builders/rspec/context"
|
20
|
-
require "rubysmith/builders/rspec/helper"
|
21
|
-
require "rubysmith/builders/pragma"
|
22
|
-
require "rubysmith/builders/rubocop/setup"
|
23
|
-
require "rubysmith/builders/rubocop/formatter"
|
24
|
-
require "rubysmith/builders/ruby_critic"
|
25
|
-
require "rubysmith/cli/configuration/content"
|
26
|
-
require "rubysmith/cli/configuration/loader"
|
27
|
-
require "rubysmith/cli/parsers"
|
28
|
-
require "rubysmith/cli/parsers/core"
|
29
|
-
require "rubysmith/cli/parsers/build"
|
30
|
-
require "rubysmith/cli/parsers/assembler"
|
31
|
-
require "rubysmith/cli/processors/config"
|
32
|
-
require "rubysmith/cli/processors/build"
|
33
|
-
require "rubysmith/cli/shell"
|
3
|
+
require "zeitwerk"
|
4
|
+
|
5
|
+
loader = Zeitwerk::Loader.for_gem
|
6
|
+
loader.inflector.inflect "cli" => "CLI", "erb" => "ERB", "rspec" => "RSpec"
|
7
|
+
loader.setup
|
8
|
+
|
9
|
+
# Main namespace.
|
10
|
+
module Rubysmith
|
11
|
+
end
|
data.tar.gz.sig
CHANGED
Binary file
|
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.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -28,7 +28,7 @@ cert_chain:
|
|
28
28
|
lkHilIrX69jq8wMPpBhlaw2mRmeSL50Wv5u6xVBvOHhXFSP1crXM95vfLhLyRYod
|
29
29
|
W2A=
|
30
30
|
-----END CERTIFICATE-----
|
31
|
-
date: 2021-
|
31
|
+
date: 2021-09-06 00:00:00.000000000 Z
|
32
32
|
dependencies:
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: pragmater
|
@@ -64,14 +64,14 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '1.
|
67
|
+
version: '1.20'
|
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.20'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: runcom
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,6 +86,20 @@ dependencies:
|
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '7.0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: zeitwerk
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '2.4'
|
96
|
+
type: :runtime
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '2.4'
|
89
103
|
description:
|
90
104
|
email:
|
91
105
|
- brooke@alchemists.io
|
@@ -115,7 +129,6 @@ files:
|
|
115
129
|
- lib/rubysmith/builders/rspec/helper.rb
|
116
130
|
- lib/rubysmith/builders/rubocop/formatter.rb
|
117
131
|
- lib/rubysmith/builders/rubocop/setup.rb
|
118
|
-
- lib/rubysmith/builders/ruby_critic.rb
|
119
132
|
- lib/rubysmith/builders/setup.rb
|
120
133
|
- lib/rubysmith/cli/configuration/content.rb
|
121
134
|
- lib/rubysmith/cli/configuration/defaults.yml
|
@@ -134,7 +147,6 @@ files:
|
|
134
147
|
- lib/rubysmith/templates/%project_name%/.reek.yml.erb
|
135
148
|
- lib/rubysmith/templates/%project_name%/.rubocop.yml.erb
|
136
149
|
- lib/rubysmith/templates/%project_name%/.ruby-version.erb
|
137
|
-
- lib/rubysmith/templates/%project_name%/.rubycritic.yml.erb
|
138
150
|
- lib/rubysmith/templates/%project_name%/CHANGES.adoc.erb
|
139
151
|
- lib/rubysmith/templates/%project_name%/CHANGES.md.erb
|
140
152
|
- lib/rubysmith/templates/%project_name%/CODE_OF_CONDUCT.adoc.erb
|
@@ -154,7 +166,7 @@ files:
|
|
154
166
|
- lib/rubysmith/templates/%project_name%/bin/guard.erb
|
155
167
|
- lib/rubysmith/templates/%project_name%/bin/rubocop.erb
|
156
168
|
- lib/rubysmith/templates/%project_name%/bin/setup.erb
|
157
|
-
- lib/rubysmith/templates/%project_name%/lib/%
|
169
|
+
- lib/rubysmith/templates/%project_name%/lib/%project_path%.rb.erb
|
158
170
|
- lib/rubysmith/templates/%project_name%/spec/spec_helper.rb.erb
|
159
171
|
- lib/rubysmith/templates/%project_name%/spec/support/shared_contexts/temp_dir.rb.erb
|
160
172
|
- lib/rubysmith/text/inserter.rb
|
@@ -181,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
193
|
- !ruby/object:Gem::Version
|
182
194
|
version: '0'
|
183
195
|
requirements: []
|
184
|
-
rubygems_version: 3.2.
|
196
|
+
rubygems_version: 3.2.27
|
185
197
|
signing_key:
|
186
198
|
specification_version: 4
|
187
199
|
summary: A command line interface for smithing Ruby projects.
|
metadata.gz.sig
CHANGED
Binary file
|
@@ -1,25 +0,0 @@
|
|
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(configuration, builder: Builder) = new(configuration, builder: builder).call
|
8
|
-
|
9
|
-
def initialize configuration, builder: Builder
|
10
|
-
@configuration = configuration
|
11
|
-
@builder = builder
|
12
|
-
end
|
13
|
-
|
14
|
-
def call
|
15
|
-
return unless configuration.build_ruby_critic
|
16
|
-
|
17
|
-
builder.call(configuration.with(template_path: "%project_name%/.rubycritic.yml.erb")).render
|
18
|
-
end
|
19
|
-
|
20
|
-
private
|
21
|
-
|
22
|
-
attr_reader :configuration, :builder
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|