mongoid_orderable 4.1.1 → 5.0.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cea70aa8c9e3b86f49203e6f1bb17b45a994e45a
4
- data.tar.gz: 99ad3433535e36e7e4f9f579f1ab4c7640f5552c
3
+ metadata.gz: a966ef4b59309d05845a832163936ce54e339a1e
4
+ data.tar.gz: 16b32ccd0fdb0a2ae9a61424d8842de9eba00d4e
5
5
  SHA512:
6
- metadata.gz: 52b38d32f9272161134dd2c4b04d70549e6b8fe7034b0838c12d243e420702889ae36f2b43463c22b0afafc5447817414f0d402d9441b9a6847434c328f505c4
7
- data.tar.gz: 1608265030534f0bb65c9911014cb1e3d6a54691a037644cdc31295aec872c58b4edfc84414cf847e2c35497b2629d87606f6fe48b993c3b2ca34a237d97890b
6
+ metadata.gz: ee3e6de12801d857bb9345dc6035c698c56ee119f9b2e78fc15584caf6108351904487b888fa2091636bc750be62e6076b06bf74f38f44b2bd2fa68bc36611ac
7
+ data.tar.gz: 5fc8fe3f744fff60b38ac3d0136dcc5c84c069042beda3a7c623c9d6da743e67219e29da920bd983d4a5f506f081cbac9614e14630647dbc58593fa3dfb877d9
data/.rspec CHANGED
@@ -1 +1,2 @@
1
1
  --colour
2
+ --format=documentation
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm use 2.0.0@mongoid_orderable --create
1
+ rvm use 2.2@mongoid_orderable --create
data/.travis.yml CHANGED
@@ -1,20 +1,14 @@
1
1
  rvm:
2
- - 1.8.7
3
2
  - 1.9.3
4
3
  - 2.0.0
5
- - 2.1.1
4
+ - 2.1
5
+ - 2.2
6
6
  # - rbx
7
7
 
8
8
  env:
9
9
  - MONGOID_VERSION=2
10
10
  - MONGOID_VERSION=3
11
11
  - MONGOID_VERSION=4
12
-
13
- matrix:
14
- exclude:
15
- - rvm: 1.8.7
16
- env: MONGOID_VERSION=3
17
- - rvm: 1.8.7
18
- env: MONGOID_VERSION=4
12
+ - MONGOID_VERSION=5
19
13
 
20
14
  services: mongodb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # master
2
2
 
3
+ # 5.0.0
4
+
5
+ * Mongoid 5 support (@dblock)
6
+ * Ruby 1.8 support dropped
7
+
3
8
  # 4.1.1
4
9
 
5
10
  * Fix: index should respect scope (@joeyAghion)
data/Gemfile CHANGED
@@ -3,13 +3,16 @@ source "http://rubygems.org"
3
3
  # Specify your gem's dependencies in mongoid_orderable.gemspec
4
4
  gemspec
5
5
 
6
- case version = ENV['MONGOID_VERSION'] || "~> 3.1"
7
- when /4/
8
- gem "mongoid", :github => 'mongoid/mongoid'
9
- when /3/
10
- gem "mongoid", "~> 3.1"
11
- when /2/
12
- gem "mongoid", "~> 2.8"
6
+ case version = ENV['MONGOID_VERSION'] || '5.0'
7
+ when /^5/
8
+ gem 'mongoid', '~> 5.0'
9
+ when /^4/
10
+ gem 'mongoid', '~> 4.0'
11
+ when /^3/
12
+ gem 'mongoid', '~> 3.1'
13
+ when /^2/
14
+ gem 'mongoid', '~> 2.0'
15
+ gem 'bson_ext', platforms: :ruby
13
16
  else
14
- gem "mongoid", version
17
+ gem 'mongoid', version
15
18
  end
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
- [![Build Status](https://secure.travis-ci.org/pyromaniac/mongoid_orderable.png)](http://travis-ci.org/pyromaniac/mongoid_orderable)
1
+ [![Gem Version](https://badge.fury.io/rb/mongoid_orderable.svg)](https://badge.fury.io/rb/mongoid_orderable)
2
+ [![Build Status](https://travis-ci.org/pyromaniac/mongoid_orderable.svg?branch=master)](https://travis-ci.org/pyromaniac/mongoid_orderable)
2
3
 
3
4
  # What?
4
5
 
5
- Mongoid::Orderable is a ordered list implementation for your mongoid models.
6
+ Mongoid::Orderable is a ordered list implementation for your Mongoid 2, 3, 4 and 5 models.
6
7
 
7
8
  # Why?
8
9
 
@@ -14,14 +15,14 @@ Mongoid::Orderable is a ordered list implementation for your mongoid models.
14
15
 
15
16
  # How?
16
17
 
17
- ```
18
+ ```ruby
18
19
  gem 'mongoid_orderable'
19
20
  ```
20
21
 
21
22
  Gem has the same api as others. Just include Mongoid::Orderable into your model and call `orderable` method.
22
23
  Embedded objects are automatically scoped by their parent.
23
24
 
24
- ```
25
+ ```ruby
25
26
  class Item
26
27
  include Mongoid::Document
27
28
  include Mongoid::Orderable
@@ -42,7 +43,7 @@ end
42
43
 
43
44
  # Usage
44
45
 
45
- ```
46
+ ```ruby
46
47
  item.move_to 2 # just change position
47
48
  item.move_to! 2 # and save
48
49
  item.move_to = 2 # assignable method
@@ -70,7 +71,7 @@ item.previous_item # returns the previous item in the list
70
71
 
71
72
  You can also define multiple orderable columns for any class including the Mongoid::Orderable module.
72
73
 
73
- ```
74
+ ```ruby
74
75
  class Book
75
76
  include Mongoid::Document
76
77
  include Mongoid::Orderable
@@ -83,8 +84,8 @@ end
83
84
  The above defines two different orderable_columns on Book - *position* and *serial_no*.
84
85
  The following helpers are generated in this case:
85
86
 
86
- ```
87
- item.move_#{column_name}_to
87
+ ```ruby
88
+ item.move_#{column_name}_to
88
89
  item.move_#{column_name}_to=
89
90
  item.move_#{column_name}_to!
90
91
 
@@ -104,7 +105,7 @@ item.previous_#{column_name}_item
104
105
 
105
106
  When a model defines multiple orderable columns, the original helpers are also available and work on the first orderable column.
106
107
 
107
- ```
108
+ ```ruby
108
109
  @book1 = Book.create!
109
110
  @book2 = Book.create!
110
111
  @book2 => #<Book _id: 53a16a2ba1bde4f746000001, serial_no: 1, position: 1>
@@ -114,10 +115,31 @@ When a model defines multiple orderable columns, the original helpers are also a
114
115
 
115
116
  To specify any other orderable column as default pass the **default: true** option with orderable.
116
117
 
117
- ```
118
+ ```ruby
118
119
  orderable column: sno, as: :serial_no, default: true
119
120
  ```
120
121
 
122
+ # Embedded documents
123
+ ```ruby
124
+ class Question
125
+ include Mongoid::Document
126
+ include Mongoid::Orderable
127
+
128
+ embedded_in :survey
129
+
130
+ orderable
131
+ end
132
+ ```
133
+ If you bulk import embedded documents without specifying their position, no field `position` will be written.
134
+ ```ruby
135
+ class Survey
136
+ include Mongoid::Document
137
+
138
+ embeds_many :questions, cascade_callbacks: true
139
+ end
140
+ ```
141
+ To ensure the position is written correctly, you will need to provide the cascade callbacks option to the relation.
142
+
121
143
  # Contributing
122
144
 
123
145
  Fork && Patch && Spec && Push && Pull request.
@@ -7,7 +7,7 @@ module Mongoid::Orderable
7
7
 
8
8
  private
9
9
  def _compose_message value
10
- if MongoidOrderable.mongoid2?
10
+ if ::Mongoid::Compatibility::Version.mongoid2?
11
11
  translate 'invalid_target_position', { :value => value.inspect }
12
12
  else
13
13
  compose_message 'invalid_target_position', { :value => value.inspect }
@@ -2,7 +2,7 @@ module Mongoid::Orderable
2
2
  module Errors
3
3
  class MongoidOrderableError < ::Mongoid::Errors::MongoidError
4
4
 
5
- if MongoidOrderable.mongoid2?
5
+ if ::Mongoid::Compatibility::Version.mongoid2?
6
6
  def translate key, options
7
7
  [:message, :summary, :resolution].map do |section|
8
8
  ::I18n.translate "#{BASE_KEY}.#{key}.#{section}", options
@@ -31,7 +31,7 @@ module Mongoid
31
31
  def add_db_index
32
32
  spec = [[configuration[:column], 1]]
33
33
  spec.unshift([configuration[:scope], 1]) if configuration[:scope].is_a?(Symbol)
34
- if MongoidOrderable.mongoid2?
34
+ if ::Mongoid::Compatibility::Version.mongoid2?
35
35
  klass.index(spec)
36
36
  else
37
37
  klass.index(Hash[spec])
@@ -1,36 +1,34 @@
1
1
  require 'active_support'
2
- I18n.enforce_available_locales = false
2
+
3
+ I18n.enforce_available_locales = false if I18n.respond_to?(:enforce_available_locales)
3
4
  I18n.load_path << File.join(File.dirname(__FILE__), 'config', 'locales', 'en.yml')
4
5
 
5
- module MongoidOrderable
6
- def self.mongoid2?
7
- ::Mongoid.const_defined? :Contexts
8
- end
9
- def self.mongoid3?
10
- ::Mongoid.const_defined? :Observer
11
- end
6
+ require 'mongoid'
7
+ require 'mongoid/compatibility'
12
8
 
13
- def self.inc instance, attribute, value
14
- if MongoidOrderable.mongoid2? || MongoidOrderable.mongoid3?
9
+ module MongoidOrderable
10
+ if ::Mongoid::Compatibility::Version.mongoid2? || ::Mongoid::Compatibility::Version.mongoid3?
11
+ def self.inc instance, attribute, value
15
12
  instance.inc attribute, value
16
- else
17
- instance.inc(attribute => value)
18
13
  end
19
- end
20
14
 
21
- def self.metadata instance
22
- if MongoidOrderable.mongoid2? || MongoidOrderable.mongoid3?
15
+ def self.metadata instance
23
16
  instance.metadata
24
- else
17
+ end
18
+ else
19
+ def self.inc instance, attribute, value
20
+ instance.inc(attribute => value)
21
+ end
22
+
23
+ def self.metadata instance
25
24
  instance.relation_metadata
26
25
  end
27
26
  end
28
27
  end
29
28
 
30
- require 'mongoid'
31
29
  require 'mongoid_orderable/version'
32
30
 
33
- if MongoidOrderable.mongoid2?
31
+ if ::Mongoid::Compatibility::Version.mongoid2?
34
32
  require 'mongoid_orderable/mongoid/contexts/mongo'
35
33
  require 'mongoid_orderable/mongoid/contexts/enumerable'
36
34
  require 'mongoid_orderable/mongoid/criteria'
@@ -1,3 +1,3 @@
1
1
  module MongoidOrderable
2
- VERSION = '4.1.1'
2
+ VERSION = '5.0.0'
3
3
  end
@@ -22,4 +22,5 @@ Gem::Specification.new do |s|
22
22
  s.add_development_dependency "rake"
23
23
  s.add_development_dependency "rspec"
24
24
  s.add_runtime_dependency "mongoid"
25
+ s.add_runtime_dependency "mongoid-compatibility"
25
26
  end
@@ -137,9 +137,9 @@ describe Mongoid::Orderable do
137
137
  end
138
138
 
139
139
  it 'should have index on position column' do
140
- if MongoidOrderable.mongoid2?
140
+ if ::Mongoid::Compatibility::Version.mongoid2?
141
141
  expect(SimpleOrderable.index_options[[[:position, 1]]]).not_to be_nil
142
- elsif MongoidOrderable.mongoid3?
142
+ elsif ::Mongoid::Compatibility::Version.mongoid3?
143
143
  expect(SimpleOrderable.index_options[{:position => 1}]).not_to be_nil
144
144
  else
145
145
  expect(SimpleOrderable.index_specifications.detect { |spec| spec.key == {:position => 1} }).not_to be_nil
@@ -347,9 +347,9 @@ describe Mongoid::Orderable do
347
347
  describe 'index' do
348
348
 
349
349
  it 'is not on position alone' do
350
- if MongoidOrderable.mongoid2?
350
+ if ::Mongoid::Compatibility::Version.mongoid2?
351
351
  expect(ScopedOrderable.index_options[[[:position, 1]]]).to be_nil
352
- elsif MongoidOrderable.mongoid3?
352
+ elsif ::Mongoid::Compatibility::Version.mongoid3?
353
353
  expect(ScopedOrderable.index_options[{:position => 1}]).to be_nil
354
354
  else
355
355
  expect(ScopedOrderable.index_specifications.detect { |spec| spec.key == {:position => 1} }).to be_nil
@@ -357,9 +357,9 @@ describe Mongoid::Orderable do
357
357
  end
358
358
 
359
359
  it 'is on compound fields' do
360
- if MongoidOrderable.mongoid2?
360
+ if ::Mongoid::Compatibility::Version.mongoid2?
361
361
  expect(ScopedOrderable.index_options[[[:group_id, 1], [:position, 1]]]).to_not be_nil
362
- elsif MongoidOrderable.mongoid3?
362
+ elsif ::Mongoid::Compatibility::Version.mongoid3?
363
363
  expect(ScopedOrderable.index_options[{:group_id => 1, :position => 1}]).to_not be_nil
364
364
  else
365
365
  expect(ScopedOrderable.index_specifications.detect { |spec| spec.key == {:group_id => 1, :position => 1} }).to_not be_nil
@@ -452,14 +452,19 @@ describe Mongoid::Orderable do
452
452
  end
453
453
  end
454
454
 
455
- describe 'utiity methods' do
455
+ describe 'utility methods' do
456
+
457
+ before do
458
+ ScopedOrderable.delete_all
459
+ 5.times { ScopedOrderable.create! }
460
+ end
456
461
 
457
462
  it "should return a collection of items lower/higher on the list for next_items/previous_items" do
458
- record_1 = SimpleOrderable.where(:position => 1).first
459
- record_2 = SimpleOrderable.where(:position => 2).first
460
- record_3 = SimpleOrderable.where(:position => 3).first
461
- record_4 = SimpleOrderable.where(:position => 4).first
462
- record_5 = SimpleOrderable.where(:position => 5).first
463
+ record_1 = ScopedOrderable.where(:position => 1).first
464
+ record_2 = ScopedOrderable.where(:position => 2).first
465
+ record_3 = ScopedOrderable.where(:position => 3).first
466
+ record_4 = ScopedOrderable.where(:position => 4).first
467
+ record_5 = ScopedOrderable.where(:position => 5).first
463
468
  expect(record_1.next_items.to_a).to eq([record_2, record_3, record_4, record_5])
464
469
  expect(record_5.previous_items.to_a).to eq([record_1, record_2, record_3, record_4])
465
470
  expect(record_3.previous_items.to_a).to eq([record_1, record_2])
@@ -476,9 +481,9 @@ describe Mongoid::Orderable do
476
481
  describe StringScopedOrderable do
477
482
 
478
483
  it 'uses the foreign key of the relationship as scope' do
479
- orderable1 = StringScopedOrderable.create(:some_scope => 1)
480
- orderable2 = StringScopedOrderable.create(:some_scope => 1)
481
- orderable3 = StringScopedOrderable.create(:some_scope => 2)
484
+ orderable1 = StringScopedOrderable.create!(:some_scope => 1)
485
+ orderable2 = StringScopedOrderable.create!(:some_scope => 1)
486
+ orderable3 = StringScopedOrderable.create!(:some_scope => 2)
482
487
  expect(orderable1.position).to eq 1
483
488
  expect(orderable2.position).to eq 2
484
489
  expect(orderable3.position).to eq 1
@@ -535,7 +540,7 @@ describe Mongoid::Orderable do
535
540
  describe NoIndexOrderable do
536
541
 
537
542
  it 'should not have index on position column' do
538
- if MongoidOrderable.mongoid2? || MongoidOrderable.mongoid3?
543
+ if ::Mongoid::Compatibility::Version.mongoid2? || ::Mongoid::Compatibility::Version.mongoid3?
539
544
  expect(NoIndexOrderable.index_options[[[:position, 1]]]).to be_nil
540
545
  else
541
546
  expect(NoIndexOrderable.index_specifications.detect { |spec| spec.key == :position }).to be_nil
@@ -714,18 +719,18 @@ describe Mongoid::Orderable do
714
719
  end
715
720
 
716
721
  it 'with symbol position' do
717
- first_apple = Apple.first
722
+ first_apple = Apple.asc(:_id).first
718
723
  top_pos = first_apple.position
719
- bottom_pos = Apple.last.position
724
+ bottom_pos = Apple.asc(:_id).last.position
720
725
  expect do
721
726
  first_apple.move_to! :bottom
722
727
  end.to change(first_apple, :position).from(top_pos).to bottom_pos
723
728
  end
724
729
 
725
730
  it 'with point position' do
726
- first_apple = Apple.first
731
+ first_apple = Apple.asc(:_id).first
727
732
  top_pos = first_apple.position
728
- bottom_pos = Apple.last.position
733
+ bottom_pos = Apple.asc(:_id).last.position
729
734
  expect do
730
735
  first_apple.move_to! bottom_pos
731
736
  end.to change(first_apple, :position).from(top_pos).to bottom_pos
@@ -751,9 +756,9 @@ describe Mongoid::Orderable do
751
756
  parent_scope1 = ForeignKeyDiffersOrderable.create
752
757
  parent_scope2 = ForeignKeyDiffersOrderable.create
753
758
  expect do
754
- orderable1 = ForeignKeyDiffersOrderable.create(:different_scope => parent_scope1)
755
- orderable2 = ForeignKeyDiffersOrderable.create(:different_scope => parent_scope1)
756
- orderable3 = ForeignKeyDiffersOrderable.create(:different_scope => parent_scope2)
759
+ orderable1 = ForeignKeyDiffersOrderable.create!(:different_scope => parent_scope1)
760
+ orderable2 = ForeignKeyDiffersOrderable.create!(:different_scope => parent_scope1)
761
+ orderable3 = ForeignKeyDiffersOrderable.create!(:different_scope => parent_scope2)
757
762
  end.to_not raise_error
758
763
  expect(orderable1.position).to eq 1
759
764
  expect(orderable2.position).to eq 2
@@ -818,7 +823,7 @@ describe Mongoid::Orderable do
818
823
  expect(record.serial_no).to eq(4)
819
824
  expect(record.position).to eq(position)
820
825
  end
821
-
826
+
822
827
  it 'higher from middle' do
823
828
  record = MultipleColumnsOrderable.where(:serial_no => 3).first
824
829
  position = record.position
@@ -827,7 +832,7 @@ describe Mongoid::Orderable do
827
832
  expect(record.serial_no).to eq(2)
828
833
  expect(record.position).to eq(position)
829
834
  end
830
-
835
+
831
836
  it 'lower from top' do
832
837
  record = MultipleColumnsOrderable.where(:serial_no => 1).first
833
838
  position = record.position
@@ -836,7 +841,7 @@ describe Mongoid::Orderable do
836
841
  expect(record.serial_no).to eq(2)
837
842
  expect(record.position).to eq(position)
838
843
  end
839
-
844
+
840
845
  it 'lower from bottom' do
841
846
  record = MultipleColumnsOrderable.where(:serial_no => 5).first
842
847
  position = record.position
@@ -845,7 +850,7 @@ describe Mongoid::Orderable do
845
850
  expect(record.serial_no).to eq(5)
846
851
  expect(record.position).to eq(position)
847
852
  end
848
-
853
+
849
854
  it 'lower from middle' do
850
855
  record = MultipleColumnsOrderable.where(:serial_no => 3).first
851
856
  position = record.position
@@ -896,9 +901,9 @@ describe Mongoid::Orderable do
896
901
  end
897
902
 
898
903
  it 'should have index on serial_no column' do
899
- if MongoidOrderable.mongoid2?
904
+ if ::Mongoid::Compatibility::Version.mongoid2?
900
905
  expect(MultipleColumnsOrderable.index_options[[[:serial_no, 1]]]).not_to be_nil
901
- elsif MongoidOrderable.mongoid3?
906
+ elsif ::Mongoid::Compatibility::Version.mongoid3?
902
907
  expect(MultipleColumnsOrderable.index_options[{:serial_no => 1}]).not_to be_nil
903
908
  else
904
909
  expect(MultipleColumnsOrderable.index_specifications.detect { |spec| spec.key == {:serial_no => 1} }).not_to be_nil
@@ -976,7 +981,7 @@ describe Mongoid::Orderable do
976
981
  expect(record.serial_no).to eq(4)
977
982
  expect(record.position).to eq(position)
978
983
  end
979
-
984
+
980
985
  it 'higher from middle' do
981
986
  record = MultipleColumnsOrderable.where(:serial_no => 3).first
982
987
  position = record.position
@@ -985,7 +990,7 @@ describe Mongoid::Orderable do
985
990
  expect(record.serial_no).to eq(2)
986
991
  expect(record.position).to eq(position)
987
992
  end
988
-
993
+
989
994
  it 'lower from top' do
990
995
  record = MultipleColumnsOrderable.where(:serial_no => 1).first
991
996
  position = record.position
@@ -994,7 +999,7 @@ describe Mongoid::Orderable do
994
999
  expect(record.serial_no).to eq(2)
995
1000
  expect(record.position).to eq(position)
996
1001
  end
997
-
1002
+
998
1003
  it 'lower from bottom' do
999
1004
  record = MultipleColumnsOrderable.where(:serial_no => 5).first
1000
1005
  position = record.position
@@ -1003,7 +1008,7 @@ describe Mongoid::Orderable do
1003
1008
  expect(record.serial_no).to eq(5)
1004
1009
  expect(record.position).to eq(position)
1005
1010
  end
1006
-
1011
+
1007
1012
  it 'lower from middle' do
1008
1013
  record = MultipleColumnsOrderable.where(:serial_no => 3).first
1009
1014
  position = record.position
@@ -1059,9 +1064,9 @@ describe Mongoid::Orderable do
1059
1064
  end
1060
1065
 
1061
1066
  it 'should have index on position column' do
1062
- if MongoidOrderable.mongoid2?
1067
+ if ::Mongoid::Compatibility::Version.mongoid2?
1063
1068
  expect(MultipleColumnsOrderable.index_options[[[:position, 1]]]).to be_nil
1064
- elsif MongoidOrderable.mongoid3?
1069
+ elsif ::Mongoid::Compatibility::Version.mongoid3?
1065
1070
  expect(MultipleColumnsOrderable.index_options[{:position => 1}]).to be_nil
1066
1071
  else
1067
1072
  expect(MultipleColumnsOrderable.index_specifications.detect { |spec| spec.key == {:position => 1} }).to be_nil
@@ -1139,7 +1144,7 @@ describe Mongoid::Orderable do
1139
1144
  expect(record.position).to eq(3)
1140
1145
  expect(record.serial_no).to eq(position)
1141
1146
  end
1142
-
1147
+
1143
1148
  it 'higher from middle' do
1144
1149
  record = MultipleColumnsOrderable.where(:pos => 3).first
1145
1150
  position = record.serial_no
@@ -1148,7 +1153,7 @@ describe Mongoid::Orderable do
1148
1153
  expect(record.position).to eq(2)
1149
1154
  expect(record.serial_no).to eq(position)
1150
1155
  end
1151
-
1156
+
1152
1157
  it 'lower from top' do
1153
1158
  record = MultipleColumnsOrderable.where(:pos => 0).first
1154
1159
  position = record.serial_no
@@ -1157,7 +1162,7 @@ describe Mongoid::Orderable do
1157
1162
  expect(record.position).to eq(1)
1158
1163
  expect(record.serial_no).to eq(position)
1159
1164
  end
1160
-
1165
+
1161
1166
  it 'lower from bottom' do
1162
1167
  record = MultipleColumnsOrderable.where(:pos => 4).first
1163
1168
  position = record.serial_no
@@ -1166,7 +1171,7 @@ describe Mongoid::Orderable do
1166
1171
  expect(record.position).to eq(4)
1167
1172
  expect(record.serial_no).to eq(position)
1168
1173
  end
1169
-
1174
+
1170
1175
  it 'lower from middle' do
1171
1176
  record = MultipleColumnsOrderable.where(:pos => 3).first
1172
1177
  position = record.serial_no
@@ -1264,30 +1269,30 @@ describe Mongoid::Orderable do
1264
1269
  end
1265
1270
 
1266
1271
  describe 'scope movement' do
1267
-
1272
+
1268
1273
  let(:record){ MultipleColumnsOrderable.where(:group_id => 2, :groups => 2).first }
1269
-
1274
+
1270
1275
  it 'to a new scope group' do
1271
1276
  record.update_attributes :group_id => 3
1272
1277
  expect(all_groups).to eq([1, 2, 1, 2, 1])
1273
1278
  expect(record.groups).to eq(1)
1274
1279
  end
1275
-
1280
+
1276
1281
  context 'when moving to an existing scope group' do
1277
-
1282
+
1278
1283
  it 'without a position' do
1279
1284
  record.update_attributes :group_id => 1
1280
1285
  expect(all_groups).to eq([1, 2, 3, 1, 2])
1281
1286
  expect(record.reload.groups).to eq(3)
1282
1287
  end
1283
-
1288
+
1284
1289
  it 'with symbol position' do
1285
1290
  record.update_attributes :group_id => 1
1286
1291
  record.move_groups_to! :top
1287
1292
  expect(all_groups).to eq([1, 2, 3, 1, 2])
1288
1293
  expect(record.reload.groups).to eq(1)
1289
1294
  end
1290
-
1295
+
1291
1296
  it 'with point position' do
1292
1297
  record.update_attributes :group_id => 1
1293
1298
  record.move_groups_to! 2
data/spec/spec_helper.rb CHANGED
@@ -1,37 +1,30 @@
1
1
  require 'bundler'
2
2
  Bundler.require
3
3
 
4
- DATABASE_NAME = "mongoid_#{Process.pid}"
5
-
6
- if MongoidOrderable.mongoid2?
4
+ if ::Mongoid::Compatibility::Version.mongoid2?
7
5
  Mongoid.configure do |config|
8
- # database = Mongo::Connection.new.db DATABASE_NAME
9
- # database.add_user "mongoid", "test"
10
- config.master = Mongo::Connection.new.db DATABASE_NAME
6
+ config.master = Mongo::Connection.new.db 'mongoid_orderable_test'
11
7
  config.logger = nil
12
8
  end
13
9
  else
14
10
  Mongoid.configure do |config|
15
- config.connect_to DATABASE_NAME
11
+ config.connect_to 'mongoid_orderable_test'
16
12
  end
17
13
  end
18
14
 
19
- RSpec.configure do |config|
20
- config.mock_with :rspec
21
-
22
- config.before :suite do
23
- #DatabaseCleaner[:mongoid].strategy = :truncation
24
- end
25
-
26
- config.after :each do
27
- #DatabaseCleaner[:mongoid].clean
28
- end
15
+ unless Mongoid::Compatibility::Version.mongoid2?
16
+ Mongoid.logger.level = Logger::INFO
17
+ Mongo::Logger.logger.level = Logger::INFO if Mongoid::Compatibility::Version.mongoid5?
18
+ end
29
19
 
30
- config.after(:suite) do
31
- if MongoidOrderable.mongoid2?
32
- Mongoid.master.connection.drop_database DATABASE_NAME
33
- else
20
+ RSpec.configure do |config|
21
+ config.after(:all) do
22
+ if Mongoid::Compatibility::Version.mongoid2?
23
+ Mongoid.master.connection.drop_database(Mongoid.database.name)
24
+ elsif Mongoid::Compatibility::Version.mongoid3? || Mongoid::Compatibility::Version.mongoid4?
34
25
  Mongoid.default_session.drop
26
+ else
27
+ Mongoid::Clients.default.database.drop
35
28
  end
36
29
  end
37
30
  end
metadata CHANGED
@@ -1,55 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_orderable
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - pyromaniac
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-19 00:00:00.000000000 Z
11
+ date: 2015-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: mongoid
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: mongoid-compatibility
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  description: Gem allows mongoid model behave as orderable list
@@ -59,10 +73,10 @@ executables: []
59
73
  extensions: []
60
74
  extra_rdoc_files: []
61
75
  files:
62
- - .gitignore
63
- - .rspec
64
- - .rvmrc
65
- - .travis.yml
76
+ - ".gitignore"
77
+ - ".rspec"
78
+ - ".rvmrc"
79
+ - ".travis.yml"
66
80
  - CHANGELOG.md
67
81
  - Gemfile
68
82
  - README.md
@@ -102,17 +116,17 @@ require_paths:
102
116
  - lib
103
117
  required_ruby_version: !ruby/object:Gem::Requirement
104
118
  requirements:
105
- - - '>='
119
+ - - ">="
106
120
  - !ruby/object:Gem::Version
107
121
  version: '0'
108
122
  required_rubygems_version: !ruby/object:Gem::Requirement
109
123
  requirements:
110
- - - '>='
124
+ - - ">="
111
125
  - !ruby/object:Gem::Version
112
126
  version: '0'
113
127
  requirements: []
114
128
  rubyforge_project: mongoid_orderable
115
- rubygems_version: 2.2.2
129
+ rubygems_version: 2.4.5.1
116
130
  signing_key:
117
131
  specification_version: 4
118
132
  summary: Acts as list mongoid implementation