module Railjet::Console::RailjetHelpers

Adds helper methods for auditing of console customer usage

Public Class Methods

load() click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 98
def self.load
  Object.include(self)
end

Public Instance Methods

console_context() click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 39
def console_context
  @context_class.init(
    *context_params
  )
end
context_params() click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 53
def context_params
  parameters, missing_methods = find_context_params

  RailjetContextHelper.print_context_param_errors(missing_methods)

  parameters
end
find_context_param(type, method_name) click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 80
def find_context_param(type, method_name)
  send("find_#{type}_context_param", method_name)
end
find_context_params() click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 61
def find_context_params
  parameters = []
  missing_methods = []

  @context_class.method(:init).parameters.each do |param|
    param_value, missing_method_error = find_context_param(
      param[0], param[1]
    )

    parameters.push(param_value)

    if missing_method_error.present?
      missing_methods.push(missing_method_error)
    end
  end

  [parameters, missing_methods]
end
find_key_context_param(method_name)
find_keyreq_context_param(method_name) click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 91
def find_keyreq_context_param(method_name)
  [{ method_name => send(method_name) }, nil]
rescue StandardError => e
  [{ method_name => nil }, { method_name => e.message }]
end
Also aliased as: find_key_context_param
find_opt_context_param(method_name)
find_req_context_param(method_name) click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 84
def find_req_context_param(method_name)
  [send(method_name), nil]
rescue StandardError => e
  [nil, { method_name => e.message }]
end
Also aliased as: find_opt_context_param
form(klass, clean_params) click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 49
def form(klass, clean_params)
  klass.new(clean_params).tap(&:validate)
end
railjet_helper_after_init_message() click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 15
def railjet_helper_after_init_message
  puts 'Setup finished. railjet helpers are now available from console'
  puts 'available commands:'
  puts "\t- use_case(<Class>)"
  puts "\t- form(<Class>, params)"
  puts "\t- console_context"
end
railjet_helper_after_load_message() click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 23
def railjet_helper_after_load_message
  puts '*' * 61
  puts "\nCall 'setup_railjet' to setup and debug Railjet"
  puts 'Argument are:'
  method(:setup_railjet).parameters.each do |param|
    case param[0]
    when :key, :keyreq
      puts "\t- #{param[1]}:"
    else
      puts "\t- #{param[1]}"
    end
  end
  puts "\n"
  puts '*' * 61
end
setup_railjet(context_class: nil) click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 7
def setup_railjet(context_class: nil)
  @context_class = context_class

  @context_class ||= RailjetContextHelper.determine_context_class

  railjet_helper_after_init_message
end
use_case(klass) click to toggle source
# File lib/railjet/console/debug_helpers.rb, line 45
def use_case(klass)
  klass.new(console_context)
end