rubysmith 4.9.0 → 5.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +91 -117
- data/lib/rubysmith/builders/core.rb +0 -1
- data/lib/rubysmith/cli/actions/amazing_print.rb +25 -0
- data/lib/rubysmith/cli/actions/caliber.rb +25 -0
- data/lib/rubysmith/cli/actions/circle_ci.rb +25 -0
- data/lib/rubysmith/cli/actions/citation.rb +25 -0
- data/lib/rubysmith/cli/actions/community.rb +25 -0
- data/lib/rubysmith/cli/actions/conduct.rb +25 -0
- data/lib/rubysmith/cli/actions/console.rb +25 -0
- data/lib/rubysmith/cli/actions/contributions.rb +25 -0
- data/lib/rubysmith/cli/actions/debug.rb +25 -0
- data/lib/rubysmith/cli/actions/funding.rb +25 -0
- data/lib/rubysmith/cli/actions/git.rb +25 -0
- data/lib/rubysmith/cli/actions/git_hub.rb +25 -0
- data/lib/rubysmith/cli/actions/git_hub_ci.rb +25 -0
- data/lib/rubysmith/cli/actions/git_lint.rb +25 -0
- data/lib/rubysmith/cli/actions/guard.rb +25 -0
- data/lib/rubysmith/cli/actions/license.rb +25 -0
- data/lib/rubysmith/cli/actions/maximum.rb +25 -0
- data/lib/rubysmith/cli/actions/minimum.rb +25 -0
- data/lib/rubysmith/cli/actions/name.rb +23 -0
- data/lib/rubysmith/cli/actions/publish.rb +16 -4
- data/lib/rubysmith/cli/actions/rake.rb +25 -0
- data/lib/rubysmith/cli/actions/readme.rb +25 -0
- data/lib/rubysmith/cli/actions/reek.rb +25 -0
- data/lib/rubysmith/cli/actions/refinements.rb +25 -0
- data/lib/rubysmith/cli/actions/rspec.rb +25 -0
- data/lib/rubysmith/cli/actions/security.rb +25 -0
- data/lib/rubysmith/cli/actions/setup.rb +25 -0
- data/lib/rubysmith/cli/actions/simple_cov.rb +25 -0
- data/lib/rubysmith/cli/actions/versions.rb +25 -0
- data/lib/rubysmith/cli/actions/yard.rb +25 -0
- data/lib/rubysmith/cli/actions/zeitwerk.rb +25 -0
- data/lib/rubysmith/cli/{actions → commands}/build.rb +45 -7
- data/lib/rubysmith/cli/shell.rb +20 -18
- data/lib/rubysmith/configuration/contract.rb +78 -0
- data/lib/rubysmith/configuration/defaults.yml +52 -73
- data/lib/rubysmith/configuration/{content.rb → model.rb} +8 -22
- data/lib/rubysmith/configuration/transformers/current_time.rb +18 -0
- data/lib/rubysmith/configuration/transformers/git_email.rb +21 -0
- data/lib/rubysmith/configuration/transformers/git_hub_user.rb +21 -0
- data/lib/rubysmith/configuration/transformers/git_user.rb +24 -0
- data/lib/rubysmith/configuration/transformers/target_root.rb +18 -0
- data/lib/rubysmith/configuration/transformers/template_root.rb +32 -0
- data/lib/rubysmith/container.rb +23 -3
- data/lib/rubysmith/extensions/milestoner.rb +1 -1
- data/lib/rubysmith/extensions/pragmater.rb +8 -8
- data/lib/rubysmith/extensions/tocer.rb +8 -8
- data/lib/rubysmith/pathway.rb +1 -0
- data/lib/rubysmith/templates/%project_name%/Gemfile.erb +4 -4
- data/rubysmith.gemspec +16 -13
- data.tar.gz.sig +0 -0
- metadata +112 -46
- metadata.gz.sig +0 -0
- data/lib/rubysmith/cli/actions/config.rb +0 -33
- data/lib/rubysmith/cli/actions/container.rb +0 -20
- data/lib/rubysmith/cli/actions/import.rb +0 -11
- data/lib/rubysmith/cli/parser.rb +0 -35
- data/lib/rubysmith/cli/parsers/build.rb +0 -307
- data/lib/rubysmith/cli/parsers/core.rb +0 -72
- data/lib/rubysmith/configuration/enhancers/container.rb +0 -20
- data/lib/rubysmith/configuration/enhancers/current_time.rb +0 -14
- data/lib/rubysmith/configuration/enhancers/git_email.rb +0 -21
- data/lib/rubysmith/configuration/enhancers/git_hub_user.rb +0 -21
- data/lib/rubysmith/configuration/enhancers/git_user.rb +0 -25
- data/lib/rubysmith/configuration/enhancers/template_root.rb +0 -12
- data/lib/rubysmith/configuration/loader.rb +0 -44
| @@ -1,59 +1,52 @@ | |
| 1 | 
            -
            : | 
| 2 | 
            -
              : | 
| 3 | 
            -
              : | 
| 4 | 
            -
              : | 
| 5 | 
            -
              : | 
| 6 | 
            -
            : | 
| 7 | 
            -
              : | 
| 8 | 
            -
              : | 
| 9 | 
            -
              : | 
| 10 | 
            -
              : | 
| 11 | 
            -
              : | 
| 12 | 
            -
              : | 
| 13 | 
            -
              : | 
| 14 | 
            -
              : | 
| 15 | 
            -
              : | 
| 16 | 
            -
              : | 
| 17 | 
            -
              : | 
| 18 | 
            -
              : | 
| 19 | 
            -
              : | 
| 20 | 
            -
              : | 
| 21 | 
            -
              : | 
| 22 | 
            -
              : | 
| 23 | 
            -
              : | 
| 24 | 
            -
              : | 
| 25 | 
            -
              : | 
| 26 | 
            -
              : | 
| 27 | 
            -
              : | 
| 28 | 
            -
              : | 
| 29 | 
            -
              : | 
| 30 | 
            -
              : | 
| 31 | 
            -
              : | 
| 32 | 
            -
             | 
| 33 | 
            -
              : | 
| 34 | 
            -
             | 
| 35 | 
            -
              : | 
| 36 | 
            -
             | 
| 37 | 
            -
            : | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
            :documentation:
         | 
| 42 | 
            -
              :format: "adoc"
         | 
| 43 | 
            -
            :extensions:
         | 
| 44 | 
            -
              :milestoner:
         | 
| 45 | 
            -
                :documentation:
         | 
| 46 | 
            -
                  :format: "adoc"
         | 
| 47 | 
            -
                :prefixes:
         | 
| 1 | 
            +
            build:
         | 
| 2 | 
            +
              amazing_print: true
         | 
| 3 | 
            +
              caliber: true
         | 
| 4 | 
            +
              circle_ci: false
         | 
| 5 | 
            +
              citation: true
         | 
| 6 | 
            +
              cli: false
         | 
| 7 | 
            +
              community: false
         | 
| 8 | 
            +
              conduct: true
         | 
| 9 | 
            +
              console: true
         | 
| 10 | 
            +
              contributions: true
         | 
| 11 | 
            +
              debug: true
         | 
| 12 | 
            +
              funding: false
         | 
| 13 | 
            +
              git: true
         | 
| 14 | 
            +
              git_hub: false
         | 
| 15 | 
            +
              git_hub_ci: false
         | 
| 16 | 
            +
              git_lint: true
         | 
| 17 | 
            +
              guard: true
         | 
| 18 | 
            +
              license: true
         | 
| 19 | 
            +
              maximum: false
         | 
| 20 | 
            +
              minimum: false
         | 
| 21 | 
            +
              rake: true
         | 
| 22 | 
            +
              readme: true
         | 
| 23 | 
            +
              reek: true
         | 
| 24 | 
            +
              refinements: true
         | 
| 25 | 
            +
              rspec: true
         | 
| 26 | 
            +
              security: true
         | 
| 27 | 
            +
              setup: true
         | 
| 28 | 
            +
              simple_cov: true
         | 
| 29 | 
            +
              versions: true
         | 
| 30 | 
            +
              yard: false
         | 
| 31 | 
            +
              zeitwerk: true
         | 
| 32 | 
            +
            citation:
         | 
| 33 | 
            +
              message: Please use the following metadata when citing this project in your work.
         | 
| 34 | 
            +
            documentation:
         | 
| 35 | 
            +
              format: "adoc"
         | 
| 36 | 
            +
            extensions:
         | 
| 37 | 
            +
              milestoner:
         | 
| 38 | 
            +
                documentation:
         | 
| 39 | 
            +
                  format: "adoc"
         | 
| 40 | 
            +
                prefixes:
         | 
| 48 41 | 
             
                  - Fixed
         | 
| 49 42 | 
             
                  - Added
         | 
| 50 43 | 
             
                  - Updated
         | 
| 51 44 | 
             
                  - Removed
         | 
| 52 45 | 
             
                  - Refactored
         | 
| 53 | 
            -
               | 
| 54 | 
            -
                 | 
| 46 | 
            +
              pragmater:
         | 
| 47 | 
            +
                comments:
         | 
| 55 48 | 
             
                  - "# frozen_string_literal: true"
         | 
| 56 | 
            -
                : | 
| 49 | 
            +
                patterns:
         | 
| 57 50 | 
             
                  - "**/*.rake"
         | 
| 58 51 | 
             
                  - "**/*.rb"
         | 
| 59 52 | 
             
                  - "*.gemspec"
         | 
| @@ -65,27 +58,13 @@ | |
| 65 58 | 
             
                  - Gemfile
         | 
| 66 59 | 
             
                  - Guardfile
         | 
| 67 60 | 
             
                  - Rakefile
         | 
| 68 | 
            -
               | 
| 69 | 
            -
                : | 
| 61 | 
            +
              tocer:
         | 
| 62 | 
            +
                label: "## Table of Contents"
         | 
| 63 | 
            +
                patterns:
         | 
| 70 64 | 
             
                  - "README.md"
         | 
| 71 | 
            -
             | 
| 72 | 
            -
            : | 
| 73 | 
            -
              : | 
| 74 | 
            -
            : | 
| 75 | 
            -
             | 
| 76 | 
            -
              : | 
| 77 | 
            -
              :version: 2.1
         | 
| 78 | 
            -
            :project:
         | 
| 79 | 
            -
              :url:
         | 
| 80 | 
            -
                :community:
         | 
| 81 | 
            -
                :conduct:
         | 
| 82 | 
            -
                :contributions:
         | 
| 83 | 
            -
                :download:
         | 
| 84 | 
            -
                :funding:
         | 
| 85 | 
            -
                :home:
         | 
| 86 | 
            -
                :issues:
         | 
| 87 | 
            -
                :license:
         | 
| 88 | 
            -
                :security:
         | 
| 89 | 
            -
                :source:
         | 
| 90 | 
            -
                :versions:
         | 
| 91 | 
            -
              :version: 0.0.0
         | 
| 65 | 
            +
            license:
         | 
| 66 | 
            +
              label: Hippocratic
         | 
| 67 | 
            +
              name: hippocratic
         | 
| 68 | 
            +
              version: "2.1"
         | 
| 69 | 
            +
            project:
         | 
| 70 | 
            +
              version: 0.0.0
         | 
| @@ -9,15 +9,7 @@ module Rubysmith | |
| 9 9 | 
             
              # rubocop:disable Metrics/ModuleLength
         | 
| 10 10 | 
             
              module Configuration
         | 
| 11 11 | 
             
                # Defines the common configuration content for use throughout the gem.
         | 
| 12 | 
            -
                 | 
| 13 | 
            -
                  :action_build,
         | 
| 14 | 
            -
                  :action_config,
         | 
| 15 | 
            -
                  :action_edit,
         | 
| 16 | 
            -
                  :action_help,
         | 
| 17 | 
            -
                  :action_install,
         | 
| 18 | 
            -
                  :action_publish,
         | 
| 19 | 
            -
                  :action_version,
         | 
| 20 | 
            -
                  :action_view,
         | 
| 12 | 
            +
                Model = Struct.new(
         | 
| 21 13 | 
             
                  :author_email,
         | 
| 22 14 | 
             
                  :author_family_name,
         | 
| 23 15 | 
             
                  :author_given_name,
         | 
| @@ -59,8 +51,8 @@ module Rubysmith | |
| 59 51 | 
             
                  :extensions_milestoner_documentation_format,
         | 
| 60 52 | 
             
                  :extensions_milestoner_prefixes,
         | 
| 61 53 | 
             
                  :extensions_pragmater_comments,
         | 
| 62 | 
            -
                  : | 
| 63 | 
            -
                  : | 
| 54 | 
            +
                  :extensions_pragmater_patterns,
         | 
| 55 | 
            +
                  :extensions_tocer_patterns,
         | 
| 64 56 | 
             
                  :extensions_tocer_label,
         | 
| 65 57 | 
             
                  :git_hub_user,
         | 
| 66 58 | 
             
                  :license_label,
         | 
| @@ -88,20 +80,14 @@ module Rubysmith | |
| 88 80 | 
             
                  using Refinements::Strings
         | 
| 89 81 | 
             
                  using Refinements::Structs
         | 
| 90 82 |  | 
| 91 | 
            -
                  def initialize | 
| 83 | 
            +
                  def initialize(**)
         | 
| 92 84 | 
             
                    super
         | 
| 93 85 | 
             
                    freeze
         | 
| 94 86 | 
             
                  end
         | 
| 95 87 |  | 
| 96 | 
            -
                  def  | 
| 97 | 
            -
                    paths.map { |path| Pathname path }
         | 
| 98 | 
            -
                         .including(template_roots)
         | 
| 99 | 
            -
                         .then { |roots| dup.merge! template_roots: roots }
         | 
| 100 | 
            -
                  end
         | 
| 101 | 
            -
             | 
| 102 | 
            -
                  def maximize = update_build_options(true)
         | 
| 88 | 
            +
                  def maximize = update_build_options true
         | 
| 103 89 |  | 
| 104 | 
            -
                  def minimize = update_build_options | 
| 90 | 
            +
                  def minimize = update_build_options false
         | 
| 105 91 |  | 
| 106 92 | 
             
                  def author_name = [author_given_name, author_family_name].compress.join(" ")
         | 
| 107 93 |  | 
| @@ -150,8 +136,8 @@ module Rubysmith | |
| 150 136 | 
             
                  end
         | 
| 151 137 |  | 
| 152 138 | 
             
                  def template_root
         | 
| 153 | 
            -
                    template_roots.map(&:expand_path)
         | 
| 154 | 
            -
             | 
| 139 | 
            +
                    Array(template_roots).map(&:expand_path)
         | 
| 140 | 
            +
                                         .find { |path| path.join(String(template_path)).exist? }
         | 
| 155 141 | 
             
                  end
         | 
| 156 142 |  | 
| 157 143 | 
             
                  private
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require "dry/monads"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Rubysmith
         | 
| 6 | 
            +
              module Configuration
         | 
| 7 | 
            +
                # Adds current time to content.
         | 
| 8 | 
            +
                module Transformers
         | 
| 9 | 
            +
                  include Dry::Monads[:result]
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  CurrentTime = lambda do |content, at: Time.now|
         | 
| 12 | 
            +
                    content.fetch(:now) { at }
         | 
| 13 | 
            +
                           .then { |now| content.merge! now: }
         | 
| 14 | 
            +
                           .then { |updated_content| Dry::Monads::Success updated_content }
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
            end
         | 
| @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require "dry/monads"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Rubysmith
         | 
| 6 | 
            +
              module Configuration
         | 
| 7 | 
            +
                module Transformers
         | 
| 8 | 
            +
                  # Dynamically adds Git email if defined.
         | 
| 9 | 
            +
                  class GitEmail
         | 
| 10 | 
            +
                    include Import[:git]
         | 
| 11 | 
            +
                    include Dry::Monads[:result]
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                    def call content
         | 
| 14 | 
            +
                      return Success content if content[:author_email]
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                      git.get("user.email").fmap { |email| content.merge! author_email: email }
         | 
| 17 | 
            +
                    end
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
            end
         | 
| @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require "dry/monads"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Rubysmith
         | 
| 6 | 
            +
              module Configuration
         | 
| 7 | 
            +
                module Transformers
         | 
| 8 | 
            +
                  # Dynamically adds GitHub user if user is defined.
         | 
| 9 | 
            +
                  class GitHubUser
         | 
| 10 | 
            +
                    include Import[:git]
         | 
| 11 | 
            +
                    include Dry::Monads[:result]
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                    def call content
         | 
| 14 | 
            +
                      return Success content if content[:git_hub_user]
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                      git.get("github.user").fmap { |user| content.merge! git_hub_user: user }
         | 
| 17 | 
            +
                    end
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
            end
         | 
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require "dry/monads"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Rubysmith
         | 
| 6 | 
            +
              module Configuration
         | 
| 7 | 
            +
                module Transformers
         | 
| 8 | 
            +
                  # Dynamically adds Git user if defined.
         | 
| 9 | 
            +
                  class GitUser
         | 
| 10 | 
            +
                    include Import[:git]
         | 
| 11 | 
            +
                    include Dry::Monads[:result]
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                    def call content
         | 
| 14 | 
            +
                      return Success content if content[:author_given_name] || content[:author_family_name]
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                      git.get("user.name").fmap do |name|
         | 
| 17 | 
            +
                        first, last = String(name).split
         | 
| 18 | 
            +
                        content.merge author_given_name: first, author_family_name: last
         | 
| 19 | 
            +
                      end
         | 
| 20 | 
            +
                    end
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require "dry/monads"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Rubysmith
         | 
| 6 | 
            +
              module Configuration
         | 
| 7 | 
            +
                # Sets target root which defaults to current directory when key is missing.
         | 
| 8 | 
            +
                module Transformers
         | 
| 9 | 
            +
                  include Dry::Monads[:result]
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  TargetRoot = lambda do |content, path: Pathname.pwd|
         | 
| 12 | 
            +
                    content.fetch(:target_root) { path }
         | 
| 13 | 
            +
                           .then { |root| content.merge! target_root: root }
         | 
| 14 | 
            +
                           .then { |updated_content| Dry::Monads::Success updated_content }
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
            end
         | 
| @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require "dry/monads"
         | 
| 4 | 
            +
            require "refinements/arrays"
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Rubysmith
         | 
| 7 | 
            +
              module Configuration
         | 
| 8 | 
            +
                module Transformers
         | 
| 9 | 
            +
                  # Appends custom content to default template roots.
         | 
| 10 | 
            +
                  class TemplateRoot
         | 
| 11 | 
            +
                    include Dry::Monads[:result]
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                    using Refinements::Arrays
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                    def initialize default = Pathname(__dir__).join("../../templates")
         | 
| 16 | 
            +
                      @default = default
         | 
| 17 | 
            +
                    end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                    def call content
         | 
| 20 | 
            +
                      Array(default).map { |path| Pathname path }
         | 
| 21 | 
            +
                                    .including(content[:template_roots])
         | 
| 22 | 
            +
                                    .compact
         | 
| 23 | 
            +
                                    .then { |paths| Success content.merge!(template_roots: paths) }
         | 
| 24 | 
            +
                    end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                    private
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                    attr_reader :default
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
            end
         | 
    
        data/lib/rubysmith/container.rb
    CHANGED
    
    | @@ -2,17 +2,37 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            require "cogger"
         | 
| 4 4 | 
             
            require "dry-container"
         | 
| 5 | 
            +
            require "etcher"
         | 
| 6 | 
            +
            require "gitt"
         | 
| 7 | 
            +
            require "runcom"
         | 
| 5 8 | 
             
            require "spek"
         | 
| 6 | 
            -
            require "tone"
         | 
| 7 9 |  | 
| 8 10 | 
             
            module Rubysmith
         | 
| 9 11 | 
             
              # Provides a global gem container for injection into other objects.
         | 
| 10 12 | 
             
              module Container
         | 
| 11 13 | 
             
                extend Dry::Container::Mixin
         | 
| 12 14 |  | 
| 13 | 
            -
                register | 
| 14 | 
            -
             | 
| 15 | 
            +
                register :configuration do
         | 
| 16 | 
            +
                  self[:defaults].add_loader(Etcher::Loaders::YAML.new(self[:xdg_config].active))
         | 
| 17 | 
            +
                                 .then { |registry| Etcher.call registry }
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                register :defaults do
         | 
| 21 | 
            +
                  Etcher::Registry.new(contract: Configuration::Contract, model: Configuration::Model)
         | 
| 22 | 
            +
                                  .add_loader(Etcher::Loaders::YAML.new(self[:defaults_path]))
         | 
| 23 | 
            +
                                  .add_transformer(Configuration::Transformers::CurrentTime)
         | 
| 24 | 
            +
                                  .add_transformer(Configuration::Transformers::GitHubUser.new)
         | 
| 25 | 
            +
                                  .add_transformer(Configuration::Transformers::GitEmail.new)
         | 
| 26 | 
            +
                                  .add_transformer(Configuration::Transformers::GitUser.new)
         | 
| 27 | 
            +
                                  .add_transformer(Configuration::Transformers::TemplateRoot.new)
         | 
| 28 | 
            +
                                  .add_transformer(Configuration::Transformers::TargetRoot)
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                register(:input, memoize: true) { self[:configuration].dup }
         | 
| 32 | 
            +
                register(:defaults_path) { Pathname(__dir__).join("configuration/defaults.yml") }
         | 
| 33 | 
            +
                register(:xdg_config) { Runcom::Config.new "rubysmith/configuration.yml" }
         | 
| 15 34 | 
             
                register(:specification) { Spek::Loader.call "#{__dir__}/../../rubysmith.gemspec" }
         | 
| 35 | 
            +
                register(:git) { Gitt::Repository.new }
         | 
| 16 36 | 
             
                register(:kernel) { Kernel }
         | 
| 17 37 | 
             
                register(:logger) { Cogger.new formatter: :emoji }
         | 
| 18 38 | 
             
              end
         | 
| @@ -13,7 +13,7 @@ module Rubysmith | |
| 13 13 |  | 
| 14 14 | 
             
                  def initialize configuration,
         | 
| 15 15 | 
             
                                 client: ::Milestoner::Tags::Publisher.new,
         | 
| 16 | 
            -
                                 content: ::Milestoner::Configuration:: | 
| 16 | 
            +
                                 content: ::Milestoner::Configuration::Model.new
         | 
| 17 17 | 
             
                    @configuration = configuration
         | 
| 18 18 | 
             
                    @client = client
         | 
| 19 19 | 
             
                    @content = content
         | 
| @@ -12,24 +12,24 @@ module Rubysmith | |
| 12 12 | 
             
                  def self.call(...) = new(...).call
         | 
| 13 13 |  | 
| 14 14 | 
             
                  def initialize configuration,
         | 
| 15 | 
            -
                                 client: ::Pragmater:: | 
| 16 | 
            -
                                  | 
| 15 | 
            +
                                 client: ::Pragmater::Inserter.new,
         | 
| 16 | 
            +
                                 record: ::Pragmater::Configuration::Model.new
         | 
| 17 17 | 
             
                    @configuration = configuration
         | 
| 18 18 | 
             
                    @client = client
         | 
| 19 | 
            -
                    @ | 
| 19 | 
            +
                    @record = record
         | 
| 20 20 | 
             
                  end
         | 
| 21 21 |  | 
| 22 22 | 
             
                  def call = client.call(settings) && configuration
         | 
| 23 23 |  | 
| 24 24 | 
             
                  private
         | 
| 25 25 |  | 
| 26 | 
            -
                  attr_reader :configuration, :client, : | 
| 26 | 
            +
                  attr_reader :configuration, :client, :record
         | 
| 27 27 |  | 
| 28 28 | 
             
                  def settings
         | 
| 29 | 
            -
                     | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 29 | 
            +
                    record.merge(root_dir: configuration.project_root)
         | 
| 30 | 
            +
                          .transmute! configuration,
         | 
| 31 | 
            +
                                      comments: :extensions_pragmater_comments,
         | 
| 32 | 
            +
                                      patterns: :extensions_pragmater_patterns
         | 
| 33 33 | 
             
                  end
         | 
| 34 34 | 
             
                end
         | 
| 35 35 | 
             
              end
         | 
| @@ -5,7 +5,7 @@ require "tocer" | |
| 5 5 |  | 
| 6 6 | 
             
            module Rubysmith
         | 
| 7 7 | 
             
              module Extensions
         | 
| 8 | 
            -
                # Ensures project skeleton documentation has table of  | 
| 8 | 
            +
                # Ensures project skeleton documentation has table of content.
         | 
| 9 9 | 
             
                class Tocer
         | 
| 10 10 | 
             
                  using Refinements::Structs
         | 
| 11 11 |  | 
| @@ -13,10 +13,10 @@ module Rubysmith | |
| 13 13 |  | 
| 14 14 | 
             
                  def initialize configuration,
         | 
| 15 15 | 
             
                                 client: ::Tocer::Runner.new,
         | 
| 16 | 
            -
                                  | 
| 16 | 
            +
                                 record: ::Tocer::Configuration::Model.new
         | 
| 17 17 | 
             
                    @configuration = configuration
         | 
| 18 18 | 
             
                    @client = client
         | 
| 19 | 
            -
                    @ | 
| 19 | 
            +
                    @record = record
         | 
| 20 20 | 
             
                  end
         | 
| 21 21 |  | 
| 22 22 | 
             
                  def call
         | 
| @@ -26,13 +26,13 @@ module Rubysmith | |
| 26 26 |  | 
| 27 27 | 
             
                  private
         | 
| 28 28 |  | 
| 29 | 
            -
                  attr_reader :configuration, :client, : | 
| 29 | 
            +
                  attr_reader :configuration, :client, :record
         | 
| 30 30 |  | 
| 31 31 | 
             
                  def settings
         | 
| 32 | 
            -
                     | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 32 | 
            +
                    record.merge(root_dir: configuration.project_root)
         | 
| 33 | 
            +
                          .transmute! configuration,
         | 
| 34 | 
            +
                                      label: :extensions_tocer_label,
         | 
| 35 | 
            +
                                      patterns: :extensions_tocer_patterns
         | 
| 36 36 | 
             
                  end
         | 
| 37 37 | 
             
                end
         | 
| 38 38 | 
             
              end
         | 
    
        data/lib/rubysmith/pathway.rb
    CHANGED
    
    
| @@ -3,7 +3,7 @@ ruby File.read(".ruby-version").strip | |
| 3 3 | 
             
            source "https://rubygems.org"
         | 
| 4 4 |  | 
| 5 5 | 
             
            <% if configuration.build_refinements %>
         | 
| 6 | 
            -
              gem "refinements", "~>  | 
| 6 | 
            +
              gem "refinements", "~> 11.0"
         | 
| 7 7 | 
             
            <% end %>
         | 
| 8 8 | 
             
            <% if configuration.build_zeitwerk %>
         | 
| 9 9 | 
             
              gem "zeitwerk", "~> 2.6"
         | 
| @@ -11,10 +11,10 @@ source "https://rubygems.org" | |
| 11 11 |  | 
| 12 12 | 
             
            group :code_quality do
         | 
| 13 13 | 
             
              <% if configuration.build_caliber %>
         | 
| 14 | 
            -
                gem "caliber", "~> 0. | 
| 14 | 
            +
                gem "caliber", "~> 0.35"
         | 
| 15 15 | 
             
              <% end %>
         | 
| 16 16 | 
             
              <% if configuration.build_git && configuration.build_git_lint %>
         | 
| 17 | 
            -
                gem "git-lint", "~>  | 
| 17 | 
            +
                gem "git-lint", "~> 6.0"
         | 
| 18 18 | 
             
              <% end %>
         | 
| 19 19 | 
             
              <% if configuration.build_reek %>
         | 
| 20 20 | 
             
                gem "reek", "~> 6.1", require: false
         | 
| @@ -32,7 +32,7 @@ group :development do | |
| 32 32 | 
             
                gem "rake", "~> 13.0"
         | 
| 33 33 | 
             
              <% end %>
         | 
| 34 34 | 
             
              <% if configuration.markdown? %>
         | 
| 35 | 
            -
                gem "tocer", "~>  | 
| 35 | 
            +
                gem "tocer", "~> 16.0"
         | 
| 36 36 | 
             
              <% end %>
         | 
| 37 37 | 
             
              <% if configuration.build_yard %>
         | 
| 38 38 | 
             
                gem "yard", "~> 0.9"
         | 
    
        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 = "5.1.0"
         | 
| 6 6 | 
             
              spec.authors = ["Brooke Kuhlmann"]
         | 
| 7 7 | 
             
              spec.email = ["brooke@alchemists.io"]
         | 
| 8 8 | 
             
              spec.homepage = "https://github.com/bkuhlmann/rubysmith"
         | 
| @@ -23,19 +23,22 @@ Gem::Specification.new do |spec| | |
| 23 23 | 
             
              spec.cert_chain = [Gem.default_cert_path]
         | 
| 24 24 |  | 
| 25 25 | 
             
              spec.required_ruby_version = "~> 3.2"
         | 
| 26 | 
            -
              spec.add_dependency "cogger", "~> 0. | 
| 27 | 
            -
              spec.add_dependency "core", "~> 0.1"
         | 
| 26 | 
            +
              spec.add_dependency "cogger", "~> 0.10"
         | 
| 28 27 | 
             
              spec.add_dependency "dry-container", "~> 0.11"
         | 
| 29 | 
            -
              spec.add_dependency " | 
| 30 | 
            -
              spec.add_dependency " | 
| 31 | 
            -
              spec.add_dependency " | 
| 32 | 
            -
              spec.add_dependency " | 
| 33 | 
            -
              spec.add_dependency " | 
| 34 | 
            -
              spec.add_dependency " | 
| 35 | 
            -
              spec.add_dependency " | 
| 36 | 
            -
              spec.add_dependency " | 
| 37 | 
            -
              spec.add_dependency " | 
| 38 | 
            -
              spec.add_dependency " | 
| 28 | 
            +
              spec.add_dependency "dry-monads", "~> 1.6"
         | 
| 29 | 
            +
              spec.add_dependency "dry-schema", "~> 1.13"
         | 
| 30 | 
            +
              spec.add_dependency "etcher", "~> 0.2"
         | 
| 31 | 
            +
              spec.add_dependency "gitt", "~> 2.0"
         | 
| 32 | 
            +
              spec.add_dependency "infusible", "~> 2.0"
         | 
| 33 | 
            +
              spec.add_dependency "milestoner", "~> 16.0"
         | 
| 34 | 
            +
              spec.add_dependency "pragmater", "~> 13.0"
         | 
| 35 | 
            +
              spec.add_dependency "refinements", "~> 11.0"
         | 
| 36 | 
            +
              spec.add_dependency "rubocop", "~> 1.52"
         | 
| 37 | 
            +
              spec.add_dependency "runcom", "~> 10.0"
         | 
| 38 | 
            +
              spec.add_dependency "sod", "~> 0.0"
         | 
| 39 | 
            +
              spec.add_dependency "spek", "~> 2.0"
         | 
| 40 | 
            +
              spec.add_dependency "tocer", "~> 16.0"
         | 
| 41 | 
            +
              spec.add_dependency "tone", "~> 0.3"
         | 
| 39 42 | 
             
              spec.add_dependency "zeitwerk", "~> 2.6"
         | 
| 40 43 |  | 
| 41 44 | 
             
              spec.bindir = "exe"
         | 
    
        data.tar.gz.sig
    CHANGED
    
    | Binary file |