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
Calls superclass method
HammerCLI::AbstractCommand::create_option_builder
# 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
Protected Class Methods
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) completion_type_for(option, opts) end extend_options_help(option) if option.value_formatter.is_a?(HammerCLI::Options::Normalizers::ListNested) 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
# File lib/hammer_cli/apipie/command.rb, line 68 def print_data(data, options = {}) print_collection(output_definition, data, options) unless output_definition.empty? print_success_message(data) unless success_message.nil? end
print_success_message(response)
click to toggle source
# File lib/hammer_cli/apipie/command.rb, line 77 def print_success_message(response) print_message( success_message, success_message_params(response) ) end
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