acts_as_list 0.9.16 → 0.9.17

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: 370205f3c55e44c0633e2aabc665fa4489bf4e4c
4
- data.tar.gz: 2ce434302042df344231d3b8cb4fc053ba2c39af
3
+ metadata.gz: fab8be3ea9754103e60311aaa592f0ab4b7c84e3
4
+ data.tar.gz: 166a2aff0b3f6cbb6cfc67709de71fda2f4b3960
5
5
  SHA512:
6
- metadata.gz: 4bc4009e669c92bc3822baa35d9560c54d66cd32ef950fad5f2c0f1ff1f6f04cc5d3f747265fc1a7462bf0118ba917aff33256dde5037cfa2398dbe34f6e140b
7
- data.tar.gz: 6ee14901baf239084f2c31fa89e63d50b92e6de9113f91cecb3db18f0dae751cbfd50eb5578bd6d4960c6427dc5cfef0f6ab73e167b1d45e1dbe6f4286c0a806
6
+ metadata.gz: 5afeff2ad86a92fb1261062596b2646508dee23473242686bf20ccf809623834705e467c3ad701963eba9a46c839f29fc2f3aba4adbce62dbe49d91e810f628d
7
+ data.tar.gz: 037aa8e4d42c306040f7e2da8c9f9615e1c1a1c123df08edb7d1cb511fadb63a388f65567a45e20ea58a3444905f024f38da10fa54b0e55cdd3c610587539af4
@@ -1,5 +1,19 @@
1
1
  # Change Log
2
2
 
3
+ ## [v0.9.16](https://github.com/swanandp/acts_as_list/tree/v0.9.16) (2018-08-30)
4
+ [Full Changelog](https://github.com/swanandp/acts_as_list/compare/v0.9.15...v0.9.16)
5
+
6
+ **Closed issues:**
7
+
8
+ - Re-ordering at specific position [\#318](https://github.com/swanandp/acts_as_list/issues/318)
9
+ - `no\_update` is not applied to subclasses [\#314](https://github.com/swanandp/acts_as_list/issues/314)
10
+ - NoMethodError: undefined method `acts\_as\_list' [\#303](https://github.com/swanandp/acts_as_list/issues/303)
11
+ - Cannot create item at position 0 [\#297](https://github.com/swanandp/acts_as_list/issues/297)
12
+
13
+ **Merged pull requests:**
14
+
15
+ - Unscope `select` to avoid PG::UndefinedFunction [\#283](https://github.com/swanandp/acts_as_list/pull/283) ([donv](https://github.com/donv))
16
+
3
17
  ## [v0.9.15](https://github.com/swanandp/acts_as_list/tree/v0.9.15) (2018-06-11)
4
18
  [Full Changelog](https://github.com/swanandp/acts_as_list/compare/v0.9.14...v0.9.15)
5
19
 
@@ -105,20 +105,14 @@ module ActiveRecord
105
105
  # position adjusted accordingly.
106
106
  def move_to_bottom
107
107
  return unless in_list?
108
- acts_as_list_class.transaction do
109
- decrement_positions_on_lower_items
110
- assume_bottom_position
111
- end
108
+ insert_at_position bottom_position_in_list.to_i
112
109
  end
113
110
 
114
111
  # Move to the top of the list. If the item is already in the list, the items above it have their
115
112
  # position adjusted accordingly.
116
113
  def move_to_top
117
114
  return unless in_list?
118
- acts_as_list_class.transaction do
119
- increment_positions_on_higher_items
120
- assume_top_position
121
- end
115
+ insert_at_position acts_as_list_top
122
116
  end
123
117
 
124
118
  # Removes the item from the list.
@@ -399,6 +393,7 @@ module ActiveRecord
399
393
  end
400
394
 
401
395
  def insert_at_position(position, raise_exception_if_save_fails=false)
396
+ raise ArgumentError.new("position cannot be lower than top") if position < acts_as_list_top
402
397
  return set_list_position(position, raise_exception_if_save_fails) if new_record?
403
398
  with_lock do
404
399
  if in_list?
@@ -3,7 +3,7 @@
3
3
  module ActiveRecord
4
4
  module Acts
5
5
  module List
6
- VERSION = '0.9.16'
6
+ VERSION = '0.9.17'
7
7
  end
8
8
  end
9
9
  end
@@ -897,6 +897,20 @@ class SequentialUpdatesMixinNotNullUniquePositiveConstraintsTest < ActsAsListTes
897
897
  assert_equal 3, new.pos
898
898
  end
899
899
 
900
+ def test_move_to_bottom
901
+ item = SequentialUpdatesDefault.order(:pos).first
902
+ item.move_to_bottom
903
+ assert_equal 4, item.pos
904
+ end
905
+
906
+ def test_move_to_top
907
+ new_item = SequentialUpdatesDefault.create!
908
+ assert_equal 5, new_item.pos
909
+
910
+ new_item.move_to_top
911
+ assert_equal 1, new_item.pos
912
+ end
913
+
900
914
  def test_destroy
901
915
  new_item = SequentialUpdatesDefault.create
902
916
  assert_equal 5, new_item.pos
@@ -908,4 +922,12 @@ class SequentialUpdatesMixinNotNullUniquePositiveConstraintsTest < ActsAsListTes
908
922
  assert_equal [1,2,3,4], SequentialUpdatesDefault.all.map(&:pos).sort
909
923
 
910
924
  end
925
+
926
+ def test_exception_on_wrong_position
927
+ new_item = SequentialUpdatesDefault.create
928
+
929
+ assert_raises ArgumentError do
930
+ new_item.insert_at(0)
931
+ end
932
+ end
911
933
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.16
4
+ version: 0.9.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-08-30 00:00:00.000000000 Z
13
+ date: 2018-10-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord