Sha256: 38c690b3cac9fab36d7adb519d39ee3f1b4c2a5cdce30bbb7be6dc61f5655b7f

Contents?: true

Size: 731 Bytes

Versions: 2

Compression:

Stored size: 731 Bytes

Contents

class Thread
  def __dynamic_vars__
    @dynamic_vars ||= {}
    @dynamic_vars
  end
  private :__dynamic_vars__

  def dynamic_vars
    __dynamic_vars__.keys
  end

  def get_dynamic_variable(var)
    var = var.to_s
    __dynamic_vars__[var]
  end

  def set_dynamic_variable(var, val)
    var = var.to_s
    __dynamic_vars__[var] = val
  end

  def copy_dynamic_variables_from(other_thread)
    other_thread.send(:__dynamic_vars__).each do |var, val|
      self.set_dynamic_variable(var, val)
    end
  end

  class << self
    alias_method :old_new, :new
    def new(*args, &block)
      parent = current
      old_new(*args) do
        current.copy_dynamic_variables_from(parent)
        block.call
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fancy-0.10.0 boot/fancy_ext/thread.rb
fancy-0.9.0 boot/fancy_ext/thread.rb