lib/active_graph/node/has_n.rb in activegraph-11.1.0.alpha.4 vs lib/active_graph/node/has_n.rb in activegraph-11.1.0.beta.1

- old
+ new

@@ -32,12 +32,20 @@ def_delegator :@enumerable, delegated_method end include Enumerable - def each(&block) - result_nodes.each(&block) + def each(node = true, rel = nil, &block) + return [] unless node || rel + + if node && rel + result_nodes.zip(rels) + elsif node + result_nodes + else + rels + end.each(&block) end def each_rel(&block) rels.each(&block) end @@ -101,14 +109,14 @@ @cached_result ||= [] end def add_to_cache(object, rel = nil) (@cached_rels ||= []) << rel if rel - (@cached_result ||= []).tap { |results| results << object unless results.include?(object) } + (@cached_result ||= []).tap { |results| results << object if object && !results.include?(object) } end def rels - @cached_rels || super + @cached_rels || super.tap { |rels| rels.each { |rel| add_to_cache(nil, rel) } } end def cache_query_proxy_result (result_cache_proc_cache || @query_proxy).to_a.tap { |result| cache_result(result) } end