mongo_nested_set 0.1.0 → 0.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.
- data/.gitignore +1 -0
- data/VERSION +1 -1
- data/lib/mongo_nested_set.rb +14 -62
- data/mongo_nested_set.gemspec +51 -0
- metadata +3 -1
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
pkg/*
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/lib/mongo_nested_set.rb
CHANGED
@@ -525,82 +525,34 @@ module MongoNestedSet
|
|
525
525
|
else target.send(parent_column_name)
|
526
526
|
end
|
527
527
|
|
528
|
-
# base_class.collection.update({
|
529
|
-
# left_column_name => { '$gte' => a },
|
530
|
-
# left_column_name => { '$lte' => b }
|
531
|
-
# }, {
|
532
|
-
# '$inc' => { left_column_name => d - b }
|
533
|
-
# }, :multi => true)
|
534
|
-
# base_class.collection.update({
|
535
|
-
# left_column_name => { '$gte' => c },
|
536
|
-
# left_column_name => { '$lte' => d }
|
537
|
-
# }, {
|
538
|
-
# '$inc' => { left_column_name => a - c }
|
539
|
-
# }, :multi => true)
|
540
|
-
# base_class.collection.update({
|
541
|
-
# right_column_name => { '$gte' => a },
|
542
|
-
# right_column_name => { '$lte' => b }
|
543
|
-
# }, {
|
544
|
-
# '$inc' => { right_column_name => d - b }
|
545
|
-
# }, :multi => true)
|
546
|
-
# base_class.collection.update({
|
547
|
-
# right_column_name => { '$gte' => c },
|
548
|
-
# right_column_name => { '$lte' => d }
|
549
|
-
# }, {
|
550
|
-
# '$inc' => { right_column_name => a - c }
|
551
|
-
# }, :multi => true)
|
552
|
-
# base_class.collection.update({
|
553
|
-
# :_id => self.id
|
554
|
-
# }, {
|
555
|
-
# parent_column_name => new_parent
|
556
|
-
# })
|
557
|
-
|
558
|
-
to_update = {}
|
559
|
-
|
560
528
|
base_class.find(:all, scoped).each do |node|
|
561
|
-
|
529
|
+
node_updates = {}
|
562
530
|
if (a..b).include? node.left
|
563
|
-
node.
|
531
|
+
node.update_column left_column_name, node.left + d - b
|
564
532
|
elsif (c..d).include? node.left
|
565
|
-
node.
|
533
|
+
node.update_column left_column_name, node.left + a - c
|
566
534
|
end
|
567
535
|
if (a..b).include? node.right
|
568
|
-
node.
|
536
|
+
node.update_column right_column_name, node.right + d - b
|
569
537
|
elsif (c..d).include? node.right
|
570
|
-
node.
|
538
|
+
node.update_column right_column_name, node.right + a - c
|
571
539
|
end
|
572
|
-
node.
|
573
|
-
node.save_without_nested_set_callbacks if node.changed?
|
540
|
+
node.update_column parent_column_name, new_parent if self.id == node.id
|
574
541
|
end
|
575
542
|
|
576
|
-
# self.class.base_class.update_all([
|
577
|
-
# "#{quoted_left_column_name} = CASE " +
|
578
|
-
# "WHEN #{quoted_left_column_name} BETWEEN :a AND :b " +
|
579
|
-
# "THEN #{quoted_left_column_name} + :d - :b " +
|
580
|
-
# "WHEN #{quoted_left_column_name} BETWEEN :c AND :d " +
|
581
|
-
# "THEN #{quoted_left_column_name} + :a - :c " +
|
582
|
-
# "ELSE #{quoted_left_column_name} END, " +
|
583
|
-
# "#{quoted_right_column_name} = CASE " +
|
584
|
-
# "WHEN #{quoted_right_column_name} BETWEEN :a AND :b " +
|
585
|
-
# "THEN #{quoted_right_column_name} + :d - :b " +
|
586
|
-
# "WHEN #{quoted_right_column_name} BETWEEN :c AND :d " +
|
587
|
-
# "THEN #{quoted_right_column_name} + :a - :c " +
|
588
|
-
# "ELSE #{quoted_right_column_name} END, " +
|
589
|
-
# "#{quoted_parent_column_name} = CASE " +
|
590
|
-
# "WHEN id = :id THEN :new_parent " +
|
591
|
-
# "ELSE #{quoted_parent_column_name} END",
|
592
|
-
# {:a => a, :b => b, :c => c, :d => d, :id => self.id, :new_parent => new_parent}
|
593
|
-
# ], nested_set_scope.proxy_options[:conditions])
|
594
|
-
|
595
543
|
target.reload_nested_set if target
|
596
544
|
self.reload_nested_set
|
597
545
|
run_callbacks(:after_move)
|
598
546
|
end
|
599
547
|
|
600
|
-
def
|
601
|
-
@skip_nested_set_callbacks = true
|
602
|
-
|
603
|
-
@skip_nested_set_callbacks =
|
548
|
+
def without_nested_set_callbacks(&block)
|
549
|
+
old_value, @skip_nested_set_callbacks = @skip_nested_set_callbacks || false, true
|
550
|
+
yield self
|
551
|
+
@skip_nested_set_callbacks = old_value
|
552
|
+
end
|
553
|
+
|
554
|
+
def update_column(name, value)
|
555
|
+
base_class.collection.update({ :_id => id }, { '$set' => { name => value } })
|
604
556
|
end
|
605
557
|
end
|
606
558
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{mongo_nested_set}
|
8
|
+
s.version = "0.1.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Matt Powell", "Brandon Keepers", "Daniel Morrison"]
|
12
|
+
s.date = %q{2010-01-12}
|
13
|
+
s.description = %q{Port of awesome_nested_set for MongoMapper}
|
14
|
+
s.email = %q{fauxparse@gmail.com}
|
15
|
+
s.files = [
|
16
|
+
".gitignore",
|
17
|
+
"Rakefile",
|
18
|
+
"VERSION",
|
19
|
+
"init.rb",
|
20
|
+
"lib/mongo_nested_set.rb",
|
21
|
+
"mongo_nested_set.gemspec",
|
22
|
+
"rails/init.rb",
|
23
|
+
"test/fixtures/category.rb",
|
24
|
+
"test/nested_set_test.rb",
|
25
|
+
"test/test_helper.rb"
|
26
|
+
]
|
27
|
+
s.homepage = %q{http://github.com/fauxparse/mongo_nested_set}
|
28
|
+
s.rdoc_options = ["--main", "README.rdoc", "--inline-source", "--line-numbers"]
|
29
|
+
s.require_paths = ["lib"]
|
30
|
+
s.rubygems_version = %q{1.3.5}
|
31
|
+
s.summary = %q{Port of awesome_nested_set for MongoMapper}
|
32
|
+
s.test_files = [
|
33
|
+
"test/fixtures/category.rb",
|
34
|
+
"test/nested_set_test.rb",
|
35
|
+
"test/test_helper.rb"
|
36
|
+
]
|
37
|
+
|
38
|
+
if s.respond_to? :specification_version then
|
39
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
40
|
+
s.specification_version = 3
|
41
|
+
|
42
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
43
|
+
s.add_runtime_dependency(%q<mongo_mapper>, [">= 0.6.10"])
|
44
|
+
else
|
45
|
+
s.add_dependency(%q<mongo_mapper>, [">= 0.6.10"])
|
46
|
+
end
|
47
|
+
else
|
48
|
+
s.add_dependency(%q<mongo_mapper>, [">= 0.6.10"])
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongo_nested_set
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Powell
|
@@ -33,10 +33,12 @@ extensions: []
|
|
33
33
|
extra_rdoc_files: []
|
34
34
|
|
35
35
|
files:
|
36
|
+
- .gitignore
|
36
37
|
- Rakefile
|
37
38
|
- VERSION
|
38
39
|
- init.rb
|
39
40
|
- lib/mongo_nested_set.rb
|
41
|
+
- mongo_nested_set.gemspec
|
40
42
|
- rails/init.rb
|
41
43
|
- test/fixtures/category.rb
|
42
44
|
- test/nested_set_test.rb
|