lib/atome/helpers/utilities.rb in atome-0.5.2.8 vs lib/atome/helpers/utilities.rb in atome-0.5.3.2
- old
+ new
@@ -26,15 +26,16 @@
def history(property, value)
"historize : #{property} #{value}"
end
- def broadcasting(altered_particle, value)
+ def broadcasting(element)
+ params=instance_variable_get("@#{element}")
@broadcast.each_value do |particle_monitored|
- if particle_monitored[:particles].include?(altered_particle)
+ if particle_monitored[:particles].include?(element)
code_found=particle_monitored[:code]
- instance_exec(self, altered_particle, value, &code_found) if code_found.is_a?(Proc)
+ instance_exec(self, element, params, &code_found) if code_found.is_a?(Proc)
end
end
end
public
@@ -97,7 +98,45 @@
end
end
def refresh
collapse
+ end
+
+ def collector(params = {}, &bloc)
+ atome_type = :collector
+ generated_render = params[:renderers] || []
+ generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
+ generated_parents = params[:parents] || [id.value]
+ generated_children = params[:children] || []
+ params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
+ Batch.new({ atome_type => params }, &bloc)
+ end
+
+ def each(&proc)
+ value.each do |val|
+ instance_exec(val, &proc) if proc.is_a?(Proc)
+ end
+ end
+
+ def [](range)
+ if value[range].class == Atome
+ return value[range]
+ elsif value[range].class == Array
+ collector_object = Object.collector({})
+ collected_atomes = []
+ value[range].each do |atome_found|
+ collected_atomes << atome_found
+ end
+ collector_object.data(collected_atomes)
+
+ return collector_object
+ end
+
+ end
+
+ def set(params)
+ params.each do |particle, value|
+ send(particle, value)
+ end
end
end