lib/atome/genesis/generators/identity.rb in atome-0.5.3.4 vs lib/atome/genesis/generators/identity.rb in atome-0.5.3.7.2
- old
+ new
@@ -1,89 +1,142 @@
# frozen_string_literal: true
-generator = Genesis.generator
-
-generator.build_particle(:type)
-generator.build_particle(:parents)
-generator.build_particle(:children)
-generator.build_option(:pre_render_parents) do |parents_ids|
- parents_ids.each do |parents_id|
- parents_id = parents_id.value if parents_id.instance_of? Atome
- parents_found = grab(parents_id)
- family(parents_id)
- parents_found.atome[:children] << atome[:id]
+new({ particle: :attached })
+new({ sanitizer: :attached }) do |params|
+ unless params.instance_of? Array
+ params = [params]
end
+ params
end
-
-generator.build_option(:pre_render_children) do |children_ids|
+new({ pre: :attached }) do |children_ids|
children_ids.each do |child_id|
child_id = child_id.value if child_id.instance_of? Atome
child_found = grab(child_id)
- parents_found=@atome[:id]
+ parents_found = @atome[:id]
child_found.family(parents_found)
+ # parents_found.atome[:attach] = [] unless parents_found.atome[:attach]
+ child_found.atome[:attach] = [parents_found]
+ end
+end
+new({ particle: :type })
+new({ particle: :children })
+new({ pre: :children }) do |children_ids|
+ children_ids.each do |child_id|
+ child_id = child_id.value if child_id.instance_of? Atome
+ child_found = grab(child_id)
+ parents_found = @atome[:id]
+ # FIXME : broadcast may malfunction because of the commented line below,
+ # FIXME suite : if uncomment object hierreachy is broken (cf Vie Project)
+ # child_found.family(parents_found)
child_found.atome[:parents] = [parents_found]
end
end
-
-generator.build_particle(:family,{render: true,store: false})
-
-
-generator.build_particle(:link) do |child_id|
- child_found = grab(child_id)
- child_found.atome[:parents] << @atome[:id]
- child_found.refresh
+new({ particle: :parents })
+new({ pre: :parents }) do |parents_ids|
+ parents_ids.each do |parents_id|
+ parents_id = parents_id.value if parents_id.instance_of? Atome
+ parents_found = grab(parents_id)
+ family(parents_id)
+ parents_found.atome[:children] << atome[:id]
+ end
end
-
-generator.build_particle(:id)
-generator.build_sanitizer(:id) do |params|
+new({ particle: :family })
+new({ particle: :link })
+new({ particle: :id })
+new({ sanitizer: :id }) do |params|
if @atome[:id] != params
Universe.update_atome_id(params, self, @atome[:id])
else
Universe.add_to_atomes(params, self)
end
params
end
-
-generator.build_particle(:name)
-
-generator.build_particle(:active)
-
-generator.build_particle(:attach)
-generator.build_particle(:attached)
-
-generator.build_option(:pre_render_attach) do |parents_ids|
+new({ particle: :name })
+new({ particle: :active })
+new({ particle: :attach })
+new({ pre: :attach }) do |parents_ids|
parents_ids.each do |parents_id|
parents_id = parents_id.value if parents_id.instance_of? Atome
parents_found = grab(parents_id)
family(parents_id)
parents_found.atome[:attached] = [] unless parents_found.atome[:attached]
parents_found.atome[:attached] << atome[:id]
end
end
-
-generator.build_option(:pre_render_attached) do |children_ids|
- children_ids.each do |child_id|
- child_id = child_id.value if child_id.instance_of? Atome
- child_found = grab(child_id)
- parents_found=@atome[:id]
- child_found.family(parents_found)
- # parents_found.atome[:attach] = [] unless parents_found.atome[:attach]
- child_found.atome[:attach] = [parents_found]
- end
-end
-
-generator.build_particle(:intricate, {type: :array })
-
-
-generator.build_particle(:clones) do |clones_found|
- clones_found.each_with_index do |clone_found, index|
- particles_intricated= clone_found[:intricate] ||= []
- clone_id="#{particles[:id]}_clone_#{index}"
- original_id=atome[:id]
+new({ particle: :detached })
+new({ particle: :intricate, type: :array })
+new({ particle: :clones }) do |clones_found|
+ clones_found.each_with_index do |clone_found, index|
+ particles_intricated = clone_found[:intricate] ||= []
+ clone_id = "#{particles[:id]}_clone_#{index}"
+ original_id = atome[:id]
clone_found[:id] = clone_id
clone_found = particles.merge(clone_found)
- cloned_atome=Atome.new({ clone: clone_found })
- cloned_atome.monitor({ atomes: [original_id], particles: particles_intricated}) do |_atome, particle, value|
- cloned_atome.send(particle,value)
+ cloned_atome = Atome.new({ clone: clone_found })
+ cloned_atome.monitor({ atomes: [original_id], particles: particles_intricated }) do |_atome, particle, value|
+ cloned_atome.send(particle, value)
end
end
end
+
+# generator = Genesis.generator
+#
+# generator.build_particle(:type)
+# generator.build_particle(:parents)
+# generator.build_particle(:children)
+# generator.build_option(:pre_render_parents) do |parents_ids|
+# parents_ids.each do |parents_id|
+# parents_id = parents_id.value if parents_id.instance_of? Atome
+# parents_found = grab(parents_id)
+# family(parents_id)
+# parents_found.atome[:children] << atome[:id]
+# end
+# end
+# generator.build_option(:pre_render_children) do |children_ids|
+# children_ids.each do |child_id|
+# child_id = child_id.value if child_id.instance_of? Atome
+# child_found = grab(child_id)
+# parents_found = @atome[:id]
+# # FIXME : broadcast may malfunction because of the commented line below,
+# # FIXME suite : if uncomment object hierreachy is broken (cf Vie Project)
+# # child_found.family(parents_found)
+# child_found.atome[:parents] = [parents_found]
+# end
+# end
+# generator.build_particle(:family, { render: true, store: false })
+# generator.build_particle(:link) do |child_id|
+# child_found = grab(child_id)
+# child_found.atome[:parents] << @atome[:id]
+# child_found.refresh
+# end
+# generator.build_particle(:id)
+# generator.build_sanitizer(:id)
+# generator.build_particle(:name)
+# generator.build_particle(:active)
+# generator.build_particle(:attach)
+# generator.build_option(:pre_render_attach) do |parents_ids|
+# parents_ids.each do |parents_id|
+# parents_id = parents_id.value if parents_id.instance_of? Atome
+# parents_found = grab(parents_id)
+# family(parents_id)
+# parents_found.atome[:attached] = [] unless parents_found.atome[:attached]
+# parents_found.atome[:attached] << atome[:id]
+# end
+# end
+#
+# generator.build_particle(:detached) do |attach_to_remove|
+# attached.value.delete(attach_to_remove)
+# end
+# generator.build_particle(:intricate, { type: :array })
+# generator.build_particle(:clones) do |clones_found|
+# clones_found.each_with_index do |clone_found, index|
+# particles_intricated = clone_found[:intricate] ||= []
+# clone_id = "#{particles[:id]}_clone_#{index}"
+# original_id = atome[:id]
+# clone_found[:id] = clone_id
+# clone_found = particles.merge(clone_found)
+# cloned_atome = Atome.new({ clone: clone_found })
+# cloned_atome.monitor({ atomes: [original_id], particles: particles_intricated }) do |_atome, particle, value|
+# cloned_atome.send(particle, value)
+# end
+# end
+# end