rubysmith 2.0.2 → 3.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e8c468fff3da78e3904166c5a719b4c426743eb0429a2c9407705bcc05e4ccf
4
- data.tar.gz: 78b268e76b5de2556f87629fce27fc6f03e4cec7279238175cb7660c6dfb5719
3
+ metadata.gz: 76c37515f88d8baea764f0781f857dc37edf3fe5ae607957d04cc43bdabf5fa2
4
+ data.tar.gz: a102d5287ac1ea8eeba349a7b9d394fb9b59e6ac844730881d4b5c40468204ac
5
5
  SHA512:
6
- metadata.gz: 634ca98f29099a1a10beb10b2d6e43982f902e95606c6fbc197a57354931dde00b0c9a4121d6dc1365b77a6ea0920051e8673752c4587a29362bf500b0785efb
7
- data.tar.gz: 02c6e9f0e3ca47e7d0e8a8f98828efb50a7ddbbac034d6054481676bab981871fe9ef39a10146f5ecb4ca15fe39720b5231e7d92ce616338a251cb9163414ea9
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 link:https://www.alchemists.io/projects/gemsmith[Gemsmith] gem. Rubysmith is the
12
- foundation of Gemsmith and provides a lot of the same functionality as Gemsmith but solely tailored
13
- for pure Ruby projects. Again, this is a great tool for spiking quick Ruby implementations, sharing
14
- code snippets with others, or building full blown Ruby projects for collaboration with others.
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: "md"
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: 3.0
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 display usage (i.e. `rubysmith --help`). All of
475
- these options are explained in greater detail above.
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 definitely want to customize these as makes
521
- sense since these URLs are used for documentation, citations, and general project information. You
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 link:https://www.alchemists.io/projects/gemsmith[Gemsmith].
590
+ * Built with {gemsmith_link}.
583
591
  * Engineered by link:https://www.alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].
@@ -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, container: Container
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, :container
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
- def initialize client: Configuration::Loader::CLIENT, container: Container
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, :container
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
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "auto_injector"
4
+
5
+ module Rubysmith
6
+ module CLI
7
+ module Actions
8
+ Import = AutoInjector[Container]
9
+ end
10
+ end
11
+ 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, container: Container
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, :container
16
+ attr_reader :extension
18
17
  end
19
18
  end
20
19
  end
@@ -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, container: Container
14
+ def initialize sections: SECTIONS, client: CLIENT, **dependencies
15
+ super(**dependencies)
13
16
  @sections = sections
14
17
  @client = client
15
- @configuration = container[:configuration].dup
18
+ @configuration_duplicate = configuration.dup
16
19
  end
17
20
 
18
21
  def call arguments = []
19
- sections.each { |section| section.call configuration, client: }
22
+ sections.each { |section| section.call configuration_duplicate, client: }
20
23
  client.parse arguments
21
- configuration.freeze
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, :configuration
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
- container: Container
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, :container
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 add_dead_end
118
+ def add_debug
117
119
  client.on(
118
- "--[no-]dead_end",
119
- "Add Dead End gem. #{default __method__}."
120
+ "--[no-]debug",
121
+ "Add Debug gem. #{default __method__}."
120
122
  ) do |value|
121
- configuration.merge! build_dead_end: value
123
+ configuration.merge! build_debug: value
122
124
  end
123
125
  end
124
126
 
125
- def add_debug
127
+ def add_funding
126
128
  client.on(
127
- "--[no-]debug",
128
- "Add Debug gem. #{default __method__}."
129
+ "--[no-]funding",
130
+ "Add GitHub funding configuration. #{default __method__}."
129
131
  ) do |value|
130
- configuration.merge! build_debug: value
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
- container: Container
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, :container
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
@@ -6,16 +6,11 @@ module Rubysmith
6
6
  module CLI
7
7
  # The main Command Line Interface (CLI) object.
8
8
  class Shell
9
- ACTIONS = {
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, actions: ACTIONS, container: Container
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, :actions, :container
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 usage
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: "md"
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:
@@ -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
@@ -29,7 +29,6 @@ module Rubysmith
29
29
  content.transmute configuration,
30
30
  documentation_format: :extensions_milestoner_documentation_format,
31
31
  prefixes: :extensions_milestoner_prefixes,
32
- sign: :extensions_milestoner_sign,
33
32
  version: :project_version
34
33
  end
35
34
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "auto_injector"
4
+
5
+ module Rubysmith
6
+ Import = AutoInjector[Container]
7
+ 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.2"
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", "~> 3.2"
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.4"
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["CI"] == "true" ? :progress : :documentation
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 = "2.0.2"
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.1"
27
- spec.add_dependency "milestoner", "~> 13.3"
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", "~> 10.0"
32
+ spec.add_dependency "pragmater", "~> 11.0"
30
33
  spec.add_dependency "refinements", "~> 9.2"
31
- spec.add_dependency "rubocop", "~> 1.25"
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", "~> 13.2"
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: 2.0.2
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/jCCAeagAwIBAgIBBDANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpicm9v
14
- a2UvREM9YWxjaGVtaXN0cy9EQz1pbzAeFw0yMTAzMTkxMjQ4MDZaFw0yMjAzMTkx
15
- MjQ4MDZaMCUxIzAhBgNVBAMMGmJyb29rZS9EQz1hbGNoZW1pc3RzL0RDPWlvMIIB
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/gY4ggwDQYJKoZIhvcNAQELBQADggEBAEjpaOXHHp8s/7GL2qCb
24
- YAs7urOLv9VHSPfQWAwaTMVnSsIf3Sw4xzISOP/mmfEPBPXtz61K5esrE/uTFtgb
25
- FyjxQk2H0sEWgrRXGGNHBWQRhhEs7LP/TByoC15A0br++xLxRz4r7HBLGAWQQDpg
26
- 66BJ2TBVjxS6K64tKbq7+ACyrOZGgTfNHACh4M076y0x0oRf/rwBrU39/KRfuhbb
27
- cm+nNCEtO35gTmZ2bVDHLGvWazi3gJt6+huQjfXTCUUG2YYBxwhu+GPdAGQPxpf9
28
- lkHilIrX69jq8wMPpBhlaw2mRmeSL50Wv5u6xVBvOHhXFSP1crXM95vfLhLyRYod
29
- W2A=
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-03-04 00:00:00.000000000 Z
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.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.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: '13.3'
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: '13.3'
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: '10.0'
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: '10.0'
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.25'
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.25'
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: '13.2'
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: '13.2'
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.8
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