Sha256: d7038a6c44952391de8ec4f00907443bfd9517a72f7815b1554acc448ec6d717

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

Kernel.module_eval do

  def all_args_to_ivars(local_binding)
    local_binding.local_variables.each do |lvar|
      instance_variable_set("@#{lvar}", local_binding.local_variable_get(lvar))
    end
  end

  def args_to_ivars(local_binding, *local_vars)
    local_vars.each do |lvar|
      instance_variable_set("@#{lvar}", local_binding.local_variable_get(lvar))
    end
  end

  def all_kwargs_to_ivars(local_binding)
    local_binding.local_variable_get(:kwargs).each do |name, value|
      instance_variable_set "@#{name}", value
    end
  end

  def set_ivars(*ivars)
    ivars.each do |ivar|
      instance_variable_set("@#{ivar}", send("set_#{ivar}"))
    end
  end

  def safe_call(*args, return_value: nil, &block)
    block.call self, *args
    rescue
      return_value
  end

  def safe_send(method, *args, return_value: nil)
    self.send method, *args
    rescue
      return_value
  end

  def raise_error(_class_name, message = nil)   
    Object.const_set(_class_name, Class.new(StandardError)) unless Object.const_defined?(_class_name)
    raise _class_name.constantize.new message
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
eitil-0.3.2 config/initializers/monkeys/kernel.rb
eitil-0.3.1 config/initializers/monkeys/kernel.rb