rubysmith 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|