module Rubymisc

This module encapsulates the entry point functionality to the extension modules.

This module encapsulates top level class methods.

Constants

VERSION

Public Class Methods

log_at_exit_error(log_to) click to toggle source
# File lib/rubymisc/self.rb, line 6
def log_at_exit_error(log_to)
  at_exit { dump_error_to_file(log_to) }
end

Private Class Methods

dump_error_to_file(file) click to toggle source
# File lib/rubymisc/self.rb, line 10
def dump_error_to_file(file)
  if $!
    File.open(file, 'a:utf-8:utf-8') do |log|
      error = { timestamp: Time.now,
                message:   $!.message,
                backtrace: $!.backtrace,
                gems:      Gem.loaded_specs.inject({}) { |m, (n, s)| m.merge(n => s.version.to_s) } }
      require 'yaml'
      YAML.dump(error, log)
    end
  end
end