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.

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.



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