universe_compiler 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
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