Sha256: 6dda6cdd0f7a51a892013bd8ec1a1605642b03918ec2d3d60493d2aa16d8f719
Contents?: true
Size: 1.02 KB
Versions: 10
Compression:
Stored size: 1.02 KB
Contents
require 'thread' module Seahorse module Model class Operations def initialize(raw_data = {}) @raw = raw_data.dup @loaded = {} @mutex = Mutex.new end def [](name) name = name.to_s @mutex.synchronize do if @raw.key?(name) @loaded[name] = Operation.from_hash(@raw.delete(name)) else @loaded[name] end end end def []=(name, value) name = name.to_s @mutex.synchronize do @raw.delete(name) @loaded[name] = value end end def load! @raw.keys.each { |key| self[key] } end def keys @mutex.synchronize do (@loaded.keys + @raw.keys).sort end end def values self.load! @loaded.values end def each(&block) self.load! @loaded.each(&block) end def to_h self.load! @loaded.dup end alias to_hash to_h end end end
Version data entries
10 entries across 10 versions & 1 rubygems