Thor Add-ons
Extend Thor with useful Add-ons
Installation
gem install thor-addons
Usage
Options
The Options
module allows you to read the CLI options from a configuration file or/and environment variables.
include the Options module to your Thor class.
require 'thor'
require 'thor_addons'
class CLI < Thor
include ThorAddons::Options
class_option :config_file, type: :string, default: "config.yml", desc: "Configuration file for the CLI"
method_option :bar, type: :string, default: "biz", desc: "some option"
desc "foo", "install one of the available apps"
def foo
# code
end
end
In the example above the --bar
option will be read from the configuration file --config-file
foo:
bar: "zip"
and via the environment variable BAR
if you want to disable the configuration file you need to set in your class
def with_config_file?
false
end
and for disabling the environment variables
def with_env?
false
end
you can also have environment variables aliases, by setting
def envs_aliases
# source => alias
{ "BAR" => "MY_BAR" }
end
The cli will set bar with the value of BAR
or MY_BAR
if BAR
is not set.
This module will set the options in this order: cli options, config file, environment variables
Contributing
If you would like to help, please read the CONTRIBUTING file for suggestions.
License
Released under the MIT License. See the LICENSE file for further details.