acts_as_dag 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/acts_as_dag/acts_as_dag.rb +14 -14
  2. metadata +1 -1
@@ -101,14 +101,14 @@ module ActsAsDAG
101
101
  suitable_parent = true if ActsAsDAG::HelperMethods.plinko(root, category)
102
102
  end
103
103
  unless suitable_parent
104
- logger.info "Plinko couldn't find a suitable parent for #{category.name} in #{categories.collect(&:name).join(', ')}"
104
+ ActiveRecord::Base.logger.info "Plinko couldn't find a suitable parent for #{category.name} in #{categories.collect(&:name).join(', ')}"
105
105
  categories_with_no_parents << category
106
106
  end
107
107
  end
108
108
 
109
109
  # Add all categories from this group without suitable parents to the roots
110
110
  if categories_with_no_parents.present?
111
- logger.info "Adding #{categories_with_no_parents.collect(&:name).join(', ')} to roots"
111
+ ActiveRecord::Base.logger.info "Adding #{categories_with_no_parents.collect(&:name).join(', ')} to roots"
112
112
  roots_categories.concat categories_with_no_parents
113
113
  end
114
114
  end
@@ -119,10 +119,10 @@ module ActsAsDAG
119
119
  def reset_hierarchy(categories_to_reset = self.all)
120
120
  ids = categories_to_reset.collect(&:id)
121
121
 
122
- logger.info "Clearing #{self.name} hierarchy links"
122
+ ActiveRecord::Base.logger.info "Clearing #{self.name} hierarchy links"
123
123
  link_table_entries.where("parent_id IN (?) OR child_id IN (?)", ids, ids).delete_all
124
124
 
125
- logger.info "Clearing #{self.name} hierarchy descendants"
125
+ ActiveRecord::Base.logger.info "Clearing #{self.name} hierarchy descendants"
126
126
  descendant_table_entries.where("descendant_id IN (?) OR ancestor_id IN (?)", ids, ids).delete_all
127
127
 
128
128
  categories_to_reset.each do |category|
@@ -198,7 +198,7 @@ module ActsAsDAG
198
198
  # Searches all descendants for the best parent for the other
199
199
  # 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
200
200
  def self.plinko(current, other)
201
- current.logger.info "Plinkoing '#{other.name}' into '#{current.name}'..."
201
+ ActiveRecord::Base.logger.info "Plinkoing '#{other.name}' into '#{current.name}'..."
202
202
  if should_descend_from?(current, other)
203
203
  # Find the descendants of the current category that +other+ should descend from
204
204
  descendants_other_should_descend_from = current.descendants.select{|descendant| should_descend_from?(descendant, other)}
@@ -208,7 +208,7 @@ module ActsAsDAG
208
208
  new_parents_group = descendants_other_should_descend_from.group_by{|category| matching_word_count(other, category)}.sort.reverse.first
209
209
  if new_parents_group.present?
210
210
  for new_parent in new_parents_group[1]
211
- current.logger.info " '#{other.name}' landed under '#{new_parent.name}'"
211
+ ActiveRecord::Base.logger.info " '#{other.name}' landed under '#{new_parent.name}'"
212
212
  other.add_parent(new_parent)
213
213
 
214
214
  # We've just affected the associations in ways we can not possibly imagine, so let's clear the association cache
@@ -268,7 +268,7 @@ module ActsAsDAG
268
268
  # creates a single link in the given link_class's link table between parent and
269
269
  # child object ids and creates the appropriate entries in the descendant table
270
270
  def self.link(parent, child)
271
- # logger.info "link(hierarchy_link_table = #{child.link_class}, hierarchy_descendant_table = #{child.descendant_class}, parent = #{parent.name}, child = #{child.name})"
271
+ # ActiveRecord::Base.logger.info "link(hierarchy_link_table = #{child.link_class}, hierarchy_descendant_table = #{child.descendant_class}, parent = #{parent.name}, child = #{child.name})"
272
272
 
273
273
  # Sanity check
274
274
  raise "Parent has no ID" if parent.id.nil?
@@ -280,7 +280,7 @@ module ActsAsDAG
280
280
  # Create a new parent-child link
281
281
  # Return if the link already exists because we can assume that the proper descendants already exist too
282
282
  if klass.link_table_entries.where(:parent_id => parent.id, :child_id => child.id).exists?
283
- logger.info "Skipping #{child.descendant_class} update because the link already exists"
283
+ ActiveRecord::Base.logger.info "Skipping #{child.descendant_class} update because the link already exists"
284
284
  return
285
285
  else
286
286
  klass.link_table_entries.create!(:parent_id => parent.id, :child_id => child.id)
@@ -307,7 +307,7 @@ module ActsAsDAG
307
307
  # child object id. Updates the appropriate Descendants table entries
308
308
  def self.unlink(parent, child)
309
309
  descendant_table_string = child.descendant_class.to_s
310
- # parent.logger.info "unlink(hierarchy_link_table = #{child.link_class}, hierarchy_descendant_table = #{descendant_table_string}, parent = #{parent ? parent.name : 'nil'}, child = #{child.name})"
310
+ # ActiveRecord::Base.logger.info "unlink(hierarchy_link_table = #{child.link_class}, hierarchy_descendant_table = #{descendant_table_string}, parent = #{parent ? parent.name : 'nil'}, child = #{child.name})"
311
311
 
312
312
  # Raise an exception if there is no child
313
313
  raise "Child cannot be nil when deleting a category_link" unless child
@@ -335,7 +335,7 @@ module ActsAsDAG
335
335
  # Now iterate through all ancestors of the descendant_links that were deleted and pick only those that have no parents, namely (A, D)
336
336
  # These will be the starting points for the recreation of descendant links
337
337
  starting_points = klass.find(parent.ancestor_ids + child.descendant_ids).select{|node| node.parents.empty? || node.parents == [nil] }
338
- parent.logger.info {"starting points are #{starting_points.collect(&:name).to_sentence}" }
338
+ ActiveRecord::Base.logger.info {"starting points are #{starting_points.collect(&:name).to_sentence}" }
339
339
 
340
340
  # 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
341
341
  starting_points.each{|node| rebuild_descendant_links(node)}
@@ -349,22 +349,22 @@ module ActsAsDAG
349
349
  indent = Array.new(ancestors.size, " ").join
350
350
  klass = current.class
351
351
 
352
- current.logger.info {"#{indent}Rebuilding descendant links of #{current.name}"}
352
+ ActiveRecord::Base.logger.info {"#{indent}Rebuilding descendant links of #{current.name}"}
353
353
  # Add current to the list of traversed nodes that we will pass to the children we decide to recurse to
354
354
  ancestors << current
355
355
 
356
356
  # Create descendant links to each ancestor in the array (including itself)
357
357
  ancestors.reverse.each_with_index do |ancestor, index|
358
- current.logger.info {"#{indent}#{ancestor.name} is an ancestor of #{current.name} with distance #{index}"}
358
+ ActiveRecord::Base.logger.info {"#{indent}#{ancestor.name} is an ancestor of #{current.name} with distance #{index}"}
359
359
  klass.descendant_table_entries.where(:ancestor_id => ancestor.id, :descendant_id => current.id, :distance => index).first_or_create!
360
360
  end
361
361
 
362
362
  # Now check each child to see if it is a descendant, or if we need to recurse
363
363
  for child in current.children
364
- current.logger.info {"#{indent}Recursing to #{child.name}"}
364
+ ActiveRecord::Base.logger.info {"#{indent}Recursing to #{child.name}"}
365
365
  rebuild_descendant_links(child, ancestors.dup)
366
366
  end
367
- current.logger.info {"#{indent}Done recursing"}
367
+ ActiveRecord::Base.logger.info {"#{indent}Done recursing"}
368
368
  end
369
369
  end
370
370
 
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.1.0
4
+ version: 1.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: