acts_as_dag 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/acts_as_dag.rb +7 -2
  2. metadata +2 -2
data/lib/acts_as_dag.rb CHANGED
@@ -114,6 +114,11 @@ module ActsAsDAG
114
114
  end
115
115
 
116
116
  module InstanceMethods
117
+ # Returns true if this record is a root node
118
+ def root?
119
+ self.class.roots.exists? self
120
+ end
121
+
117
122
  # Searches all descendants for the best parent for the other
118
123
  # i.e. it lets you drop the category in at the top and it drops down the list until it finds its final resting place
119
124
  def plinko(other)
@@ -302,11 +307,11 @@ module ActsAsDAG
302
307
  # E
303
308
  #
304
309
  # Now destroy all affected descendant_links (ancestors of parent (C), descendants of child (D))
305
- descendant_type.delete_all(:ancestor_id => parent.fast_ancestor_ids, :descendant_id => child.fast_descendant_ids)
310
+ descendant_type.delete_all(:ancestor_id => parent.ancestor_ids, :descendant_id => child.descendant_ids)
306
311
 
307
312
  # Now iterate through all ancestors of the descendant_links that were deleted and pick only those that have no parents, namely (A, D)
308
313
  # These will be the starting points for the recreation of descendant links
309
- starting_points = self.class.find(parent.fast_ancestor_ids + child.fast_descendant_ids).select{|node| node.parents.empty? || node.parents == [nil] }
314
+ starting_points = self.class.find(parent.ancestor_ids + child.descendant_ids).select{|node| node.parents.empty? || node.parents == [nil] }
310
315
  logger.info {"starting points are #{starting_points.collect(&:name).to_sentence}" }
311
316
 
312
317
  # POSSIBLE OPTIMIZATION: The two starting points may share descendants. We only need to process each node once, so if we could skip dups, that would be good
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_dag
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -43,7 +43,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
43
43
  version: '0'
44
44
  requirements: []
45
45
  rubyforge_project:
46
- rubygems_version: 1.8.15
46
+ rubygems_version: 1.8.10
47
47
  signing_key:
48
48
  specification_version: 3
49
49
  summary: Adds directed acyclic graph functionality to ActiveRecord.