Module: CapistranoMulticonfigParallel::CoreHelper
- Included in:
- ApplicationHelper
- Defined in:
- lib/capistrano_multiconfig_parallel/helpers/core_helper.rb
Overview
class that holds the options that are configurable for this gem
Class Method Summary collapse
- .app_debug_enabled? ⇒ Boolean
- .ask_confirm(message, default) ⇒ Object
- .ask_stdout_confirmation(message, default) ⇒ Object
- .check_terminal_tty ⇒ Object
- .debug_websocket? ⇒ Boolean
- .error_filtered?(error) ⇒ Boolean
- .execute_with_rescue(output = nil) ⇒ Object
- .find_worker_log(job_id) ⇒ Object
- .force_confirmation(&block) ⇒ Object
- .format_error(exception) ⇒ Object
- .log_error(error, output = nil) ⇒ Object
- .log_output_error(output, message) ⇒ Object
- .log_to_file(message, options = {}) ⇒ Object
- .print_to_log_file(worker_log, options = {}) ⇒ Object
- .rescue_error(error, output = nil) ⇒ Object
- .rescue_interrupt ⇒ Object
- .setup_filename_logger(filename) ⇒ Object
- .setup_logger_formatter(logger) ⇒ Object
- .show_warning(message) ⇒ Object
- .websocket_config ⇒ Object
- .websocket_server_config ⇒ Object
Class Method Details
.app_debug_enabled? ⇒ Boolean
6 7 8 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 6 def app_debug_enabled? configuration.multi_debug.to_s.downcase == 'true' end |
.ask_confirm(message, default) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 25 def ask_confirm(, default) force_confirmation do ask_stdout_confirmation(, default) end rescue return nil end |
.ask_stdout_confirmation(message, default) ⇒ Object
19 20 21 22 23 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 19 def ask_stdout_confirmation(, default) result = Ask.input , default: default $stdout.flush result end |
.check_terminal_tty ⇒ Object
14 15 16 17 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 14 def check_terminal_tty $stdin.sync = true if $stdin.isatty $stdout.sync = true if $stdout.isatty end |
.debug_websocket? ⇒ Boolean
97 98 99 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 97 def debug_websocket? websocket_server_config['enable_debug'].to_s == 'true' end |
.error_filtered?(error) ⇒ Boolean
41 42 43 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 41 def error_filtered?(error) [CapistranoMulticonfigParallel::CelluloidWorker::TaskFailed].find { |class_name| error.is_a?(class_name) }.present? end |
.execute_with_rescue(output = nil) ⇒ Object
110 111 112 113 114 115 116 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 110 def execute_with_rescue(output = nil) yield if block_given? rescue Interrupt rescue_interrupt rescue => error rescue_error(error, output) end |
.find_worker_log(job_id) ⇒ Object
76 77 78 79 80 81 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 76 def find_worker_log(job_id) return if job_id.blank? FileUtils.mkdir_p(log_directory) unless File.directory?(log_directory) filename = File.join(log_directory, "worker_#{job_id}.log") setup_filename_logger(filename) end |
.force_confirmation(&block) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 33 def force_confirmation(&block) `stty -raw echo` check_terminal_tty result = block.call `stty -raw echo` result end |
.format_error(exception) ⇒ Object
58 59 60 61 62 63 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 58 def format_error(exception) = "\n#{exception.class} (#{exception.respond_to?(:message) ? exception.message : exception.inspect}):\n" << exception.annoted_source_code.to_s if exception.respond_to?(:annoted_source_code) << ' ' << exception.backtrace.join("\n ") if exception.respond_to?(:backtrace) end |
.log_error(error, output = nil) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 45 def log_error(error, output = nil) return if error_filtered?(error) = format_error(error) log_output_error(output, ) log_to_file(, log_method: 'fatal') end |
.log_output_error(output, message) ⇒ Object
52 53 54 55 56 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 52 def log_output_error(output, ) puts if output.present? terminal = Celluloid::Actor[:terminal_server] terminal.errors.push() if terminal.present? && terminal.alive? end |
.log_to_file(message, options = {}) ⇒ Object
65 66 67 68 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 65 def log_to_file(, = {}) worker_log = .fetch(:job_id, '').present? ? find_worker_log([:job_id]) : logger print_to_log_file(worker_log, .merge(message: )) if worker_log.present? && app_debug_enabled? end |
.print_to_log_file(worker_log, options = {}) ⇒ Object
70 71 72 73 74 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 70 def print_to_log_file(worker_log, = {}) ActiveSupport::Deprecation.silence do worker_log.send(.fetch(:log_method, 'debug'), "#{options.fetch(:message, '')}\n") end end |
.rescue_error(error, output = nil) ⇒ Object
118 119 120 121 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 118 def rescue_error(error, output = nil) log_error(error, output) exit(1) end |
.rescue_interrupt ⇒ Object
123 124 125 126 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 123 def rescue_interrupt `stty icanon echo` puts "\n Command was cancelled due to an Interrupt error." end |
.setup_filename_logger(filename) ⇒ Object
83 84 85 86 87 88 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 83 def setup_filename_logger(filename) worker_log = ::Logger.new(filename) worker_log.level = ::Logger::Severity::DEBUG setup_logger_formatter(worker_log) worker_log end |
.setup_logger_formatter(logger) ⇒ Object
90 91 92 93 94 95 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 90 def setup_logger_formatter(logger) logger.formatter = proc do |severity, datetime, progname, msg| date_format = datetime.strftime('%Y-%m-%d %H:%M:%S') "[#{date_format}] #{severity} (#{progname}): #{msg}\n" end end |
.show_warning(message) ⇒ Object
10 11 12 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 10 def show_warning() warn if app_debug_enabled? end |
.websocket_config ⇒ Object
105 106 107 108 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 105 def websocket_config create_log_file(websocket_server_config.fetch('log_file_path', nil)) if debug_websocket? websocket_server_config.merge('enable_debug' => debug_websocket?, 'use_redis' => false) end |
.websocket_server_config ⇒ Object
101 102 103 |
# File 'lib/capistrano_multiconfig_parallel/helpers/core_helper.rb', line 101 def websocket_server_config configuration.fetch(:websocket_server, {}).stringify_keys end |