module Eco class CLI class Config class OptionsSet attr_reader :core_config def initialize(core_config:) @core_config = core_config @options_set = {} end def add(option) raise "Missing block to define the options builder" unless block_given? callback = Proc.new [option].flatten.compact.each do |opt| @options_set[opt] = callback end self end def process(io:) unless io && io.is_a?(Eco::API::UseCases::BaseIO) raise "You need to provide Eco::API::UseCases::BaseIO object. Given: #{io.class}" end @options_set.each do |arg, callback| callback.call(io.options) if SCR.get_arg(arg) end io.options end end end end end