class HammerCLI::Apipie::Command

Public Class Methods

apipie_options(*args) click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 29
def self.apipie_options(*args)
  self.build_options(*args)
end
create_option_builder() click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 21
def self.create_option_builder
  builder = super
  builder.builders += [
    OptionBuilder.new(resource, resource.action(action), :require_options => false)
  ] if resource_defined?
  builder
end
desc(desc=nil) click to toggle source
Calls superclass method HammerCLI::AbstractCommand::desc
# File lib/hammer_cli/apipie/command.rb, line 15
def self.desc(desc=nil)
  super(desc) || resource.action(action).apidoc[:apis][0][:short_description] || " "
rescue
  " "
end
option(switches, type, description, opts = {}, &block) click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 84
def self.option(switches, type, description, opts = {}, &block)
  option = HammerCLI::Apipie::OptionDefinition.new(switches, type, description, opts).tap do |option|
    declared_options << option
    block ||= option.default_conversion_block
    define_accessors_for(option, &block)
    add_option_schema(option) if option.value_formatter.is_a?(HammerCLI::Options::Normalizers::ListNested)
    completion_type_for(option, opts)
  end
  option
end

Public Instance Methods

execute() click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 33
def execute
  d = send_request
  print_data(d)
  return HammerCLI::EX_OK
end
help() click to toggle source
Calls superclass method HammerCLI::AbstractCommand#help
# File lib/hammer_cli/apipie/command.rb, line 39
def help
  help_str = super
  if !resource || (!action.nil? && !resource.has_action?(action))
    help_str << "\n" + _("Unfortunately the server does not support such operation.") + "\n"
  end
  help_str
end

Protected Instance Methods

print_data(data, options = {}) click to toggle source
print_success_message(response) click to toggle source
request_headers() click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 56
def request_headers
  {}
end
request_options() click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 60
def request_options
  {}
end
request_params() click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 64
def request_params
  method_options(options)
end
send_request() click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 49
def send_request
  unless resource && resource.has_action?(action)
    raise HammerCLI::OperationNotSupportedError, _('The server does not support such operation.')
  end
  extended_data(resource.call(action, *extended_request))
end
success_message_params(response) click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 73
def success_message_params(response)
  response
end

Private Instance Methods

extended_data(data) click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 109
def extended_data(data)
  self.class.command_extensions.each do |extension|
    extension.extend_before_print(data)
  end
  data
end
extended_request() click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 97
def extended_request
  params = request_params
  headers = request_headers
  options = request_options
  self.class.command_extensions.each do |extension|
    extension.extend_request_headers(headers)
    extension.extend_request_options(options)
    extension.extend_request_params(params)
  end
  [params, headers, options]
end