class Eco::CLI::Config::Input
Attributes
core_config[R]
default_option[R]
Public Class Methods
new(core_config:, default_option: nil)
click to toggle source
# File lib/eco/cli/config/input.rb, line 9 def initialize(core_config:, default_option: nil) @core_config = core_config @default_option = default_option @callbacks = {} end
Public Instance Methods
default_option?()
click to toggle source
# File lib/eco/cli/config/input.rb, line 15 def default_option? !!default_option end
define(option: nil, &block)
click to toggle source
# File lib/eco/cli/config/input.rb, line 19 def define(option: nil, &block) option ||= default_option raise "Missing option to identify the input (no default defined)" unless !!option raise "Missing block to define the input obtention process" unless block @callbacks[option] = block end
get(io:, option: nil)
click to toggle source
# File lib/eco/cli/config/input.rb, line 26 def get(io:, option: nil) unless io && io.is_a?(Eco::API::UseCases::BaseIO) raise "You need to provide Eco::API::UseCases::BaseIO object. Given: #{io.class}" end option ||= default_option raise "Missing option to identify the input (no default defined)" unless !!option callback = @callbacks[option] || @callbacks[default_option] callback.call(io.session, option, io.options) end