Class: BlueprintsBoy::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/blueprints_boy/registry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(names, parent) ⇒ Registry

Returns a new instance of Registry.



5
6
7
8
9
10
11
12
# File 'lib/blueprints_boy/registry.rb', line 5

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

  @stored = {}
end

Instance Attribute Details

#builtObject (readonly)

Returns the value of attribute built.



3
4
5
# File 'lib/blueprints_boy/registry.rb', line 3

def built
  @built
end

#namesObject (readonly)

Returns the value of attribute names.



3
4
5
# File 'lib/blueprints_boy/registry.rb', line 3

def names
  @names
end

#parentObject (readonly)

Returns the value of attribute parent.



3
4
5
# File 'lib/blueprints_boy/registry.rb', line 3

def parent
  @parent
end

Instance Method Details

#restoreObject



20
21
22
23
24
25
26
# File 'lib/blueprints_boy/registry.rb', line 20

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

#store(data) ⇒ Object



14
15
16
17
18
# File 'lib/blueprints_boy/registry.rb', line 14

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