universe_compiler 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 46d2b21ce9c76579d82e7f06287ebf7606473dc9
4
- data.tar.gz: 661e0e6951b00b4f359633e0ee72c3395c274846
3
+ metadata.gz: d256ae13a9eb6174c59a92d01bb860baa649e6b9
4
+ data.tar.gz: 07ba9b868278c7ac2c5a4053172c1920054ca055
5
5
  SHA512:
6
- metadata.gz: 75c8e7108b07624c35daa5cc5f696035cd65ff3f4206c9f94a3bd541194a23c7987bb83fa79d0b562dbc165a6851981a1b16f2d16042574f9100ed81ac942ba0
7
- data.tar.gz: 6a55fb45b6d49a3efc8f40d0f6a6cbddc0f4f816053325bb5364d9e516f200101b9581acd23a553901051f557f5e4465773e6f381a6a60aabbd1946ac3bd1e48
6
+ metadata.gz: 8496814e0145eb3ab74c74002f1660e940e30515a17a5ccf00f8d29edee573570d383ece1d747116d54059bd6c20a4cb4d8d0ba263dee2471091d6d966cab659
7
+ data.tar.gz: 20338acead3b97f9b88f76448d1df5b4d0394e1a6f61e0a5318901f8b4341bae46d664eefcb3ea1f25e1a85424014d09c9fe0a683b69053dd6727ebe4d49ad70
@@ -18,8 +18,7 @@ module UniverseCompiler
18
18
  include UniverseCompiler::Entity::Overridden
19
19
  include UniverseCompiler::Entity::Persistence
20
20
 
21
- attr_reader :fields
22
- attr_accessor :universe
21
+ attr_reader :fields, :universe
23
22
 
24
23
  field_accessor :name
25
24
 
@@ -38,6 +37,15 @@ module UniverseCompiler
38
37
  end
39
38
  end
40
39
 
40
+ def universe=(a_universe)
41
+ unless fully_resolved?
42
+ deep_map fields do |leaf|
43
+ leaf.universe = universe if leaf.is_a? UniverseCompiler::Entity::Reference
44
+ end
45
+ end
46
+ @universe = a_universe
47
+ end
48
+
41
49
  def [](key)
42
50
  fields[key]
43
51
  end
@@ -54,6 +54,9 @@ module UniverseCompiler
54
54
  end
55
55
  end
56
56
  # Then delete the entity
57
+ if entity.respond_to? :'universe='
58
+ entity.universe = nil
59
+ end
57
60
  entities.delete entity
58
61
  reindex_all entities
59
62
  unless impacted_entities.empty?
@@ -96,6 +99,12 @@ module UniverseCompiler
96
99
  end
97
100
  # Then replace the entity
98
101
  entities[entities.index(entity)] = by
102
+ if entity.respond_to? :'universe='
103
+ entity.universe = nil
104
+ end
105
+ if by.respond_to? :'universe='
106
+ by.universe = self
107
+ end
99
108
  reindex_all entities
100
109
  unless impacted_entities.empty?
101
110
  UniverseCompiler.logger.warn "Impacts of '#{entity.as_path}' deletion:"
@@ -107,6 +116,7 @@ module UniverseCompiler
107
116
  end
108
117
 
109
118
  def clear
119
+ entities.each { |e| e.universe = nil }
110
120
  entities.clear
111
121
  clear_indices
112
122
  end
@@ -1,3 +1,3 @@
1
1
  module UniverseCompiler
2
- VERSION = '0.5.1'.freeze
2
+ VERSION = '0.5.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: universe_compiler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laurent B.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-12 00:00:00.000000000 Z
11
+ date: 2019-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler