class Object

Public Class Methods

attr_chain(variable_name, *attr_configs) click to toggle source

Configurable accessor methods @see AttrChain @return [void]

# File lib/util/attr_chain.rb, line 246
def self.attr_chain(variable_name, *attr_configs)
  AttrChain.new(self, variable_name, attr_configs)
end
const_get_full(full_class_name) click to toggle source

Resolves fully qualified class named including modules: Ki::KiCommand

# File lib/util/ruby_extensions.rb, line 132
def Object.const_get_full(full_class_name)
  class_or_module = self
  full_class_name.split("::").each do |name|
    class_or_module = class_or_module.const_get(name)
  end
  class_or_module
end

Public Instance Methods

show_errors(&block) click to toggle source

if block raises an exception outputs the error message. returns block's exit value or reraises the exception

# File lib/util/ruby_extensions.rb, line 122
def show_errors(&block)
  begin
    block.call
  rescue Exception => e
    puts "Exception '#{e.message}':\n#{e.backtrace.join("\n")}"
    raise
  end
end
try(retries, retry_sleep, &block) click to toggle source
# File lib/util/ruby_extensions.rb, line 140
def try(retries, retry_sleep, &block)
  c = 0
  start = Time.now
  while c < retries
    begin
      return block.call(c+1)
    rescue Exception => e
      c += 1
      if c < retries
        sleep retry_sleep
      else
        raise e.class, e.message + " (tried #{c} times, waited #{sprintf("%.2f", Time.now - start)} seconds)", e.backtrace
      end
    end
  end
end