{"id":13878721,"url":"https://github.com/bkuhlmann/rubysmith","last_synced_at":"2025-09-10T01:37:57.033Z","repository":{"id":45086736,"uuid":"299130625","full_name":"bkuhlmann/rubysmith","owner":"bkuhlmann","description":"A command line interface for smithing Ruby projects.","archived":false,"fork":false,"pushed_at":"2025-08-30T22:28:08.000Z","size":1819,"stargazers_count":24,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-31T00:19:23.603Z","etag":null,"topics":["ruby","setup","skeleton"],"latest_commit_sha":null,"homepage":"https://alchemists.io/projects/rubysmith","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bkuhlmann.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.adoc","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["bkuhlmann"]}},"created_at":"2020-09-27T22:28:11.000Z","updated_at":"2025-08-08T20:20:17.000Z","dependencies_parsed_at":"2023-02-19T01:00:57.851Z","dependency_job_id":"601dcbd0-1087-4a41-b310-ce6b00fc90ff","html_url":"https://github.com/bkuhlmann/rubysmith","commit_stats":{"total_commits":852,"total_committers":1,"mean_commits":852.0,"dds":0.0,"last_synced_commit":"db59829a95fcc00457e6db7daca577b78de09448"},"previous_names":[],"tags_count":91,"template":false,"template_full_name":null,"purl":"pkg:github/bkuhlmann/rubysmith","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Frubysmith","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Frubysmith/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Frubysmith/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Frubysmith/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bkuhlmann","download_url":"https://codeload.github.com/bkuhlmann/rubysmith/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Frubysmith/sbom","scorecard":{"id":241755,"data":{"date":"2025-08-11","repo":{"name":"github.com/bkuhlmann/rubysmith","commit":"21e4cdbcb8027f7a19af68698af0670dc7b857dd"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5,"checks":[{"name":"Pinned-Dependencies","score":-1,"reason":"internal error: internal error: invalid Dockerfile: Syntax error - can't find = in \"\\\" %\u003e\\\"\". Must be of the form: name=value","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":10,"reason":"20 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.adoc:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-17T06:47:28.812Z","repository_id":45086736,"created_at":"2025-08-17T06:47:28.813Z","updated_at":"2025-08-17T06:47:28.813Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272925786,"owners_count":25016420,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ruby","setup","skeleton"],"created_at":"2024-08-06T08:01:57.768Z","updated_at":"2025-09-10T01:37:56.993Z","avatar_url":"https://github.com/bkuhlmann.png","language":"Ruby","readme":":toc: macro\n:toclevels: 5\n:figure-caption!:\n\n:bundler_inline_link: link:https://alchemists.io/articles/ruby_bundler_inline[Bundler Inline]\n:docker_alpine_ruby_link: link:https://alchemists.io/projects/docker-alpine-ruby[Docker Alpine Ruby]\n:docker_link: link:https://www.docker.com[Docker]\n:gemsmith_link: link:https://alchemists.io/projects/gemsmith[Gemsmith]\n:runcom_link: link:https://alchemists.io/projects/runcom[Runcom]\n:string_formats_link: link:https://docs.ruby-lang.org/en/3.3/format_specifications_rdoc.html[String Formats]\n:xdg_link: link:https://alchemists.io/projects/xdg[XDG]\n\n= Rubysmith\n\nRubysmith is a command line interface for smithing Ruby projects.\n\nThis gem is useful in situations in which you need something more sophisticated than a\n{bundler_inline_link} script but less than a {gemsmith_link} gem. Rubysmith is the foundation of Gemsmith and provides much of the same functionality as Gemsmith but is solely tailored for pure Ruby projects. Again, this is a great tool for spiking quick Ruby implementations, sharing code snippets with others, or building full blown Ruby projects for collaboration with others.\n\ntoc::[]\n\n== Features\n\n* Builds a Ruby project skeleton for custom design and development.\n* Uses link:https://alchemists.io/projects/runcom[Runcom] for resource configuration management.\n* Uses link:https://alchemists.io/projects/pragmater[Pragmater] for Ruby source pragma directives.\n* Supports link:https://github.com/amazing-print/amazing_print[Amazing Print].\n* Supports link:https://alchemists.io/projects/caliber[Caliber].\n* Supports link:https://circleci.com[Circle CI].\n* Supports link:https://orcid.org[Citations (ORCID)].\n* Supports console script for local development.\n* Supports link:https://github.com/ruby/debug[Debug].\n* Supports {docker_link}.\n* Supports link:https://git-scm.com[Git].\n* Supports link:https://github.com[GitHub].\n* Supports link:https://alchemists.io/projects/git-lint[Git Lint].\n* Supports link:https://alchemists.io/projects/irb-kit[IRB Kit].\n* Supports link:https://github.com/ruby/rake[Rake].\n* Supports link:https://github.com/troessner/reek[Reek].\n* Supports link:https://alchemists.io/projects/refinements[Refinements].\n* Supports link:https://rspec.info[RSpec].\n* Supports link:https://github.com/ruby/repl_type_completor[ReplTypeCompletor].\n* Supports setup script for project setup.\n* Supports link:https://github.com/simplecov-ruby/simplecov[SimpleCov].\n* Supports link:https://github.com/fxn/zeitwerk[Zeitwerk].\n* Supports common settings and a structured layout for building projects.\n* Provides common documentation.\n\n== Requirements\n\n. A UNIX-based system.\n. link:https://www.ruby-lang.org[Ruby].\n\n== Setup\n\nTo install _with_ security, run:\n\n[source,bash]\n----\n# 💡 Skip this line if you already have the public certificate installed.\ngem cert --add \u003c(curl --compressed --location https://alchemists.io/gems.pem)\ngem install rubysmith --trust-policy HighSecurity\n----\n\nTo install _without_ security, run:\n\n[source,bash]\n----\ngem install rubysmith\n----\n\n== Usage\n\n=== Command Line Interface (CLI)\n\nFrom the command line, type: `rubysmith --help`\n\nimage:https://alchemists.io/images/projects/rubysmith/screenshots/usage.png[Usage,width=554,height=301,role=focal_point]\n\n==== Build\n\nThe core functionality of this gem centers around the `--build` command and associated options\n(flags). The build options allow you to further customize the kind of project you want to build.\nMost build options are enabled by default. Example:\n\n[source,bash]\n----\nrubysmith build --name demo\n----\n\nRunning the above will generate a new `demo` Ruby project. Should you wish to disable specific\noptions, you can use `--no-*` prefixes. Example:\n\n[source,bash]\n----\nrubysmith build --name demo --no-debug --no-reek\n----\n\nWith the above example, both Debug and Reek support would have been disabled when building the `demo` project. Taking this a step further, you can also use the `--min` option to generate a project with bare minimum of options. Example:\n\n[source,bash]\n----\nrubysmith build --name demo --min\n----\n\nThe above is the same as building with _all options disabled_. This is handy in situations where you need to quickly script something up for sharing with others yet still want to avoid using a {bundler_inline_link} script so gem dependencies are not installed each time the code is run.\n\nAs shown earlier, you can combine options but be aware that order matters. Take the following, for example, where both minimum and maximum options are used in conjunction with other options:\n\n[source,bash]\n----\nrubysmith build --name demo --min --zeitwerk\nrubysmith build --name demo --max --no-debug\n----\n\nWith the above examples, the first line will _disable all options_ except Zeitwerk while the second line will _enable all options_ except Debug. This can be a handy way to build a new project with all options either disabled or enabled with only a few select options modified. To have specific options enabled/disabled _every time_, you can edit your global configuration for making these settings permanent (see below for details).\n\nThere is a lot of flexibility when building a new project through the various build options. I'll walk you through each so you can better understand why you'd want to enable or disable them.\n\n===== Amazing Print\n\nThe `--amazing_print` option allows you to build your project with the\nlink:https://github.com/amazing-print/amazing_print[Amazing Print] gem for debugging purposes and is\na handy debugging tool when inspecting your Ruby objects and printing details in a quick to read\nformat.\n\n===== Bootsnap\n\nThe `--bootsnap` option allows you to build your project with the\nlink:https://github.com/Shopify/bootsnap[Bootsnap] gem for improved performance. This is best used for pure, non-gem, Ruby projects and/or web applications in general.\n\n===== Caliber\n\nThe `--caliber` option allows you to build your project with the\nlink:https://alchemists.io/projects/caliber[Caliber] gem so you have an immediate working -- and\nhigh quality -- link:https://docs.rubocop.org/rubocop[RuboCop] configuration. Read the Caliber\ndocumentation for further customization. This adds the following files when enabled:\n\n....\n├── bin\n│  ├── rubocop\n├── .config\n│  └── rubocop\n│     └── config.yml\n....\n\n===== Circle CI\n\nThe `--circle_ci` option allows you to build your project with link:https://circleci.com[Circle CI]\nconfigured so you can get your project building as quickly as possible. This adds the following file when enabled:\n\n....\n├── .circleci\n│  └── config.yml\n....\n\n===== Citation\n\nThe `--citation` option allows you to add a link:https://citation-file-format.github.io[citation]\nfile to your project so you can help the research community cite your work in their studies if your\nproject is used. This adds the following file when enabled:\n\n....\n├── CITATION.cff\n....\n\n===== Community\n\nThe `--community` option allows you to link to your open source community, organization, or group\nchat to help with community engagement of your work. The link is added to the `README` file when enabled.\n\n===== Code of Conduct\n\nThe `--conduct` option allows you to link to your link:https://www.contributor-covenant.org[Code of\nConduct] to encourage good community participation. Regardless of whether you have a community or\nnot, the code of conduct is good to encourage in general. The link is added to the `README` file when enabled.\n\n===== Console\n\nThe `--console` option allows you to add a `console` script for local development. So instead of\ntyping `irb`, you can type `bin/console` and get an IRB session with all of your project's code\nloaded. This adds the following file when enabled:\n\n....\n├── bin\n│  ├── console\n....\n\n===== Contributions\n\nThe `--contributions` option allows you to link to contributing documentation so people know to\ncontribute back to your work. The link is added to the `README` file when enabled.\n\n===== Developer Certificate of Origin\n\nThe `--dcoo` option allows to you add link:https://developercertificate.org[Developer Certificate of Origin] documentation so all contributors are aware of how their contributions are applied in terms of ownership, copyright, and licensing. The link is added to the `README` file when enabled.\n\n===== Debug\n\nThe `--debug` option allows you add the link:https://github.com/ruby/debug[Debug] gem to your\nproject for debugging your code by setting breakpoints, remotely connecting to running code, and\nmuch more.\n\n===== Docker\n\nThe `--docker` option allows you add {docker_link} to your project so you can build and deploy a production image of your software. When enabled, these files will appear in your project:\n\n....\n├── bin\n│  ├── docker\n│  │  ├── build       # Use to build your production image for local use.\n│  │  ├── console     # Use to interact with your production image.\n│  │  └── entrypoint  # Conditionally enables jemalloc support.\n├── .dockerignore     # Specifies files/folders Docker should ignore.\n├── compose.yml       # Provides the Docker Compose configuration.\n├── Dockerfile        # Provides the production build configuration for your image.\n....\n\n===== Development Containers\n\n⚠️ DEPRECATED: Will be removed in Version 9.0.0.\n\nThe `--devcontainer` option allows you add {development_containers_link} support to your project so you can develop locally by running your project within a {docker_link} container. When enabled, these files will be added to your project:\n\n....\n├── .devcontainer\n│  ├── compose.yaml       # Your Docker Compose configuration.\n│  ├── devcontainer.json  # Your Developer Container configuration.\n│  └── Dockerfile         # The steps for building your development environment.\n....\n\nℹ️ The `Dockerfile` uses the {docker_alpine_ruby_link} base image so you have a small but functional image. This base image can be easily be swapped out with a base image you prefer.\n\n===== Funding\n\nThe `--funding` option allows you add a link:https://github.com[GitHub] funding configuration to\nyour project so you can attract link:https://docs.github.com/en/sponsors[sponsors]. This option\ndoesn't require use of the `--git_hub` option but is encouraged. This adds the following file when enabled:\n\n....\n├── .github\n│  ├── FUNDING.yml\n....\n\n===== Git\n\nThe `--git` option allows you add link:https://git-scm.com[Git] repository support. Includes link:https://alchemists.io/screencasts/git_safe[Git Safe] functionality so you don't have to prefix commands with the `bin/` path prefix. Instead, you can call the command directly (assuming you have configured your link:https://alchemists.io/projects/dotfiles[Dotfiles] accordingly).\n\n===== GitHub\n\nThe `--git_hub` option allows you add link:https://github.com[GitHub] templates to your project for\nissues and pull requests. This adds the following files when enabled:\n\n....\n├── .github\n│  ├── ISSUE_TEMPLATE.md\n│  └── PULL_REQUEST_TEMPLATE.md\n....\n\n===== GitHub CI\n\nThe `--git_hub_ci` option allows you to build your project with link:https://docs.github.com/en/actions[GitHub Actions] configured so you can get your project building as quickly as possible. This adds the following file when enabled:\n\n....\n├── .github\n│  ├── workflows\n│  │  └── ci.yml\n....\n\n===== Git Lint\n\nThe `--git-lint` option allows you to add the link:https://alchemists.io/projects/git-lint[Git\nLint] gem to your project to ensure you are crafting your Git commits in a consistent and readable\nmanner.\n\n===== IRB Kit\n\nThe `--irb-kit` option allows you add the link:https://alchemists.io/projects/irb-kit[IRB Kit] gem to your project for additional extensions you can use within IRB to improve your workflow.\n\n===== License\n\nThe `--license` option ensures you build your project with a license.\n\n===== Maximum\n\nThe `--max` option allows you to build your project with _all options enabled_. This is a quick way\nto build a new project without having to pick and choose.\n\n===== Minimum\n\nThe `--min` option allows you to build your project with _all options disabled_. This is a quick way to build a new project with the bare minimum of support which is a one step above reaching for a {bundler_inline_link} script.\n\n===== Monads\n\nThe `--monads` option allows you to add the link:https://dry-rb.org/gems/dry-monads[Dry Monads] gem to your project for building more functional and fault tolerant objects.\n\n===== Rake\n\nThe `--rake` option allows you to add the link:https://github.com/ruby/rake[Rake] gem for quickly\ncrafting build scripts. This adds the following files to your project:\n\n....\n├── bin\n│  ├── rake\n├── Rakefile\n....\n\n===== Readme\n\nThe `--readme` option allows you to add README documentation to your project.\n\n===== Reek\n\nThe `--reek` option allows you add the link:https://github.com/troessner/reek[Reek] gem to your\nproject for code smell and code quality support. This adds the `.reek.yml` configuration to your project.\n\n===== Refinements\n\nThe `--refinements` option allows you to add the\nlink:https://alchemists.io/projects/refinements[Refinements] gem to your project which enhances\nRuby core objects without monkey patching your code.\n\n===== RSpec\n\nThe `--rspec` option allows you add the link:https://rspec.info[RSpec] gem to your project for\ndefining your project specifications and have a framework for testing your code. This adds the following files to your project:\n\n....\n├── bin\n│  ├── rspec\n├── spec\n│  ├── lib\n│  │  └── \u003cyour project name\u003e_spec.rb\n│  ├── support\n│  │  └── shared_contexts\n│  │     └── temp_dir.rb\n│  └── spec_helper.rb\n....\n\n===== Repl Type Completor (RTC)\n\nThe `--rtc` option allows you add the link:https://github.com/ruby/repl_type_completor[Repl Type Completor] gem to your project for improved type completion when using link:https://github.com/ruby/irb[IRB].\n\n===== Setup\n\nThe `--setup` option allows you to configure you project with automated setup instructions so anyone\nnew to your project can quickly get started by running the `bin/setup` script. This adds the following file to your project:\n\n....\n│  └── setup\n....\n\n===== SimpleCov\n\nThe `--simple_cov` option allows you add the\nlink:https://github.com/simplecov-ruby/simplecov[SimpleCov] gem to your project to provide full\nanalysis of your project's code quality and/or find code that is unused.\n\n===== Versions\n\nThe `--versions` option allows you add a `VERSIONS` file to your project to provide details about\nall published versions of your project.\n\n===== Zeitwerk\n\nThe `--zeitwerk` option allows you add the link:https://github.com/fxn/zeitwerk[Zeitwerk] gem to your project so you can reduce the maintenance burden of managing requirements when adding new objects to your project.\n\nThis includes having access to your project's Zeitwerk loader for inspection and debugging purposes. This means if you built a `Demo` project, you'd immediately have access to your project's loader via `Demo.loader` when using the project console (i.e. `bin/console`, assuming you built your project with the `--console` flag enabled which is default behavior).\n\n=== Configuration\n\nThis gem can be configured via a global configuration:\n\n....\n$HOME/.config/rubysmith/configuration.yml\n....\n\nIt can also be configured via {xdg_link}/{runcom_link} environment variables. The default configuration is as follows:\n\n[source,yaml]\n----\nauthor:\n  handle: undefined\n  uri: \"%\u003corganization_uri\u003es/team/%\u003cauthor_handle\u003es\"\nbuild:\n  amazing_print: true\n  bootsnap: false\n  caliber: true\n  circle_ci: false\n  citation: true\n  cli: false\n  community: false\n  conduct: true\n  console: true\n  contributions: true\n  dcoo: true\n  debug: true\n  devcontainer: false\n  docker: false\n  funding: false\n  git: true\n  git_hub: false\n  git_hub_ci: false\n  git_lint: true\n  irb_kit: true\n  license: true\n  maximum: false\n  minimum: false\n  monads: false\n  rake: true\n  readme: true\n  reek: true\n  refinements: true\n  rspec: true\n  rtc: true\n  security: true\n  setup: true\n  simple_cov: true\n  versions: true\n  zeitwerk: true\ncitation:\n  affiliation: \"%\u003corganization_label\u003es\"\n  message: Please use the following metadata when citing this project in your work.\ndocumentation:\n  format: \"adoc\"\nlicense:\n  label: Hippocratic\n  name: hippocratic\n  version: \"2.1\"\norganization:\n  uri: https://undefined.io\nproject:\n  uri:\n    community: \"%\u003corganization_uri\u003es/community\"\n    conduct: \"%\u003corganization_uri\u003es/policies/code_of_conduct\"\n    contributions: \"%\u003corganization_uri\u003es/policies/contributions\"\n    dcoo: \"%\u003corganization_uri\u003es/policies/developer_certificate_of_origin\"\n    download: \"https://rubygems.org/gems/%\u003cproject_name\u003es\"\n    funding: \"%\u003crepository_uri\u003es/sponsors/%\u003crepository_handle\u003es\"\n    home: \"%\u003corganization_uri\u003es/projects/%\u003cproject_name\u003es\"\n    issues: \"%\u003crepository_uri\u003es/%\u003crepository_handle\u003es/%\u003cproject_name\u003es/issues\"\n    license: \"%\u003corganization_uri\u003es/policies/license\"\n    security: \"%\u003corganization_uri\u003es/policies/security\"\n    source: \"%\u003crepository_uri\u003es/%\u003crepository_handle\u003es/%\u003cproject_name\u003es\"\n    versions: \"%\u003corganization_uri\u003es/projects/%\u003cproject_name\u003es/versions\"\n  version: 0.0.0\nrepository:\n  handle: undefined\n  uri: https://github.com\n----\n\nBy customizing your configuration, you can change Rubysmith's default behavior when building projects. This is a great way to define your own specialized settings other than what is provided by default. This is also a handy way to provide additional information needed for some of the build options.\n\nYou'll also notice some of the values use {string_formats_link} which means you can use any fully qualified key as a string specifier for supported keys like those found in the `author` and `project` sections.\n\nEach section of the configuration is explained below.\n\n==== Author\n\nAuthor information is used when generating project documentation and is recommended you fill this\ninformation in before building a project. Example:\n\n[source,yaml]\n----\nauthor:\n  email: jsmith@example.com\n  family_name: Smith\n  given_name: Jill\n  author_uri:  # Requires being supplied.\n----\n\nIf your global link:https://git-scm.com[Git] configuration is properly configured, your given name;\nfamily name; and email will be used by default. Should you not want to defer to Git, you can supply\ncustom values as desired. The URI is the only value that can't be automatically computed for you.\n\n==== Build\n\nAll build options only accept booleans values and can be customized as desired. When changing your build options, they will dynamically render when displaying usage (i.e. `rubysmith --help`). All of these options have been explained in greater detail in the _Usage_ section.\n\nℹ️ The `cli` option is provided to support {gemsmith_link} but is not, currently, used by\nthis project.\n\n==== Citations\n\nThis section allows you to configure your link:https://orcid.org[ORCID]\nlink:https://citation-file-format.github.io[citation] information used by the research community.\n[source,yaml]\n----\ncitation:\n  affiliation:  # Defaults to organization label (see above).\n  message:      # Defaults to supplied message (see above).\n  orcid:        # Defaults to https://orcid.org/ when no ID is supplied.\n----\n\nYour author, project, and license information will be used when building this file.\n\n==== Documentation\n\nUse this section to define the kind of documentation you want generated for your project. The\nfollowing options are available:\n\n* `adoc`: Uses link:https://asciidoctor.org[ASCII Doc] format.\n* `md`: Uses link:https://daringfireball.net/projects/markdown[Markdown] format.\n\n==== License\n\nUse this section to define the license you want to use for your project. When picking a license, you can supply the appropriate `label` and `version` in addition to the `name`. The `name` is the only value you _can't_ customize. The following details all supported licenses.\n\n===== Apache\n\nTo use the link:https://www.apache.org/licenses/LICENSE-2.0[Apache] license, apply this configuration:\n\n[source,yaml]\n----\nlicense:\n  label: \"Apache\"\n  name: \"apache\"\n  version: \"2.0\"\n----\n\n===== Fair Source\n\nTo use the link:https://fsl.software[Fair Source] license, apply this configuration:\n\n[source,yaml]\n----\nlicense:\n  label: \"Fair Source\"\n  name: \"fair\"\n  version: \"FSL-1.1-Apache-2.0\"\n----\n\n===== Hippocratic\n\nTo use the link:https://firstdonoharm.dev[Hippocratic] license, apply this configuration:\n\n[source,yaml]\n----\nlicense:\n  label: \"Hippocratic\"\n  name: \"hippocratic\"\n  version: \"2.1\"\n----\n\nℹ️ This is the default license unless you customize.\n\n===== MIT\n\nTo use the  link:https://mit-license.org[MIT] license, apply this configuration:\n\n[source,yaml]\n----\nlicense:\n  label: \"MIT\"\n  name: \"mit\"\n  version: \"\"\n----\n\n==== Organization\n\nUse this section to define organization specific information. This is useful for information that isn't project specific but related to all projects within your organization. You'll want -- highly recommended -- to supply configuration details. For example, here's what a fictional organization might look like:\n\n[source,yaml]\n----\norganization:\n  label: ACME\n  uri: https://acme.io\n----\n\n==== Project\n\nThere are two sub-categories within this section: URIs and version. The URIs allow you to link to\nspecific documentation related to your project. You'll want to customize these URIs since they are\nused for documentation, citations, and general project information. Some of the URIs are also used\nby the {gemsmith_link} gem.\n\nOne powerful feature of this configuration is that you can use `%\u003cproject_name\u003es` as a placeholder _anywhere_ in your URIs and Rubysmith will ensure your place holder is replaced with your project name when generating a new project. Example:\n\n....\n# Configuration\nhttps://www.example.com/%\u003cproject_name\u003es\n\n# Command\nrubysmith build --name demo\n\n# Actual (computed result)\nhttps://www.example.com/demo\n....\n\nAs for the `version` key, this defines the default version of newly created projects. `0.0.0` is the default but you can use a higher version number like `0.1.0` or even `1.0.0` if you are super confident in your work. That said, a lower the number is recommended when building your initial project which is why `0.0.0` is the default.\n\n==== Repository\n\nYour repository handle is the handle you setup when creating your account (i.e. `+https://github.com/\u003cyour_handle\u003e+`). This information is used for template, funding, and/or URI construction purposes. These are the defaults but you'll want to customize to reflect the service you are using:\n\n``` yaml\nrepository:\n  handle: undefined\n  uri: https://github.com\n```\n\n== Development\n\nTo contribute, run:\n\n[source,bash]\n----\ngit clone https://github.com/bkuhlmann/rubysmith\ncd rubysmith\nbin/setup\n----\n\nYou can also use the IRB console for direct access to all objects:\n\n[source,bash]\n----\nbin/console\n----\n\n== Tests\n\nTo test, run:\n\n[source,bash]\n----\nbin/rake\n----\n\n== link:https://alchemists.io/policies/license[License]\n\n== link:https://alchemists.io/policies/security[Security]\n\n== link:https://alchemists.io/policies/code_of_conduct[Code of Conduct]\n\n== link:https://alchemists.io/policies/contributions[Contributions]\n\n== link:https://alchemists.io/policies/developer_certificate_of_origin[Developer Certificate of Origin]\n\n== link:https://alchemists.io/projects/rubysmith/versions[Versions]\n\n== link:https://alchemists.io/community[Community]\n\n== Credits\n\n* Built with {gemsmith_link}.\n* Engineered by link:https://alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].\n","funding_links":["https://github.com/sponsors/bkuhlmann"],"categories":["Ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkuhlmann%2Frubysmith","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbkuhlmann%2Frubysmith","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkuhlmann%2Frubysmith/lists"}