class PactBroker::Client::BaseCommand
Attributes
options[R]
pact_broker_base_url[R]
pact_broker_client_options[R]
params[R]
Public Class Methods
call(params, options, pact_broker_client_options)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 12 def self.call(params, options, pact_broker_client_options) new(params, options, pact_broker_client_options).call end
new(params, options, pact_broker_client_options)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 16 def initialize(params, options, pact_broker_client_options) @params = params @options = options @pact_broker_base_url = pact_broker_client_options.fetch(:pact_broker_base_url) @pact_broker_client_options = pact_broker_client_options end
Public Instance Methods
call()
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 23 def call check_if_command_supported do_call rescue PactBroker::Client::Hal::ErrorResponseReturned => e handle_http_error(e) rescue PactBroker::Client::Error => e handle_ruby_error(e) rescue StandardError => e handle_ruby_error(e, verbose?) end
Private Instance Methods
blue(text)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 93 def blue(text) ::Term::ANSIColor.blue(text) end
check_if_command_supported()
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 78 def check_if_command_supported end
error_message(e, include_backtrace)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 53 def error_message(e, include_backtrace) if json_output? json_error_message(e, include_backtrace) else text_error_message(e, include_backtrace) end end
error_message_as_json(message)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 68 def error_message_as_json(message) { error: { message: message } }.to_json end
green(text)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 89 def green(text) ::Term::ANSIColor.green(text) end
handle_http_error(e)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 39 def handle_http_error(e) message = if json_output? body = e.entity.response.raw_body (body.nil? || body == "") ? "{}" : body else red(e.message) end PactBroker::Client::CommandResult.new(false, message) end
handle_ruby_error(e, include_backtrace = false)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 49 def handle_ruby_error(e, include_backtrace = false) PactBroker::Client::CommandResult.new(false, error_message(e, include_backtrace)) end
json_error_message(e, include_backtrace)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 61 def json_error_message(e, include_backtrace) error_hash = { message: e.message } error_hash[:class] = e.class.name unless e.is_a?(PactBroker::Client::Error) error_hash[:backtrace] = e.backtrace if include_backtrace { error: error_hash }.to_json end
json_output?()
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 81 def json_output? options[:output] == "json" end
magenta(text)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 97 def magenta(text) ::Term::ANSIColor.magenta(text) end
red(text)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 101 def red(text) ::Term::ANSIColor.red(text) end
text_error_message(e, include_backtrace)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 72 def text_error_message(e, include_backtrace) maybe_backtrace = (include_backtrace ? "\n" + e.backtrace.join("\n") : "") exception_message = e.is_a?(PactBroker::Client::Error) ? e.message : "#{e.class} - #{e.message}" red(exception_message) + maybe_backtrace end
verbose?()
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 85 def verbose? options[:verbose] end
yellow(text)
click to toggle source
# File lib/pact_broker/client/base_command.rb, line 105 def yellow(text) ::Term::ANSIColor.yellow(text) end