Sha256: fc2dfcb8f8a122c8fcf9b5b3b24f25c32a88864a2714762413abda5de8224392

Contents?: true

Size: 587 Bytes

Versions: 1

Compression:

Stored size: 587 Bytes

Contents

module BlueprintsBoy
  class Registry
    attr_reader :built, :parent, :names

    def initialize(names, parent)
      @names = names
      @parent = parent
      @built = Set.new
      @built.merge(parent.built) if parent

      @stored = {}
    end

    def store(data)
      data.each do |name, value|
        @stored[name] = Marshal.dump(value)
      end
    end

    def restore
      data = @stored.each_with_object({}) do |(name, dump), result|
        result[name] = Marshal.load(dump)
      end
      data.reverse_merge!(@parent.restore) if @parent
      data
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
blueprints_boy-1.0.0 lib/blueprints_boy/registry.rb