mongoid_orderable 4.1.1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
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