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 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