rubysmith 2.0.2 → 3.1.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 +30 -22
- data/lib/rubysmith/builder.rb +5 -5
- data/lib/rubysmith/builders/git_hub.rb +9 -0
- data/lib/rubysmith/cli/actions/config.rb +5 -7
- data/lib/rubysmith/cli/actions/container.rb +22 -0
- data/lib/rubysmith/cli/actions/import.rb +11 -0
- data/lib/rubysmith/cli/actions/publish.rb +2 -3
- data/lib/rubysmith/cli/parser.rb +8 -5
- data/lib/rubysmith/cli/parsers/build.rb +13 -13
- data/lib/rubysmith/cli/parsers/core.rb +5 -5
- data/lib/rubysmith/cli/shell.rb +8 -25
- data/lib/rubysmith/configuration/content.rb +4 -2
- data/lib/rubysmith/configuration/defaults.yml +3 -3
- data/lib/rubysmith/container.rb +3 -23
- data/lib/rubysmith/extensions/milestoner.rb +0 -1
- data/lib/rubysmith/import.rb +7 -0
- data/lib/rubysmith/templates/%project_name%/.github/FUNDING.yml.erb +1 -0
- data/lib/rubysmith/templates/%project_name%/Gemfile.erb +3 -6
- data/lib/rubysmith/templates/%project_name%/spec/spec_helper.rb.erb +1 -1
- data/rubysmith.gemspec +9 -6
- data.tar.gz.sig +0 -0
- metadata +56 -23
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76c37515f88d8baea764f0781f857dc37edf3fe5ae607957d04cc43bdabf5fa2
|
4
|
+
data.tar.gz: a102d5287ac1ea8eeba349a7b9d394fb9b59e6ac844730881d4b5c40468204ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 615396e6c2681e163103be22bc6e4ef5e2393786016ae5746b7323ff67e268e6d9b84c913a08f753c14c94930c1f6d277a33a78ad0357aa2ae5031ed36bf85e4
|
7
|
+
data.tar.gz: 072c81c1253073b146900a243318c3e184d6b0722af9ac2082766e4ecc8c485caef660f39fda596e5faff33c64efcfe60dd243f7c2a6d297ea0ad28c87c7b784
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
:gemsmith_link: link:https://www.alchemists.io/projects/gemsmith[Gemsmith]
|
2
|
+
|
1
3
|
:toc: macro
|
2
4
|
:toclevels: 5
|
3
5
|
:figure-caption!:
|
@@ -8,10 +10,10 @@ Rubysmith is a command line interface for smithing Ruby projects.
|
|
8
10
|
|
9
11
|
This gem is useful in situations in which you need something more sophisticated than a
|
10
12
|
link:https://bundler.io/guides/bundler_in_a_single_file_ruby_script.html[Bundler Inline] script but
|
11
|
-
less than a
|
12
|
-
|
13
|
-
for
|
14
|
-
|
13
|
+
less than a {gemsmith_link} gem. Rubysmith is the foundation of Gemsmith and provides much of the
|
14
|
+
same functionality as Gemsmith but is solely tailored for pure Ruby projects. Again, this is a great
|
15
|
+
tool for spiking quick Ruby implementations, sharing code snippets with others, or building full
|
16
|
+
blown Ruby projects for collaboration with others.
|
15
17
|
|
16
18
|
toc::[]
|
17
19
|
|
@@ -26,7 +28,6 @@ toc::[]
|
|
26
28
|
* Supports link:https://circleci.com[Circle CI].
|
27
29
|
* Supports link:https://orcid.org[Citations (ORCID)].
|
28
30
|
* Supports console script for local development.
|
29
|
-
* Supports link:https://rubygems.org/gems/dead_end[DeadEnd].
|
30
31
|
* Supports link:https://github.com/ruby/debug[Debug].
|
31
32
|
* Supports link:https://git-scm.com[Git].
|
32
33
|
* Supports link:https://github.com[GitHub].
|
@@ -98,8 +99,8 @@ BUILD OPTIONS:
|
|
98
99
|
--[no-]conduct Add code of conduct documentation. Default: true.
|
99
100
|
--[no-]console Add console script. Default: true.
|
100
101
|
--[no-]contributions Add contributions documentation. Default: true.
|
101
|
-
--[no-]dead_end Add Dead End gem. Default: true.
|
102
102
|
--[no-]debug Add Debug gem. Default: true.
|
103
|
+
--[no-]funding Add GitHub funding configuration. Default: false.
|
103
104
|
--[no-]git Add Git. Default: true.
|
104
105
|
--[no-]git_hub Add GitHub templates. Default: false.
|
105
106
|
--[no-]git-lint Add Git Lint gem. Default: true.
|
@@ -224,18 +225,18 @@ loaded.
|
|
224
225
|
The `--contributions` option allows you to link to contributing documentation so people know to
|
225
226
|
contribute back to your work.
|
226
227
|
|
227
|
-
==== DeadEnd
|
228
|
-
|
229
|
-
The `--dead_end` option allows you build your project with the
|
230
|
-
link:https://github.com/zombocom/dead_end[Dead End] gem for debugging purposes since Dead End will
|
231
|
-
show you where you are missing closing `end` statements.
|
232
|
-
|
233
228
|
==== Debug
|
234
229
|
|
235
230
|
The `--debug` option allows you add the link:https://github.com/ruby/debug[Debug] gem to your
|
236
231
|
project for debugging your code by setting breakpoints, remotely connecting to running code, and
|
237
232
|
much more.
|
238
233
|
|
234
|
+
==== Funding
|
235
|
+
|
236
|
+
The `--funding` option allows you add a link:https://github.com[GitHub] funding configuration to
|
237
|
+
your project so you can attract link:https://docs.github.com/en/sponsors[sponsors]. This option
|
238
|
+
doesn't require use of the `--git_hub` option but is encouraged.
|
239
|
+
|
239
240
|
==== Git
|
240
241
|
|
241
242
|
The `--git` option allows you add link:https://git-scm.com[Git] repository support.
|
@@ -364,12 +365,13 @@ variables. The default configuration is as follows:
|
|
364
365
|
:caliber: true
|
365
366
|
:circle_ci: false
|
366
367
|
:citation: true
|
368
|
+
:cli: false
|
367
369
|
:community: false
|
368
370
|
:conduct: true
|
369
371
|
:console: true
|
370
372
|
:contributions: true
|
371
|
-
:dead_end: true
|
372
373
|
:debug: true
|
374
|
+
:funding: false
|
373
375
|
:git: true
|
374
376
|
:git_hub: false
|
375
377
|
:git_lint: true
|
@@ -397,14 +399,13 @@ variables. The default configuration is as follows:
|
|
397
399
|
:extensions:
|
398
400
|
:milestoner:
|
399
401
|
:documentation:
|
400
|
-
:format: "
|
402
|
+
:format: "adoc"
|
401
403
|
:prefixes:
|
402
404
|
- Fixed
|
403
405
|
- Added
|
404
406
|
- Updated
|
405
407
|
- Removed
|
406
408
|
- Refactored
|
407
|
-
:sign: false
|
408
409
|
:pragmater:
|
409
410
|
:comments:
|
410
411
|
- "# frozen_string_literal: true"
|
@@ -429,13 +430,14 @@ variables. The default configuration is as follows:
|
|
429
430
|
:license:
|
430
431
|
:label: Hippocratic
|
431
432
|
:name: hippocratic
|
432
|
-
:version:
|
433
|
+
:version: 2.1
|
433
434
|
:project:
|
434
435
|
:url:
|
435
436
|
:community:
|
436
437
|
:conduct:
|
437
438
|
:contributions:
|
438
439
|
:download:
|
440
|
+
:funding:
|
439
441
|
:home:
|
440
442
|
:issues:
|
441
443
|
:license:
|
@@ -471,8 +473,11 @@ custom values as desired. The URL is the only value that can't be automatically
|
|
471
473
|
==== Build
|
472
474
|
|
473
475
|
All build options accept booleans values only and can be customized as desired. When changing your
|
474
|
-
build options, they will dynamically render when
|
475
|
-
these options
|
476
|
+
build options, they will dynamically render when displaying usage (i.e. `rubysmith --help`). All of
|
477
|
+
these options have been explained in greater detail in the _Usage_ section.
|
478
|
+
|
479
|
+
ℹ️ The `cli` option is provided to support the {gemsmith_link} gem but is not, currently, used by
|
480
|
+
this project.
|
476
481
|
|
477
482
|
==== Citations
|
478
483
|
|
@@ -503,7 +508,7 @@ Follow the above links to learn more about each extension's gem configuration.
|
|
503
508
|
==== GitHub
|
504
509
|
|
505
510
|
Your GitHub user is the handle you setup when creating your GitHub account. This information is used
|
506
|
-
for template and/or URL construction purposes.
|
511
|
+
for template, funding, and/or URL construction purposes.
|
507
512
|
|
508
513
|
==== License
|
509
514
|
|
@@ -517,8 +522,11 @@ license are available:
|
|
517
522
|
==== Project
|
518
523
|
|
519
524
|
There are two sub-categories within this section: URLs and version. The URLs allow you to link to
|
520
|
-
specific documentation related to your project. You'll
|
521
|
-
|
525
|
+
specific documentation related to your project. You'll want to customize these URLs since they are
|
526
|
+
used for documentation, citations, and general project information. Some of the URLs are also used
|
527
|
+
by the {gemsmith_link} gem.
|
528
|
+
|
529
|
+
You
|
522
530
|
can also use `%project_name%` as a placeholder anywhere in your URL and Rubysmith will ensure your
|
523
531
|
place holder is replaced with your project name when generating a new project. Example:
|
524
532
|
|
@@ -579,5 +587,5 @@ bundle exec rake
|
|
579
587
|
|
580
588
|
== Credits
|
581
589
|
|
582
|
-
* Built with
|
590
|
+
* Built with {gemsmith_link}.
|
583
591
|
* Engineered by link:https://www.alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].
|
data/lib/rubysmith/builder.rb
CHANGED
@@ -7,16 +7,18 @@ require "logger"
|
|
7
7
|
module Rubysmith
|
8
8
|
# Provides common functionality necessary for all builders.
|
9
9
|
class Builder
|
10
|
+
include Import[:logger]
|
11
|
+
|
10
12
|
using Refinements::Pathnames
|
11
13
|
|
12
14
|
HELPERS = {inserter: Text::Inserter, renderer: Renderers::ERB, kernel: Open3}.freeze
|
13
15
|
|
14
16
|
def self.call(...) = new(...)
|
15
17
|
|
16
|
-
def initialize configuration, helpers: HELPERS,
|
18
|
+
def initialize configuration, helpers: HELPERS, **dependencies
|
19
|
+
super(**dependencies)
|
17
20
|
@configuration = configuration
|
18
21
|
@helpers = helpers
|
19
|
-
@container = container
|
20
22
|
end
|
21
23
|
|
22
24
|
def append content
|
@@ -93,7 +95,7 @@ module Rubysmith
|
|
93
95
|
|
94
96
|
private
|
95
97
|
|
96
|
-
attr_reader :configuration, :helpers
|
98
|
+
attr_reader :configuration, :helpers
|
97
99
|
|
98
100
|
def execute *command
|
99
101
|
kernel.capture2e(*command).then do |result, status|
|
@@ -107,8 +109,6 @@ module Rubysmith
|
|
107
109
|
|
108
110
|
def kernel = helpers.fetch(__method__)
|
109
111
|
|
110
|
-
def logger = container[__method__]
|
111
|
-
|
112
112
|
def relative_build_path = build_path.relative_path_from(configuration.target_root)
|
113
113
|
|
114
114
|
def build_path
|
@@ -16,6 +16,8 @@ module Rubysmith
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def call
|
19
|
+
render_funding
|
20
|
+
|
19
21
|
return configuration unless configuration.build_git_hub
|
20
22
|
|
21
23
|
builder.call(with_issue_template).render
|
@@ -27,6 +29,13 @@ module Rubysmith
|
|
27
29
|
|
28
30
|
attr_reader :configuration, :builder
|
29
31
|
|
32
|
+
def render_funding
|
33
|
+
return unless configuration.build_funding
|
34
|
+
|
35
|
+
configuration.merge(template_path: "%project_name%/.github/FUNDING.yml.erb")
|
36
|
+
.then { |updated_configuration| builder.call(updated_configuration).render }
|
37
|
+
end
|
38
|
+
|
30
39
|
def with_issue_template
|
31
40
|
configuration.merge template_path: "%project_name%/.github/ISSUE_TEMPLATE.md.erb"
|
32
41
|
end
|
@@ -5,9 +5,11 @@ module Rubysmith
|
|
5
5
|
module Actions
|
6
6
|
# Handles the config action.
|
7
7
|
class Config
|
8
|
-
|
8
|
+
include Rubysmith::Import[:kernel, :logger]
|
9
|
+
|
10
|
+
def initialize client: Configuration::Loader::CLIENT, **dependencies
|
11
|
+
super(**dependencies)
|
9
12
|
@client = client
|
10
|
-
@container = container
|
11
13
|
end
|
12
14
|
|
13
15
|
def call selection
|
@@ -20,15 +22,11 @@ module Rubysmith
|
|
20
22
|
|
21
23
|
private
|
22
24
|
|
23
|
-
attr_reader :client
|
25
|
+
attr_reader :client
|
24
26
|
|
25
27
|
def edit = kernel.system("$EDITOR #{client.current}")
|
26
28
|
|
27
29
|
def view = kernel.system("cat #{client.current}")
|
28
|
-
|
29
|
-
def kernel = container[__method__]
|
30
|
-
|
31
|
-
def logger = container[__method__]
|
32
30
|
end
|
33
31
|
end
|
34
32
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "dry/container"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module CLI
|
7
|
+
module Actions
|
8
|
+
# Provides a single container with application and action specific dependencies.
|
9
|
+
module Container
|
10
|
+
extend Dry::Container::Mixin
|
11
|
+
|
12
|
+
config.registry = ->(container, key, value, _options) { container[key.to_s] = value }
|
13
|
+
|
14
|
+
merge Rubysmith::Container
|
15
|
+
|
16
|
+
register(:build) { Build.new }
|
17
|
+
register(:config) { Config.new }
|
18
|
+
register(:publish) { Publish.new }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -5,16 +5,15 @@ module Rubysmith
|
|
5
5
|
module Actions
|
6
6
|
# Handles parsing of Command Line Interface (CLI) publish options.
|
7
7
|
class Publish
|
8
|
-
def initialize extension: Extensions::Milestoner
|
8
|
+
def initialize extension: Extensions::Milestoner
|
9
9
|
@extension = extension
|
10
|
-
@container = container
|
11
10
|
end
|
12
11
|
|
13
12
|
def call(configuration) = extension.call(configuration)
|
14
13
|
|
15
14
|
private
|
16
15
|
|
17
|
-
attr_reader :extension
|
16
|
+
attr_reader :extension
|
18
17
|
end
|
19
18
|
end
|
20
19
|
end
|
data/lib/rubysmith/cli/parser.rb
CHANGED
@@ -6,26 +6,29 @@ module Rubysmith
|
|
6
6
|
module CLI
|
7
7
|
# Assembles and parses all Command Line Interface (CLI) options.
|
8
8
|
class Parser
|
9
|
+
include Import[:configuration]
|
10
|
+
|
9
11
|
CLIENT = OptionParser.new nil, 40, " "
|
10
12
|
SECTIONS = [Parsers::Core, Parsers::Build].freeze # Order is important.
|
11
13
|
|
12
|
-
def initialize sections: SECTIONS, client: CLIENT,
|
14
|
+
def initialize sections: SECTIONS, client: CLIENT, **dependencies
|
15
|
+
super(**dependencies)
|
13
16
|
@sections = sections
|
14
17
|
@client = client
|
15
|
-
@
|
18
|
+
@configuration_duplicate = configuration.dup
|
16
19
|
end
|
17
20
|
|
18
21
|
def call arguments = []
|
19
|
-
sections.each { |section| section.call
|
22
|
+
sections.each { |section| section.call configuration_duplicate, client: }
|
20
23
|
client.parse arguments
|
21
|
-
|
24
|
+
configuration_duplicate.freeze
|
22
25
|
end
|
23
26
|
|
24
27
|
def to_s = client.to_s
|
25
28
|
|
26
29
|
private
|
27
30
|
|
28
|
-
attr_reader :sections, :client, :
|
31
|
+
attr_reader :sections, :client, :configuration_duplicate
|
29
32
|
end
|
30
33
|
end
|
31
34
|
end
|
@@ -7,16 +7,18 @@ module Rubysmith
|
|
7
7
|
module Parsers
|
8
8
|
# Handles parsing of Command Line Interface (CLI) build options.
|
9
9
|
class Build
|
10
|
+
include Import[:colorizer]
|
11
|
+
|
10
12
|
using Refinements::Structs
|
11
13
|
|
12
14
|
def self.call(...) = new(...).call
|
13
15
|
|
14
16
|
def initialize configuration = Container[:configuration],
|
15
17
|
client: Parser::CLIENT,
|
16
|
-
|
18
|
+
**dependencies
|
19
|
+
super(**dependencies)
|
17
20
|
@configuration = configuration
|
18
21
|
@client = client
|
19
|
-
@container = container
|
20
22
|
end
|
21
23
|
|
22
24
|
def call arguments = []
|
@@ -28,7 +30,7 @@ module Rubysmith
|
|
28
30
|
|
29
31
|
private
|
30
32
|
|
31
|
-
attr_reader :configuration, :client
|
33
|
+
attr_reader :configuration, :client
|
32
34
|
|
33
35
|
def collate = private_methods.sort.grep(/add_/).each { |method| __send__ method }
|
34
36
|
|
@@ -113,21 +115,21 @@ module Rubysmith
|
|
113
115
|
end
|
114
116
|
end
|
115
117
|
|
116
|
-
def
|
118
|
+
def add_debug
|
117
119
|
client.on(
|
118
|
-
"--[no-]
|
119
|
-
"Add
|
120
|
+
"--[no-]debug",
|
121
|
+
"Add Debug gem. #{default __method__}."
|
120
122
|
) do |value|
|
121
|
-
configuration.merge!
|
123
|
+
configuration.merge! build_debug: value
|
122
124
|
end
|
123
125
|
end
|
124
126
|
|
125
|
-
def
|
127
|
+
def add_funding
|
126
128
|
client.on(
|
127
|
-
"--[no-]
|
128
|
-
"Add
|
129
|
+
"--[no-]funding",
|
130
|
+
"Add GitHub funding configuration. #{default __method__}."
|
129
131
|
) do |value|
|
130
|
-
configuration.merge!
|
132
|
+
configuration.merge! build_funding: value
|
131
133
|
end
|
132
134
|
end
|
133
135
|
|
@@ -300,8 +302,6 @@ module Rubysmith
|
|
300
302
|
.then { |boolean| boolean ? colorizer.green(boolean) : colorizer.red(boolean) }
|
301
303
|
.then { |colored_boolean| "Default: #{colored_boolean}" }
|
302
304
|
end
|
303
|
-
|
304
|
-
def colorizer = container[__method__]
|
305
305
|
end
|
306
306
|
end
|
307
307
|
end
|
@@ -7,16 +7,18 @@ module Rubysmith
|
|
7
7
|
module Parsers
|
8
8
|
# Handles parsing of Command Line Interface (CLI) core options.
|
9
9
|
class Core
|
10
|
+
include Import[:specification]
|
11
|
+
|
10
12
|
using Refinements::Structs
|
11
13
|
|
12
14
|
def self.call(...) = new(...).call
|
13
15
|
|
14
16
|
def initialize configuration = Container[:configuration],
|
15
17
|
client: Parser::CLIENT,
|
16
|
-
|
18
|
+
**dependencies
|
19
|
+
super(**dependencies)
|
17
20
|
@configuration = configuration
|
18
21
|
@client = client
|
19
|
-
@container = container
|
20
22
|
end
|
21
23
|
|
22
24
|
def call arguments = []
|
@@ -29,7 +31,7 @@ module Rubysmith
|
|
29
31
|
|
30
32
|
private
|
31
33
|
|
32
|
-
attr_reader :configuration, :client
|
34
|
+
attr_reader :configuration, :client
|
33
35
|
|
34
36
|
def collate = private_methods.sort.grep(/add_/).each { |method| __send__ method }
|
35
37
|
|
@@ -65,8 +67,6 @@ module Rubysmith
|
|
65
67
|
configuration.merge! action_help: true
|
66
68
|
end
|
67
69
|
end
|
68
|
-
|
69
|
-
def specification = container[__method__]
|
70
70
|
end
|
71
71
|
end
|
72
72
|
end
|
data/lib/rubysmith/cli/shell.rb
CHANGED
@@ -6,16 +6,11 @@ module Rubysmith
|
|
6
6
|
module CLI
|
7
7
|
# The main Command Line Interface (CLI) object.
|
8
8
|
class Shell
|
9
|
-
|
10
|
-
config: Actions::Config.new,
|
11
|
-
build: Actions::Build.new,
|
12
|
-
publish: Actions::Publish.new
|
13
|
-
}.freeze
|
9
|
+
include Actions::Import[:config, :build, :publish, :specification, :logger]
|
14
10
|
|
15
|
-
def initialize parser: Parser.new,
|
11
|
+
def initialize parser: Parser.new, **dependencies
|
12
|
+
super(**dependencies)
|
16
13
|
@parser = parser
|
17
|
-
@actions = actions
|
18
|
-
@container = container
|
19
14
|
end
|
20
15
|
|
21
16
|
def call arguments = []
|
@@ -26,29 +21,17 @@ module Rubysmith
|
|
26
21
|
|
27
22
|
private
|
28
23
|
|
29
|
-
attr_reader :parser
|
24
|
+
attr_reader :parser
|
30
25
|
|
31
26
|
def perform configuration
|
32
27
|
case configuration
|
33
|
-
in action_config: Symbol => action then config action
|
34
|
-
in action_build: true then build configuration
|
35
|
-
in action_publish: true then publish configuration
|
28
|
+
in action_config: Symbol => action then config.call action
|
29
|
+
in action_build: true then build.call configuration
|
30
|
+
in action_publish: true then publish.call configuration
|
36
31
|
in action_version: true then logger.info { specification.labeled_version }
|
37
|
-
else
|
32
|
+
else logger.any { parser.to_s }
|
38
33
|
end
|
39
34
|
end
|
40
|
-
|
41
|
-
def config(action) = actions.fetch(__method__).call(action)
|
42
|
-
|
43
|
-
def build(configuration) = actions.fetch(__method__).call(configuration)
|
44
|
-
|
45
|
-
def publish(configuration) = actions.fetch(__method__).call(configuration)
|
46
|
-
|
47
|
-
def usage = logger.unknown(parser.to_s)
|
48
|
-
|
49
|
-
def specification = container[__method__]
|
50
|
-
|
51
|
-
def logger = container[__method__]
|
52
35
|
end
|
53
36
|
end
|
54
37
|
end
|
@@ -32,8 +32,8 @@ module Rubysmith
|
|
32
32
|
:build_conduct,
|
33
33
|
:build_console,
|
34
34
|
:build_contributions,
|
35
|
-
:build_dead_end,
|
36
35
|
:build_debug,
|
36
|
+
:build_funding,
|
37
37
|
:build_git,
|
38
38
|
:build_git_hub,
|
39
39
|
:build_git_lint,
|
@@ -58,7 +58,6 @@ module Rubysmith
|
|
58
58
|
:documentation_format,
|
59
59
|
:extensions_milestoner_documentation_format,
|
60
60
|
:extensions_milestoner_prefixes,
|
61
|
-
:extensions_milestoner_sign,
|
62
61
|
:extensions_pragmater_comments,
|
63
62
|
:extensions_pragmater_includes,
|
64
63
|
:extensions_tocer_includes,
|
@@ -73,6 +72,7 @@ module Rubysmith
|
|
73
72
|
:project_url_conduct,
|
74
73
|
:project_url_contributions,
|
75
74
|
:project_url_download,
|
75
|
+
:project_url_funding,
|
76
76
|
:project_url_home,
|
77
77
|
:project_url_issues,
|
78
78
|
:project_url_license,
|
@@ -131,6 +131,8 @@ module Rubysmith
|
|
131
131
|
|
132
132
|
def computed_project_url_download = format_url(__method__)
|
133
133
|
|
134
|
+
def computed_project_url_funding = format_url(__method__)
|
135
|
+
|
134
136
|
def computed_project_url_home = format_url(__method__)
|
135
137
|
|
136
138
|
def computed_project_url_issues = format_url(__method__)
|
@@ -14,8 +14,8 @@
|
|
14
14
|
:conduct: true
|
15
15
|
:console: true
|
16
16
|
:contributions: true
|
17
|
-
:dead_end: true
|
18
17
|
:debug: true
|
18
|
+
:funding: false
|
19
19
|
:git: true
|
20
20
|
:git_hub: false
|
21
21
|
:git_lint: true
|
@@ -43,14 +43,13 @@
|
|
43
43
|
:extensions:
|
44
44
|
:milestoner:
|
45
45
|
:documentation:
|
46
|
-
:format: "
|
46
|
+
:format: "adoc"
|
47
47
|
:prefixes:
|
48
48
|
- Fixed
|
49
49
|
- Added
|
50
50
|
- Updated
|
51
51
|
- Removed
|
52
52
|
- Refactored
|
53
|
-
:sign: false
|
54
53
|
:pragmater:
|
55
54
|
:comments:
|
56
55
|
- "# frozen_string_literal: true"
|
@@ -82,6 +81,7 @@
|
|
82
81
|
:conduct:
|
83
82
|
:contributions:
|
84
83
|
:download:
|
84
|
+
:funding:
|
85
85
|
:home:
|
86
86
|
:issues:
|
87
87
|
:license:
|
data/lib/rubysmith/container.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "cogger"
|
3
4
|
require "dry-container"
|
4
|
-
require "logger"
|
5
5
|
require "pastel"
|
6
6
|
require "spek"
|
7
7
|
|
@@ -10,30 +10,10 @@ module Rubysmith
|
|
10
10
|
module Container
|
11
11
|
extend Dry::Container::Mixin
|
12
12
|
|
13
|
+
register(:colorizer) { Pastel.new enabled: $stdout.tty? }
|
13
14
|
register(:configuration) { Configuration::Loader.call }
|
14
15
|
register(:specification) { Spek::Loader.call "#{__dir__}/../../rubysmith.gemspec" }
|
15
|
-
register(:colorizer) { Pastel.new enabled: $stdout.tty? }
|
16
16
|
register(:kernel) { Kernel }
|
17
|
-
|
18
|
-
register :log_colors do
|
19
|
-
{
|
20
|
-
"DEBUG" => self[:colorizer].white.detach,
|
21
|
-
"INFO" => self[:colorizer].green.detach,
|
22
|
-
"WARN" => self[:colorizer].yellow.detach,
|
23
|
-
"ERROR" => self[:colorizer].red.detach,
|
24
|
-
"FATAL" => self[:colorizer].white.bold.on_red.detach,
|
25
|
-
"ANY" => self[:colorizer].white.bold.detach
|
26
|
-
}
|
27
|
-
end
|
28
|
-
|
29
|
-
register :logger do
|
30
|
-
Logger.new $stdout,
|
31
|
-
level: Logger.const_get(ENV.fetch("LOG_LEVEL", "INFO")),
|
32
|
-
formatter: (
|
33
|
-
lambda do |severity, _at, _name, message|
|
34
|
-
self[:log_colors][severity].call "#{message}\n"
|
35
|
-
end
|
36
|
-
)
|
37
|
-
end
|
17
|
+
register(:logger) { Cogger::Client.new }
|
38
18
|
end
|
39
19
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
github: [<%= configuration.git_hub_user %>]
|
@@ -14,13 +14,10 @@ group :code_quality do
|
|
14
14
|
gem "bundler-leak", "~> 0.2"
|
15
15
|
<% end %>
|
16
16
|
<% if configuration.build_caliber %>
|
17
|
-
gem "caliber", "~> 0.
|
18
|
-
<% end %>
|
19
|
-
<% if configuration.build_dead_end %>
|
20
|
-
gem "dead_end", "~> 3.1"
|
17
|
+
gem "caliber", "~> 0.7"
|
21
18
|
<% end %>
|
22
19
|
<% if configuration.build_git && configuration.build_git_lint %>
|
23
|
-
gem "git-lint", "~>
|
20
|
+
gem "git-lint", "~> 4.0"
|
24
21
|
<% end %>
|
25
22
|
<% if configuration.build_reek %>
|
26
23
|
gem "reek", "~> 6.1"
|
@@ -59,6 +56,6 @@ group :tools do
|
|
59
56
|
gem "amazing_print", "~> 1.4"
|
60
57
|
<% end %>
|
61
58
|
<% if configuration.build_debug %>
|
62
|
-
gem "debug", "~> 1.
|
59
|
+
gem "debug", "~> 1.5"
|
63
60
|
<% end %>
|
64
61
|
end
|
@@ -25,7 +25,7 @@ RSpec.configure do |config|
|
|
25
25
|
config.disable_monkey_patching!
|
26
26
|
config.example_status_persistence_file_path = "./tmp/rspec-examples.txt"
|
27
27
|
config.filter_run_when_matching :focus
|
28
|
-
config.formatter = ENV
|
28
|
+
config.formatter = ENV.fetch("CI", false) == "true" ? :progress : :documentation
|
29
29
|
config.order = :random
|
30
30
|
config.shared_context_metadata_behavior = :apply_to_host_groups
|
31
31
|
config.warnings = true
|
data/rubysmith.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "rubysmith"
|
5
|
-
spec.version = "
|
5
|
+
spec.version = "3.1.0"
|
6
6
|
spec.authors = ["Brooke Kuhlmann"]
|
7
7
|
spec.email = ["brooke@alchemists.io"]
|
8
8
|
spec.homepage = "https://github.com/bkuhlmann/rubysmith"
|
@@ -13,6 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
"bug_tracker_uri" => "https://github.com/bkuhlmann/rubysmith/issues",
|
14
14
|
"changelog_uri" => "https://www.alchemists.io/projects/rubysmith/versions",
|
15
15
|
"documentation_uri" => "https://www.alchemists.io/projects/rubysmith",
|
16
|
+
"funding_uri" => "https://github.com/sponsors/bkuhlmann",
|
16
17
|
"label" => "Rubysmith",
|
17
18
|
"rubygems_mfa_required" => "true",
|
18
19
|
"source_code_uri" => "https://github.com/bkuhlmann/rubysmith"
|
@@ -22,16 +23,18 @@ Gem::Specification.new do |spec|
|
|
22
23
|
spec.cert_chain = [Gem.default_cert_path]
|
23
24
|
|
24
25
|
spec.required_ruby_version = "~> 3.1"
|
26
|
+
spec.add_dependency "auto_injector", "~> 0.4"
|
27
|
+
spec.add_dependency "cogger", "~> 0.0"
|
25
28
|
spec.add_dependency "dry-container", "~> 0.9"
|
26
|
-
spec.add_dependency "git_plus", "~> 1.
|
27
|
-
spec.add_dependency "milestoner", "~>
|
29
|
+
spec.add_dependency "git_plus", "~> 1.3"
|
30
|
+
spec.add_dependency "milestoner", "~> 14.0"
|
28
31
|
spec.add_dependency "pastel", "~> 0.8"
|
29
|
-
spec.add_dependency "pragmater", "~>
|
32
|
+
spec.add_dependency "pragmater", "~> 11.0"
|
30
33
|
spec.add_dependency "refinements", "~> 9.2"
|
31
|
-
spec.add_dependency "rubocop", "~> 1.
|
34
|
+
spec.add_dependency "rubocop", "~> 1.27"
|
32
35
|
spec.add_dependency "runcom", "~> 8.2"
|
33
36
|
spec.add_dependency "spek", "~> 0.2"
|
34
|
-
spec.add_dependency "tocer", "~>
|
37
|
+
spec.add_dependency "tocer", "~> 14.0"
|
35
38
|
spec.add_dependency "zeitwerk", "~> 2.5"
|
36
39
|
|
37
40
|
spec.bindir = "exe"
|
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:
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -10,9 +10,9 @@ bindir: exe
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIC/
|
14
|
-
|
15
|
-
|
13
|
+
MIIC/jCCAeagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpicm9v
|
14
|
+
a2UvREM9YWxjaGVtaXN0cy9EQz1pbzAeFw0yMjAzMTkxNzI0MzJaFw0yMzAzMTkx
|
15
|
+
NzI0MzJaMCUxIzAhBgNVBAMMGmJyb29rZS9EQz1hbGNoZW1pc3RzL0RDPWlvMIIB
|
16
16
|
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6l1qpXTiomH1RfMRloyw7MiE
|
17
17
|
xyVx/x8Yc3EupdH7uhNaTXQGyORN6aOY//1QXXMHIZ9tW74nZLhesWMSUMYy0XhB
|
18
18
|
brs+KkurHnc9FnEJAbG7ebGvl/ncqZt72nQvaxpDxvuCBHgJAz+8i5wl6FhLw+oT
|
@@ -20,16 +20,44 @@ cert_chain:
|
|
20
20
|
D5vkU0YlAm1r98BymuJlcQ1qdkVEI1d48ph4kcS0S0nv1RiuyVb6TCAR3Nu3VaVq
|
21
21
|
3fPzZKJLZBx67UvXdbdicWPiUR75elI4PXpLIic3xytaF52ZJYyKZCNZJhNwfQID
|
22
22
|
AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU0nzow9vc
|
23
|
-
2CdikiiE3fJhP/
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
2CdikiiE3fJhP/gY4ggwDQYJKoZIhvcNAQELBQADggEBAJbbNyWzFjqUNVPPCUCo
|
24
|
+
IMrhDa9xf1xkORXNYYbmXgoxRy/KyNbUr+jgEEoWJAm9GXlcqxxWAUI6pK/i4/Qi
|
25
|
+
X6rPFEFmeObDOHNvuqy8Hd6AYsu+kP94U/KJhe9wnWGMmGoNKJNU3EkW3jM/osSl
|
26
|
+
+JRxiH5t4WtnDiVyoYl5nYC02rYdjJkG6VMxDymXTqn7u6HhYgZkGujq1UPar8x2
|
27
|
+
hNIWJblDKKSu7hA2d6+kUthuYo13o1sg1Da/AEDg0hoZSUvhqDEF5Hy232qb3pDt
|
28
|
+
CxDe2+VuChj4I1nvIHdu+E6XoEVlanUPKmSg6nddhkKn2gC45Kyzh6FZqnzH/CRp
|
29
|
+
RFE=
|
30
30
|
-----END CERTIFICATE-----
|
31
|
-
date: 2022-
|
31
|
+
date: 2022-04-30 00:00:00.000000000 Z
|
32
32
|
dependencies:
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: auto_injector
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0.4'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0.4'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: cogger
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0.0'
|
33
61
|
- !ruby/object:Gem::Dependency
|
34
62
|
name: dry-container
|
35
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,28 +78,28 @@ dependencies:
|
|
50
78
|
requirements:
|
51
79
|
- - "~>"
|
52
80
|
- !ruby/object:Gem::Version
|
53
|
-
version: '1.
|
81
|
+
version: '1.3'
|
54
82
|
type: :runtime
|
55
83
|
prerelease: false
|
56
84
|
version_requirements: !ruby/object:Gem::Requirement
|
57
85
|
requirements:
|
58
86
|
- - "~>"
|
59
87
|
- !ruby/object:Gem::Version
|
60
|
-
version: '1.
|
88
|
+
version: '1.3'
|
61
89
|
- !ruby/object:Gem::Dependency
|
62
90
|
name: milestoner
|
63
91
|
requirement: !ruby/object:Gem::Requirement
|
64
92
|
requirements:
|
65
93
|
- - "~>"
|
66
94
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
95
|
+
version: '14.0'
|
68
96
|
type: :runtime
|
69
97
|
prerelease: false
|
70
98
|
version_requirements: !ruby/object:Gem::Requirement
|
71
99
|
requirements:
|
72
100
|
- - "~>"
|
73
101
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
102
|
+
version: '14.0'
|
75
103
|
- !ruby/object:Gem::Dependency
|
76
104
|
name: pastel
|
77
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,14 +120,14 @@ dependencies:
|
|
92
120
|
requirements:
|
93
121
|
- - "~>"
|
94
122
|
- !ruby/object:Gem::Version
|
95
|
-
version: '
|
123
|
+
version: '11.0'
|
96
124
|
type: :runtime
|
97
125
|
prerelease: false
|
98
126
|
version_requirements: !ruby/object:Gem::Requirement
|
99
127
|
requirements:
|
100
128
|
- - "~>"
|
101
129
|
- !ruby/object:Gem::Version
|
102
|
-
version: '
|
130
|
+
version: '11.0'
|
103
131
|
- !ruby/object:Gem::Dependency
|
104
132
|
name: refinements
|
105
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -120,14 +148,14 @@ dependencies:
|
|
120
148
|
requirements:
|
121
149
|
- - "~>"
|
122
150
|
- !ruby/object:Gem::Version
|
123
|
-
version: '1.
|
151
|
+
version: '1.27'
|
124
152
|
type: :runtime
|
125
153
|
prerelease: false
|
126
154
|
version_requirements: !ruby/object:Gem::Requirement
|
127
155
|
requirements:
|
128
156
|
- - "~>"
|
129
157
|
- !ruby/object:Gem::Version
|
130
|
-
version: '1.
|
158
|
+
version: '1.27'
|
131
159
|
- !ruby/object:Gem::Dependency
|
132
160
|
name: runcom
|
133
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,14 +190,14 @@ dependencies:
|
|
162
190
|
requirements:
|
163
191
|
- - "~>"
|
164
192
|
- !ruby/object:Gem::Version
|
165
|
-
version: '
|
193
|
+
version: '14.0'
|
166
194
|
type: :runtime
|
167
195
|
prerelease: false
|
168
196
|
version_requirements: !ruby/object:Gem::Requirement
|
169
197
|
requirements:
|
170
198
|
- - "~>"
|
171
199
|
- !ruby/object:Gem::Version
|
172
|
-
version: '
|
200
|
+
version: '14.0'
|
173
201
|
- !ruby/object:Gem::Dependency
|
174
202
|
name: zeitwerk
|
175
203
|
requirement: !ruby/object:Gem::Requirement
|
@@ -221,6 +249,8 @@ files:
|
|
221
249
|
- lib/rubysmith/builders/version.rb
|
222
250
|
- lib/rubysmith/cli/actions/build.rb
|
223
251
|
- lib/rubysmith/cli/actions/config.rb
|
252
|
+
- lib/rubysmith/cli/actions/container.rb
|
253
|
+
- lib/rubysmith/cli/actions/import.rb
|
224
254
|
- lib/rubysmith/cli/actions/publish.rb
|
225
255
|
- lib/rubysmith/cli/parser.rb
|
226
256
|
- lib/rubysmith/cli/parsers/build.rb
|
@@ -239,10 +269,12 @@ files:
|
|
239
269
|
- lib/rubysmith/extensions/pragmater.rb
|
240
270
|
- lib/rubysmith/extensions/rubocop.rb
|
241
271
|
- lib/rubysmith/extensions/tocer.rb
|
272
|
+
- lib/rubysmith/import.rb
|
242
273
|
- lib/rubysmith/pathway.rb
|
243
274
|
- lib/rubysmith/renderers/erb.rb
|
244
275
|
- lib/rubysmith/renderers/namespace.rb
|
245
276
|
- lib/rubysmith/templates/%project_name%/.circleci/config.yml.erb
|
277
|
+
- lib/rubysmith/templates/%project_name%/.github/FUNDING.yml.erb
|
246
278
|
- lib/rubysmith/templates/%project_name%/.github/ISSUE_TEMPLATE.md.erb
|
247
279
|
- lib/rubysmith/templates/%project_name%/.github/PULL_REQUEST_TEMPLATE.md.erb
|
248
280
|
- lib/rubysmith/templates/%project_name%/.gitignore.erb
|
@@ -279,6 +311,7 @@ metadata:
|
|
279
311
|
bug_tracker_uri: https://github.com/bkuhlmann/rubysmith/issues
|
280
312
|
changelog_uri: https://www.alchemists.io/projects/rubysmith/versions
|
281
313
|
documentation_uri: https://www.alchemists.io/projects/rubysmith
|
314
|
+
funding_uri: https://github.com/sponsors/bkuhlmann
|
282
315
|
label: Rubysmith
|
283
316
|
rubygems_mfa_required: 'true'
|
284
317
|
source_code_uri: https://github.com/bkuhlmann/rubysmith
|
@@ -297,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
330
|
- !ruby/object:Gem::Version
|
298
331
|
version: '0'
|
299
332
|
requirements: []
|
300
|
-
rubygems_version: 3.3.
|
333
|
+
rubygems_version: 3.3.12
|
301
334
|
signing_key:
|
302
335
|
specification_version: 4
|
303
336
|
summary: A command line interface for smithing Ruby projects.
|
metadata.gz.sig
CHANGED
Binary file
|