module NeverBounce::CLI::Feature::Envars::ClassMethods
Attributes
envars[W]
Public Instance Methods
envars()
click to toggle source
# File lib/never_bounce/cli/feature/envars.rb, line 19 def envars @envars ||= if superclass.respond_to? :envars superclass.envars.dup else [] end end
Private Instance Methods
define_envar(name, comment, is_mandatory: false, examples: [], default: nil)
click to toggle source
Define an envar in a formal way. @param name [String] @param comment [String] @return [Item]
# File lib/never_bounce/cli/feature/envars.rb, line 34 def define_envar(name, comment, is_mandatory: false, examples: [], default: nil) Item.new({ name: name, comment: comment, default: default, examples: examples, is_mandatory: is_mandatory, }).tap { |_| envars << _ } end
envar(name, comment, examples = [])
click to toggle source
Declare an envar in a concise and magical way.
envar "ID", "Job ID" => define_envar "ID", "Job ID" envar "API_KEY*", "API key", ["2ed45186c72f9319dc64338cdf16ab76b44cf3d1"] # => define_envar "API_KEY", "API key", is_mandatory: true, examples: [...] envar "RAW", "Print raw response body", ["y", default: "N"] # => define_envar "RAW", "Print raw response body", examples: ["y", "N"], default: "N"
# File lib/never_bounce/cli/feature/envars.rb, line 53 def envar(name, comment, examples = []) options = {} real_name = if name[-1] == "*" options[:is_mandatory] = true name[0..-2] else name end if not examples.empty? h = ExamplesMapper.new[examples] options[:examples] = h[:values] options[:default] = h[:default] if h.include?(:default) end define_envar(real_name, comment, options) end