Sha256: 5b26459e91b31e8f00ad7f9f50a4f20954144147187b9d038fb7fb480bc5e5c8

Contents?: true

Size: 525 Bytes

Versions: 6

Compression:

Stored size: 525 Bytes

Contents

class HashDependency
  def initialize
    @hash_depedencies = {}
  end

  def depend(key)
    ensure_key(key).depend
  end

  def changed!(key)
    ensure_key(key).changed!
  end

  def delete(key)
    dep = @hash_depedencies[key]

    if dep
      dep.changed!
      dep.remove
    end

    @hash_depedencies.delete(key)
  end

  def changed_all!
    @hash_depedencies.each_pair do |key,value|
      value.changed!
    end
  end

  private
    def ensure_key(key)
      @hash_depedencies[key] ||= Dependency.new
    end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
volt-0.8.14 lib/volt/reactive/hash_dependency.rb
volt-0.8.13 lib/volt/reactive/hash_dependency.rb
volt-0.8.11 lib/volt/reactive/hash_dependency.rb
volt-0.8.10 lib/volt/reactive/hash_dependency.rb
volt-0.8.9 lib/volt/reactive/hash_dependency.rb
volt-0.8.8 lib/volt/reactive/hash_dependency.rb