README.adoc in caliber-0.26.0 vs README.adoc in caliber-0.27.0
- old
+ new
@@ -1,30 +1,32 @@
:toc: macro
:toclevels: 5
:figure-caption!:
:rubocop_link: link:https://docs.rubocop.org/rubocop[RuboCop]
+:rubocop_capybara_link: link:https://docs.rubocop.org/rubocop-capybara[RuboCop Capybara]
:rubocop_performance_link: link:https://docs.rubocop.org/rubocop-performance[RuboCop Performance]
-:rubocop_thread_saftey_link: link:https://github.com/rubocop/rubocop-thread_safety[RuboCop Thread Safety]
+:rubocop_thread_safety_link: link:https://github.com/rubocop/rubocop-thread_safety[RuboCop Thread Safety]
:rubocop_rake_link: link:https://docs.rubocop.org/rubocop-rspec[RuboCop Rake]
:rubocop_rspec_link: link:https://docs.rubocop.org/rubocop-rspec[RuboCop RSpec]
= Caliber
This gem provides global link:https://docs.rubocop.org/rubocop[RuboCop] configurations for ensuring
high quality _and_ consistent software development practices.
-_Due to the ever changing nature of the RuboCop ecosystem -- and the fact that it's very easy to fall behind quickly -- this gem takes an aggressive approach to staying up to date with latest changes within the RuboCop community. This also means this gem will probably never reach 1.0.0 status because new changes are being introduced in each minor release. That said, if you always want to be on top of recent changes -- because you know how costly technical debt is -- then this gem has you covered. 🎉_
+_Due to the ever changing nature of the RuboCop ecosystem -- and the fact that it's very easy to fall behind quickly -- this gem takes an aggressive approach to staying up to date with latest changes within the RuboCop community. This also means this gem will probably never reach Version 1.0.0 because new changes are being introduced in each minor release. That said, if you always want to be on top of recent changes -- *because you know how costly technical debt is* -- then this gem has you covered. 🎉_
toc::[]
== Features
* Provides a global configuration for the following code quality gems:
** {rubocop_link}
+** {rubocop_capybara_link}
** {rubocop_performance_link}
-** {rubocop_thread_saftey_link}
+** {rubocop_thread_safety_link}
** {rubocop_rake_link}
** {rubocop_rspec_link}
== Requirements
@@ -70,10 +72,11 @@
[source,yaml]
----
inherit_gem:
caliber:
- config/ruby.yml
+ - config/capybara.yml
- config/performance.yml
- config/thread.yml
- config/rake.yml
- config/rspec.yml
----
@@ -91,62 +94,84 @@
- config/all.yml
----
The above will require and load the configurations for following gems:
+* {rubocop_link}
+* {rubocop_capybara_link}
* {rubocop_performance_link}
-* {rubocop_thread_saftey_link}
+* {rubocop_thread_safety_link}
* {rubocop_rake_link}
* {rubocop_rspec_link}
When you don't use the default `all.yml` configuration, then behavior changes as follows:
+*Ruby*
+
[source,yaml]
----
inherit_gem:
caliber:
- config/ruby.yml
----
-The above will only load the RuboCop Ruby configuration. Nothing is required since Caliber already
-requires the RuboCop gem by default.
+The above will only load the {rubocop_link} Ruby configuration. No further requirements are necessary since Caliber already requires the RuboCop gem by default.
+*Capybara*
+
[source,yaml]
----
inherit_gem:
caliber:
+ - config/capybara.yml
+----
+
+The above will only require the {rubocop_capybara_link} gem _and_ load the associated configuration.
+
+*Performance*
+
+[source,yaml]
+----
+inherit_gem:
+ caliber:
- config/peformance.yml
----
-The above will only require the RuboCop Performance gem _and_ load the associated configuration.
+The above will only require the {rubocop_performance_link} gem _and_ load the associated configuration.
+*Thread Safety*
+
[source,yaml]
----
inherit_gem:
caliber:
- config/thread.yml
----
-The above will only require the RuboCop Thread Safety gem _and_ load the associated configuration.
+The above will only require the {rubocop_thread_safety_link} gem _and_ load the associated configuration.
+*Rake*
+
[source,yaml]
----
inherit_gem:
caliber:
- config/rake.yml
----
-The above will only require the RuboCop Rake gem _and_ load the associated configuration.
+The above will only require the {rubocop_rake_link} gem _and_ load the associated configuration.
+*RSpec*
+
[source,yaml]
----
inherit_gem:
caliber:
- config/rspec.yml
----
-The above will only require the RuboCop RSpec gem _and_ load the associated configuration.
+The above will only require the {rubocop_rspec_link} gem _and_ load the associated configuration.
=== Inheritance
Should you not want to include this gem in your project for some reason, you can directly inherit the configuration files supported by this project instead. To do this, you'll need to add the following to the top of your `.rubocop.yml`:
@@ -162,10 +187,11 @@
[source,yaml]
----
inherit_from:
- https://raw.githubusercontent.com/bkuhlmann/caliber/main/config/ruby.yml
+ - https://raw.githubusercontent.com/bkuhlmann/caliber/main/config/capybara.yml
- https://raw.githubusercontent.com/bkuhlmann/caliber/main/config/performance.yml
- https://raw.githubusercontent.com/bkuhlmann/caliber/main/config/thread.yml
- https://raw.githubusercontent.com/bkuhlmann/caliber/main/config/rake.yml
- https://raw.githubusercontent.com/bkuhlmann/caliber/main/config/rspec.yml
----
@@ -173,26 +199,27 @@
You can also target a specific version of this gem by swapping out the `main` path in the YAML URLs listed above with a specific version like `0.0.0`.
Lastly, when using this YAML import approach, you'll not benefit from having all gems you need required and installed for you. So you'll need to manually require these gems in your `Gemfile`:
* {rubocop_link}
+* {rubocop_capybara_link}
* {rubocop_performance_link}
-* {rubocop_thread_saftey_link}
+* {rubocop_thread_safety_link}
* {rubocop_rake_link}
* {rubocop_rspec_link}
=== Coexistence
In situations where you'd like to use Caliber alongside additional RuboCop gems, you only need to add the new gems to your `Gemfile` and then require them within your `.rubocop.yml`. For example, let's say you wanted to use both the Caliber and link:https://github.com/rubocop/rubocop-md[RuboCop Markdown] gems together. Here is how you can use both by updating your `.rubocop.yml` (assuming your `Gemfile` was updated as well):
[source,yaml]
----
-require:
- - rubocop-md
-
inherit_gem:
caliber: config/all.yml
+
+require:
+ - rubocop-md
----
Adding additional RuboCop gems only requires adding them to your YAML configuration.
== Development
@@ -222,10 +249,11 @@
When both RuboCop and Caliber are in sync, the following will be output:
....
RUBY: ✓
+CAPYBARA: ✓
PERFORMANCE: ✓
THREAD: ✓
RAKE: ✓
RSPEC: ✓
....
@@ -235,10 +263,11 @@
....
RUBY:
* Lint/BinaryOperatorWithIdenticalOperands
* Lint/ConstantDefinitionInBlock
+CAPYBARA: ✓
PERFORMANCE: ✓
THREAD: ✓
RAKE: ✓
RSPEC:
* RSpec/StubbedMock
@@ -253,21 +282,21 @@
[source,bash]
----
bin/rake
----
-== link:https://www.alchemists.io/policies/license[License]
+== link:https://alchemists.io/policies/license[License]
-== link:https://www.alchemists.io/policies/security[Security]
+== link:https://alchemists.io/policies/security[Security]
-== link:https://www.alchemists.io/policies/code_of_conduct[Code of Conduct]
+== link:https://alchemists.io/policies/code_of_conduct[Code of Conduct]
-== link:https://www.alchemists.io/policies/contributions[Contributions]
+== link:https://alchemists.io/policies/contributions[Contributions]
-== link:https://www.alchemists.io/projects/caliber/versions[Versions]
+== link:https://alchemists.io/projects/caliber/versions[Versions]
-== link:https://www.alchemists.io/community[Community]
+== link:https://alchemists.io/community[Community]
== Credits
-* Built with link:https://www.alchemists.io/projects/gemsmith[Gemsmith].
-* Engineered by link:https://www.alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].
+* Built with link:https://alchemists.io/projects/gemsmith[Gemsmith].
+* Engineered by link:https://alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].