Module: Ronin::Core::CLI::Printing::Params

Includes:
CommandKit::Printing::Tables
Defined in:
lib/ronin/core/cli/printing/params.rb

Overview

Handles printing params defined on a class.

Constant Summary collapse

PARAM_TABLE_HEADER =

The params table header.

%w[Name Type Required Default Description]

Instance Method Summary collapse

Instance Method Details

#param_usage(param) ⇒ String

Note:

This method is primarily used to help build example commands that accept certain params.

Returns a placeholder usage value for the given param.

Parameters:

Returns:

  • (String)

    The placeholder usage value.

Since:

  • 0.2.0



83
84
85
86
87
88
89
90
91
92
93
# File 'lib/ronin/core/cli/printing/params.rb', line 83

def param_usage(param)
  case param.type
  when Core::Params::Types::Boolean then 'BOOL'
  when Core::Params::Types::Integer then 'NUM'
  when Core::Params::Types::Float   then 'FLOAT'
  when Core::Params::Types::Regexp  then '/REGEX/'
  when Core::Params::Types::URI     then 'URL'
  else
    param.name.upcase
  end
end

Prints the params defined in the given class.

Parameters:



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/ronin/core/cli/printing/params.rb', line 42

def print_params(klass)
  return if klass.params.empty?

  rows = []

  klass.params.each do |name,param|
    param_type  = param.type.class.name.split('::').last
    required    = if param.required? then 'Yes'
                  else                    'No'
                  end
    default     = param.default_value
    description = param.desc

    rows << [name, param_type, required, default, description]
  end

  puts "Params:"
  puts

  indent do
    print_table(rows,header: PARAM_TABLE_HEADER, border: :line)
  end

  puts
end