class HammerCLI::CommandExtensions
Constants
- ALLOWED_EXTENSIONS
Attributes
delegatee[RW]
Public Class Methods
before_print(&block)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 57 def self.before_print(&block) @before_print_block = block end
extend_before_print(data)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 173 def self.extend_before_print(data) return if @before_print_block.nil? @before_print_block.call(data) logger.debug("Called block for #{@delegatee} data:\n\t#{@before_print_block}") end
extend_help(command_class)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 187 def self.extend_help(command_class) return if @help_extension_block.nil? command_class.help_extension_blocks << @help_extension_block logger.debug("Saved block for #{@delegatee} help definition:\n\t#{@help_extension_block}") end
extend_option_sources(sources, command = nil)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 215 def self.extend_option_sources(sources, command = nil) return if @option_sources_block.nil? @option_sources_block.call(sources, command) logger.debug("Called block for #{@delegatee} option sources:\n\t#{@option_sources_block}") end
extend_options(command_class)
click to toggle source
Class
# File lib/hammer_cli/command_extensions.rb, line 159 def self.extend_options(command_class) return if @options.nil? @options.each do |option| command_class.send(:option, option[:switches], option[:type], option[:description], option[:opts], &option[:block]) logger.debug("Added option for #{command_class}: #{option}") end end
extend_output(command_class)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 180 def self.extend_output(command_class) return if @output_extension_block.nil? @output_extension_block.call(command_class.output_definition) logger.debug("Called block for #{@delegatee} output definition:\n\t#{@output_extension_block}") end
extend_request_headers(headers)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 194 def self.extend_request_headers(headers) return if @request_headers_block.nil? @request_headers_block.call(headers) logger.debug("Called block for #{@delegatee} request headers:\n\t#{@request_headers_block}") end
extend_request_options(options)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 201 def self.extend_request_options(options) return if @request_options_block.nil? @request_options_block.call(options) logger.debug("Called block for #{@delegatee} request options:\n\t#{@request_options_block}") end
extend_request_params(params)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 208 def self.extend_request_params(params) return if @request_params_block.nil? @request_params_block.call(params) logger.debug("Called block for #{@delegatee} request params:\n\t#{@request_params_block}") end
help(&block)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 65 def self.help(&block) @help_extension_block = block end
inheritable(boolean)
click to toggle source
DSL
# File lib/hammer_cli/command_extensions.rb, line 45 def self.inheritable(boolean) @inheritable = boolean end
inheritable?()
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 10 def inheritable? @inheritable end
logger()
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 6 def logger Logging.logger[to_s] end
method_missing(message, *args, &block)
click to toggle source
Calls superclass method
# File lib/hammer_cli/command_extensions.rb, line 35 def self.method_missing(message, *args, &block) if @delegatee @delegatee.send(message, *args, &block) else super end end
new(options = {})
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 21 def initialize(options = {}) @only = options[:only] || ALLOWED_EXTENSIONS @only = [@only] unless @only.is_a?(Array) @except = options[:except] || [] @except = [@except] unless @except.is_a?(Array) @inheritable = options[:inheritable] end
option(switches, type, description, opts = {}, &block)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 49 def self.option(switches, type, description, opts = {}, &block) @options ||= [] @options << { switches: switches, type: type, description: description, opts: opts, block: block } end
option_sources(&block)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 81 def self.option_sources(&block) @option_sources_block = block end
output(&block)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 61 def self.output(&block) @output_extension_block = block end
request_headers(&block)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 69 def self.request_headers(&block) @request_headers_block = block end
request_options(&block)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 73 def self.request_options(&block) @request_options_block = block end
request_params(&block)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 77 def self.request_params(&block) @request_params_block = block end
Public Instance Methods
delegatee(command_class)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 143 def delegatee(command_class) self.class.delegatee = command_class end
details()
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 147 def details except = @except.empty? ? '*nothing*' : @except details = if @only == ALLOWED_EXTENSIONS "*all* except #{except}" else "#{@only} only" end "#{self.class} for #{details}" end
extend_before_print(data)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 94 def extend_before_print(data) allowed = @only & %i[before_print data] return if allowed.empty? || (allowed & @except).any? self.class.extend_before_print(data) end
extend_help(command_class)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 108 def extend_help(command_class) allowed = @only & %i[help] return if allowed.empty? || (allowed & @except).any? self.class.extend_help(command_class) end
extend_option_sources(sources, command = nil)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 136 def extend_option_sources(sources, command = nil) allowed = @only & %i[option_sources] return if allowed.empty? || (allowed & @except).any? self.class.extend_option_sources(sources, command) end
extend_options(command_class)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 87 def extend_options(command_class) allowed = @only & %i[command_options option] return if allowed.empty? || (allowed & @except).any? self.class.extend_options(command_class) end
extend_output(command_class)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 101 def extend_output(command_class) allowed = @only & %i[output] return if allowed.empty? || (allowed & @except).any? self.class.extend_output(command_class) end
extend_request_headers(headers)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 115 def extend_request_headers(headers) allowed = @only & %i[request_headers headers request] return if allowed.empty? || (allowed & @except).any? self.class.extend_request_headers(headers) end
extend_request_options(options)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 122 def extend_request_options(options) allowed = @only & %i[request_options options request] return if allowed.empty? || (allowed & @except).any? self.class.extend_request_options(options) end
extend_request_params(params)
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 129 def extend_request_params(params) allowed = @only & %i[request_params params request] return if allowed.empty? || (allowed & @except).any? self.class.extend_request_params(params) end
inheritable?()
click to toggle source
# File lib/hammer_cli/command_extensions.rb, line 29 def inheritable? return @inheritable unless @inheritable.nil? self.class.inheritable? || false end