class Idcf::Cli::Service::Base
model base
Constants
- ARG_TYPE_OPT
- ARG_TYPE_REQ
- ARG_TYPE_REST
- HELP_FORMAT
Attributes
options[R]
last_command[R]
last_command_args[R]
Public Class Methods
description()
click to toggle source
descritpion
@return String
# File lib/idcf/cli/service/base.rb, line 42 def description '' end
make_param_s()
click to toggle source
make param string
@return String
# File lib/idcf/cli/service/base.rb, line 49 def make_param_s cp = [] valid_params.each do |param| f = HELP_FORMAT[param[0]] next if f.nil? cp << format(f, name: param[1]) end cp.join(' ') end
new()
click to toggle source
# File lib/idcf/cli/service/base.rb, line 82 def initialize @last_command = '' @last_command_args = [] end
option(name, attr)
click to toggle source
option
@param name [String] @param attr [Hash] @option attr [String] :type @option attr [Boolean] :required @option attr [String] :desc
# File lib/idcf/cli/service/base.rb, line 34 def option(name, attr) @options ||= {} @options[name] = attr end
reset()
click to toggle source
reset setting reset
# File lib/idcf/cli/service/base.rb, line 23 def reset @options = {} end
valid_params()
click to toggle source
# File lib/idcf/cli/service/base.rb, line 59 def valid_params [].tap do |result| new.method(:do).parameters.each do |param| result << param if target_param?(param[1]) end end end
Protected Class Methods
target_param?(name)
click to toggle source
target param?
@param name [String] @return Boolean
# File lib/idcf/cli/service/base.rb, line 73 def target_param?(name) val = name.to_s exclusion_list = %w[api o] return false if exclusion_list.include?(val) return false if val[0] == '_' true end
Public Instance Methods
between_param?(arg_size)
click to toggle source
between params
@param params [Array] @param arg_size [int] @raise
# File lib/idcf/cli/service/base.rb, line 103 def between_param?(arg_size) param = self.class.valid_params p_cnt = param.size return true if method_rest?(param) opt_cnt = method_option_cnt(param) min = p_cnt - opt_cnt msg = format('Argument: %<arg>s', arg: self.class.make_param_s) cli_error msg unless arg_size.between?(min, p_cnt) true end
cli_error(msg)
click to toggle source
cli error
@param msg [String] @raise
# File lib/idcf/cli/service/base.rb, line 150 def cli_error(msg) raise Idcf::Cli::Error::CliError, msg end
do(_client, _o, *_args)
click to toggle source
do
@param _client [Mixed] @param _o [Hash] options @param *_args [Array] @return Hash @raise
# File lib/idcf/cli/service/base.rb, line 94 def do(_client, _o, *_args) cli_error 'Require override' end
method_option_cnt(params)
click to toggle source
option count
@param params [Array] @return int
# File lib/idcf/cli/service/base.rb, line 134 def method_option_cnt(params) result = 0 return result if params.nil? params.each do |param| case param[0] when ARG_TYPE_OPT result += 1 end end result end
method_rest?(params)
click to toggle source
is rest
@param params [Array] @return Boolean
# File lib/idcf/cli/service/base.rb, line 119 def method_rest?(params) return false if params.nil? params.each do |param| case param[0] when ARG_TYPE_REST return true end end false end