class Train::Transports::Mock
Public Class Methods
new(conf = nil)
click to toggle source
# File lib/train/transports/mock.rb, line 13 def initialize(conf = nil) @conf = conf || {} trace_calls if @conf[:trace] end
Public Instance Methods
connection()
click to toggle source
# File lib/train/transports/mock.rb, line 18 def connection @connection ||= Connection.new(@conf) end
to_s()
click to toggle source
# File lib/train/transports/mock.rb, line 22 def to_s 'Mock Transport' end
Private Instance Methods
trace_calls()
click to toggle source
# File lib/train/transports/mock.rb, line 28 def trace_calls interface_methods = { 'Train::Transports::Mock' => Train::Transports::Mock.instance_methods(false), 'Train::Transports::Mock::Connection' => Connection.instance_methods(false), 'Train::Transports::Mock::Connection::File' => Connection::FileCommon.instance_methods(false), 'Train::Transports::Mock::Connection::OS' => Connection::OSCommon.instance_methods(false), } # rubocop:disable Metrics/ParameterLists # rubocop:disable Lint/Eval set_trace_func proc { |event, _file, _line, id, binding, classname| unless classname.to_s.start_with?('Train::Transports::Mock') and event == 'call' and interface_methods[classname.to_s].include?(id) next end # kindly borrowed from the wonderful simple-tracer by matugm arg_names = eval( 'method(__method__).parameters.map { |arg| arg[1].to_s }', binding) args = eval("#{arg_names}.map { |arg| eval(arg) }", binding).join(', ') prefix = '-' * (classname.to_s.count(':') - 2) + '> ' puts("#{prefix}#{id} #{args}") } # rubocop:enable all end