- Ruby 100%
|
dmathieu
36bd227614
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [rubocop](https://rubocop.org/) ([source](https://github.com/rubocop/rubocop), [changelog](https://github.com/rubocop/rubocop/releases/tag/v1.88.2)) | `1.88.1` → `1.88.2` |  |  | > ❗ **Important** > > Release Notes retrieval for this PR were skipped because no github.com credentials were available. > If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes). --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJydWJ5Il19--> Co-authored-by: Renovate Bot <forgejo-renovate-action@dmathieu.com> Reviewed-on: #129 |
||
|---|---|---|
| .forgejo/workflows | Update https://data.forgejo.org/actions/cache action to v6 ( #128 ) | |
| lib | release v0.1.0 | |
| spec | Refresh ENV on every walk instead of snapshotting at initialization | |
| .gitignore | add code coverage | |
| .rubocop.yml | Refresh ENV on every walk instead of snapshotting at initialization | |
| .ruby-version | Update dependency ruby to v4.0.5 ( #122 ) | |
| Gemfile | add code coverage | |
| Gemfile.lock | Update dependency rubocop to v1.88.2 ( #129 ) | |
| LICENSE | switch license to AGPL | |
| Rakefile | init repository | |
| README.md | fix gem name in readme | |
| renovate.json | fix json | |
| smart_config.gemspec | move repo in gemspec | |
Smart Config
We have "smart" toothbrushes these days, so why not smart configuration?
Note: As you can see in the version number, this gem is still in a very early version, and you should expect that there may be breaking changes until we reach 1.0.
Usage
Smart Config allows you to define a static configuration and access it from anywhere within your application. It will try to read the configuration from a YAML file, and fallback on environment variables.
Installation
Add the smart_config dependency to you Gemfile:
gem 'smart_config'
Usage
Then, create a new config class that, and define the configuration you need:
class Config
extend SmartConfig::Config
# Optional. Will default to `config/config.yml`
config_path 'config/app_config.yml'
value :app_name, default: 'My App'
group :smtp do
value :hostname
value :port, format: :integer
value :username
value :password
end
group :redis do
group :connection do
value :hostname
value :port
value :username
value :password
end
value :timeout
end
end
Then, within your application, you can call:
Config.redis.connection.hostname
To access the configuration value, from the following YAML file for example:
redis:connection:hostname:'localhost'For values that are not in the YAML config, the tool will try reading it from environment variables, such as (from the previous configuration):
REDIS_CONNECTION_PASSWORD
Value Options
Values can use options, which can be set after the value name. For example:
value :hostname, default: 'localhost'
All available options are:
| name | description |
|---|---|
| default | Sets a default value for the field, if no configuration could be found. If this option is not set, getting an unset field will raise an exception. |
| format | Sets the format of the field. If this option is not set, the field will be formatted as string. |