acts_as_list 0.8.1 → 0.8.2
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 +4 -4
 - data/CHANGELOG.md +12 -1
 - data/lib/acts_as_list/active_record/acts/list.rb +6 -4
 - data/lib/acts_as_list/version.rb +1 -1
 - data/test/shared_list_sub.rb +17 -0
 - data/test/test_list.rb +30 -0
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 5b311fb3c5f9b0839f22ff361020142db9c63045
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 7600388596e829712e8936f9a31b70008ee7d18b
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: dc169373691b7a79c44393a368f4f589b04462c341f8f423f7eeedf846f29346dd3c6821f618287244a24ceafe04ebe416b4c6b6704f0be8470e69a1cd098a76
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 748929065353ef8d675953d0469a4bd26ec8aee6921edfe6710b97186b25f75abc4a57bd648a2b076923cf5283e6dafb225ba0e6596efd21b23734897adc2f66
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,5 +1,17 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Change Log
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ## [v0.8.1](https://github.com/swanandp/acts_as_list/tree/v0.8.1) (2016-09-06)
         
     | 
| 
      
 4 
     | 
    
         
            +
            [Full Changelog](https://github.com/swanandp/acts_as_list/compare/v0.8.0...v0.8.1)
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            **Closed issues:**
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            - Rubinius Intermittent testing error [\#218](https://github.com/swanandp/acts_as_list/issues/218)
         
     | 
| 
      
 9 
     | 
    
         
            +
            - ActiveRecord dependency causes rake assets:compile to fail without access to a database [\#84](https://github.com/swanandp/acts_as_list/issues/84)
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            **Merged pull requests:**
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            - Refactor class\_eval with string into class\_eval with block [\#215](https://github.com/swanandp/acts_as_list/pull/215) ([rdvdijk](https://github.com/rdvdijk))
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       3 
15 
     | 
    
         
             
            ## [v0.8.0](https://github.com/swanandp/acts_as_list/tree/v0.8.0) (2016-08-23)
         
     | 
| 
       4 
16 
     | 
    
         
             
            [Full Changelog](https://github.com/swanandp/acts_as_list/compare/v0.7.7...v0.8.0)
         
     | 
| 
       5 
17 
     | 
    
         | 
| 
         @@ -75,7 +87,6 @@ 
     | 
|
| 
       75 
87 
     | 
    
         
             
            - Creating an item with a nil scope should not add it to the list [\#92](https://github.com/swanandp/acts_as_list/issues/92)
         
     | 
| 
       76 
88 
     | 
    
         
             
            - Performance Improvements  [\#88](https://github.com/swanandp/acts_as_list/issues/88)
         
     | 
| 
       77 
89 
     | 
    
         
             
            - has\_many :through or has\_many\_and\_belongs\_to\_many support [\#86](https://github.com/swanandp/acts_as_list/issues/86)
         
     | 
| 
       78 
     | 
    
         
            -
            - ActiveRecord dependency causes rake assets:compile to fail without access to a database [\#84](https://github.com/swanandp/acts_as_list/issues/84)
         
     | 
| 
       79 
90 
     | 
    
         
             
            - move\_higher/move\_lower vs move\_to\_top/move\_to\_bottom act differently when item is already at top or bottom [\#77](https://github.com/swanandp/acts_as_list/issues/77)
         
     | 
| 
       80 
91 
     | 
    
         
             
            - Limiting the list size [\#61](https://github.com/swanandp/acts_as_list/issues/61)
         
     | 
| 
       81 
92 
     | 
    
         
             
            - Adding multiple creates strange ordering [\#55](https://github.com/swanandp/acts_as_list/issues/55)
         
     | 
| 
         @@ -266,7 +266,8 @@ module ActiveRecord 
     | 
|
| 
       266 
266 
     | 
    
         
             
                      limit ||= acts_as_list_list.count
         
     | 
| 
       267 
267 
     | 
    
         
             
                      position_value = send(position_column)
         
     | 
| 
       268 
268 
     | 
    
         
             
                      acts_as_list_list.
         
     | 
| 
       269 
     | 
    
         
            -
                        where("#{quoted_position_column_with_table_name}  
     | 
| 
      
 269 
     | 
    
         
            +
                        where("#{quoted_position_column_with_table_name} <= ?", position_value).
         
     | 
| 
      
 270 
     | 
    
         
            +
                        where("#{quoted_table_name}.#{self.class.primary_key} != ?", self.send(self.class.primary_key)).
         
     | 
| 
       270 
271 
     | 
    
         
             
                        order("#{quoted_position_column_with_table_name} DESC").
         
     | 
| 
       271 
272 
     | 
    
         
             
                        limit(limit)
         
     | 
| 
       272 
273 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -283,7 +284,8 @@ module ActiveRecord 
     | 
|
| 
       283 
284 
     | 
    
         
             
                      limit ||= acts_as_list_list.count
         
     | 
| 
       284 
285 
     | 
    
         
             
                      position_value = send(position_column)
         
     | 
| 
       285 
286 
     | 
    
         
             
                      acts_as_list_list.
         
     | 
| 
       286 
     | 
    
         
            -
                        where("#{quoted_position_column_with_table_name}  
     | 
| 
      
 287 
     | 
    
         
            +
                        where("#{quoted_position_column_with_table_name} >= ?", position_value).
         
     | 
| 
      
 288 
     | 
    
         
            +
                        where("#{quoted_table_name}.#{self.class.primary_key} != ?", self.send(self.class.primary_key)).
         
     | 
| 
       287 
289 
     | 
    
         
             
                        order("#{quoted_position_column_with_table_name} ASC").
         
     | 
| 
       288 
290 
     | 
    
         
             
                        limit(limit)
         
     | 
| 
       289 
291 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -468,7 +470,7 @@ module ActiveRecord 
     | 
|
| 
       468 
470 
     | 
    
         
             
                      end
         
     | 
| 
       469 
471 
     | 
    
         | 
| 
       470 
472 
     | 
    
         
             
                      def update_positions
         
     | 
| 
       471 
     | 
    
         
            -
                        old_position = send("#{position_column}_was") 
     | 
| 
      
 473 
     | 
    
         
            +
                        old_position = send("#{position_column}_was") || bottom_position_in_list + 1
         
     | 
| 
       472 
474 
     | 
    
         
             
                        new_position = send(position_column).to_i
         
     | 
| 
       473 
475 
     | 
    
         | 
| 
       474 
476 
     | 
    
         
             
                        return unless acts_as_list_list.where(
         
     | 
| 
         @@ -523,4 +525,4 @@ module ActiveRecord 
     | 
|
| 
       523 
525 
     | 
    
         
             
                  end
         
     | 
| 
       524 
526 
     | 
    
         
             
                end
         
     | 
| 
       525 
527 
     | 
    
         
             
              end
         
     | 
| 
       526 
     | 
    
         
            -
            end
         
     | 
| 
      
 528 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/acts_as_list/version.rb
    CHANGED
    
    
    
        data/test/shared_list_sub.rb
    CHANGED
    
    | 
         @@ -85,6 +85,23 @@ module Shared 
     | 
|
| 
       85 
85 
     | 
    
         
             
                  assert_equal [], li1.higher_items
         
     | 
| 
       86 
86 
     | 
    
         
             
                end
         
     | 
| 
       87 
87 
     | 
    
         | 
| 
      
 88 
     | 
    
         
            +
                def test_next_prev_groups_with_same_position
         
     | 
| 
      
 89 
     | 
    
         
            +
                  li1 = ListMixin.where(id: 1).first
         
     | 
| 
      
 90 
     | 
    
         
            +
                  li2 = ListMixin.where(id: 2).first
         
     | 
| 
      
 91 
     | 
    
         
            +
                  li3 = ListMixin.where(id: 3).first
         
     | 
| 
      
 92 
     | 
    
         
            +
                  li4 = ListMixin.where(id: 4).first
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
                  li3.update_column(:pos, 2) # Make the same position as li2
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
                  assert_equal [1, 2, 2, 4], ListMixin.pluck(:pos)
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
                  assert_equal [li3, li4], li2.lower_items
         
     | 
| 
      
 99 
     | 
    
         
            +
                  assert_equal [li2, li4], li3.lower_items
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
                  assert_equal [li3, li1], li2.higher_items
         
     | 
| 
      
 102 
     | 
    
         
            +
                  assert_equal [li2, li1], li3.higher_items
         
     | 
| 
      
 103 
     | 
    
         
            +
                end
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
       88 
105 
     | 
    
         
             
                def test_injection
         
     | 
| 
       89 
106 
     | 
    
         
             
                  item = ListMixin.new("parent_id"=>1)
         
     | 
| 
       90 
107 
     | 
    
         
             
                  assert_equal({ parent_id: 1 }, item.scope_condition)
         
     | 
    
        data/test/test_list.rb
    CHANGED
    
    | 
         @@ -748,3 +748,33 @@ class ActsAsListTopTest < ActsAsListTestCase 
     | 
|
| 
       748 
748 
     | 
    
         
             
                assert_equal 0, ZeroBasedMixin.acts_as_list_top
         
     | 
| 
       749 
749 
     | 
    
         
             
              end
         
     | 
| 
       750 
750 
     | 
    
         
             
            end
         
     | 
| 
      
 751 
     | 
    
         
            +
             
     | 
| 
      
 752 
     | 
    
         
            +
            class NilPositionTest < ActsAsListTestCase
         
     | 
| 
      
 753 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 754 
     | 
    
         
            +
                setup_db
         
     | 
| 
      
 755 
     | 
    
         
            +
              end
         
     | 
| 
      
 756 
     | 
    
         
            +
             
     | 
| 
      
 757 
     | 
    
         
            +
              def test_nil_position_ordering
         
     | 
| 
      
 758 
     | 
    
         
            +
                new1 = DefaultScopedMixin.create pos: nil
         
     | 
| 
      
 759 
     | 
    
         
            +
                new2 = DefaultScopedMixin.create pos: nil
         
     | 
| 
      
 760 
     | 
    
         
            +
                new3 = DefaultScopedMixin.create pos: nil
         
     | 
| 
      
 761 
     | 
    
         
            +
                DefaultScopedMixin.update_all(pos: nil)
         
     | 
| 
      
 762 
     | 
    
         
            +
             
     | 
| 
      
 763 
     | 
    
         
            +
                assert_equal [nil, nil, nil], DefaultScopedMixin.all.map(&:pos)
         
     | 
| 
      
 764 
     | 
    
         
            +
             
     | 
| 
      
 765 
     | 
    
         
            +
                new1.reload.pos = 1
         
     | 
| 
      
 766 
     | 
    
         
            +
                new1.save
         
     | 
| 
      
 767 
     | 
    
         
            +
             
     | 
| 
      
 768 
     | 
    
         
            +
                new3.reload.pos = 1
         
     | 
| 
      
 769 
     | 
    
         
            +
                new3.save
         
     | 
| 
      
 770 
     | 
    
         
            +
             
     | 
| 
      
 771 
     | 
    
         
            +
                assert_equal [nil, 1, 2], DefaultScopedMixin.all.map(&:pos)
         
     | 
| 
      
 772 
     | 
    
         
            +
                assert_equal [2, 3, 1], DefaultScopedMixin.all.map(&:id)
         
     | 
| 
      
 773 
     | 
    
         
            +
             
     | 
| 
      
 774 
     | 
    
         
            +
                new2.reload.pos = 1
         
     | 
| 
      
 775 
     | 
    
         
            +
                new2.save
         
     | 
| 
      
 776 
     | 
    
         
            +
             
     | 
| 
      
 777 
     | 
    
         
            +
                assert_equal [1, 2, 3], DefaultScopedMixin.all.map(&:pos)
         
     | 
| 
      
 778 
     | 
    
         
            +
                assert_equal [2, 3, 1], DefaultScopedMixin.all.map(&:id)
         
     | 
| 
      
 779 
     | 
    
         
            +
              end
         
     | 
| 
      
 780 
     | 
    
         
            +
            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.8. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.8.2
         
     | 
| 
       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: 2016-09- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2016-09-23 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: activerecord
         
     |