sortifiable 0.2.5 → 0.2.6
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/CHANGELOG +5 -0
 - data/lib/sortifiable.rb +1 -1
 - data/lib/sortifiable/version.rb +1 -1
 - data/test/sortifiable_test.rb +51 -0
 - metadata +17 -19
 
    
        data/CHANGELOG
    CHANGED
    
    
    
        data/lib/sortifiable.rb
    CHANGED
    
    | 
         @@ -476,7 +476,7 @@ module Sortifiable 
     | 
|
| 
       476 
476 
     | 
    
         
             
                  end
         
     | 
| 
       477 
477 
     | 
    
         | 
| 
       478 
478 
     | 
    
         
             
                  def update_position(new_position) #:nodoc:
         
     | 
| 
       479 
     | 
    
         
            -
                     
     | 
| 
      
 479 
     | 
    
         
            +
                    base_scope.update_all({ position_column => new_position }, { list_class.primary_key => id })
         
     | 
| 
       480 
480 
     | 
    
         
             
                    set_position new_position
         
     | 
| 
       481 
481 
     | 
    
         
             
                  end
         
     | 
| 
       482 
482 
     | 
    
         
             
              end
         
     | 
    
        data/lib/sortifiable/version.rb
    CHANGED
    
    
    
        data/test/sortifiable_test.rb
    CHANGED
    
    | 
         @@ -827,3 +827,54 @@ class AssociationScopeListTest < ActiveSupport::TestCase 
     | 
|
| 
       827 
827 
     | 
    
         
             
              end
         
     | 
| 
       828 
828 
     | 
    
         | 
| 
       829 
829 
     | 
    
         
             
            end
         
     | 
| 
      
 830 
     | 
    
         
            +
             
     | 
| 
      
 831 
     | 
    
         
            +
            class DefaultScopeListTest < ActiveSupport::TestCase
         
     | 
| 
      
 832 
     | 
    
         
            +
             
     | 
| 
      
 833 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 834 
     | 
    
         
            +
                [5, 6].each do |parent_id|
         
     | 
| 
      
 835 
     | 
    
         
            +
                  (1..4).each do |i|
         
     | 
| 
      
 836 
     | 
    
         
            +
                    ParanoidMixin.create! :pos => i, :parent_id => parent_id
         
     | 
| 
      
 837 
     | 
    
         
            +
                  end
         
     | 
| 
      
 838 
     | 
    
         
            +
                end
         
     | 
| 
      
 839 
     | 
    
         
            +
              end
         
     | 
| 
      
 840 
     | 
    
         
            +
             
     | 
| 
      
 841 
     | 
    
         
            +
              def relation
         
     | 
| 
      
 842 
     | 
    
         
            +
                ParanoidMixin.where(:parent_id => 5).where('pos IS NOT NULL')
         
     | 
| 
      
 843 
     | 
    
         
            +
              end
         
     | 
| 
      
 844 
     | 
    
         
            +
             
     | 
| 
      
 845 
     | 
    
         
            +
              def test_default_scope_is_ignored_when_updating_position
         
     | 
| 
      
 846 
     | 
    
         
            +
             
     | 
| 
      
 847 
     | 
    
         
            +
                assert_equal [1, 2, 3, 4], relation.map(&:id)
         
     | 
| 
      
 848 
     | 
    
         
            +
             
     | 
| 
      
 849 
     | 
    
         
            +
                ParanoidMixin.find(3).destroy
         
     | 
| 
      
 850 
     | 
    
         
            +
                assert_equal [1, 2, 4], relation.map(&:id)
         
     | 
| 
      
 851 
     | 
    
         
            +
             
     | 
| 
      
 852 
     | 
    
         
            +
                ParanoidMixin.find(4).move_to_top
         
     | 
| 
      
 853 
     | 
    
         
            +
                assert_equal [4, 1, 2], relation.map(&:id)
         
     | 
| 
      
 854 
     | 
    
         
            +
             
     | 
| 
      
 855 
     | 
    
         
            +
                ParanoidMixin.find(2).move_to_bottom
         
     | 
| 
      
 856 
     | 
    
         
            +
                assert_equal [4, 1, 2], relation.map(&:id)
         
     | 
| 
      
 857 
     | 
    
         
            +
             
     | 
| 
      
 858 
     | 
    
         
            +
                ParanoidMixin.find(1).remove_from_list
         
     | 
| 
      
 859 
     | 
    
         
            +
                assert_equal false, ParanoidMixin.find(1).in_list?
         
     | 
| 
      
 860 
     | 
    
         
            +
                assert_equal [4, 2], relation.map(&:id)
         
     | 
| 
      
 861 
     | 
    
         
            +
             
     | 
| 
      
 862 
     | 
    
         
            +
                ParanoidMixin.find(1).add_to_list
         
     | 
| 
      
 863 
     | 
    
         
            +
                assert_equal true, ParanoidMixin.find(1).in_list?
         
     | 
| 
      
 864 
     | 
    
         
            +
                assert_equal [4, 2, 1], relation.map(&:id)
         
     | 
| 
      
 865 
     | 
    
         
            +
             
     | 
| 
      
 866 
     | 
    
         
            +
                ParanoidMixin.deleted.find(3).remove_from_list
         
     | 
| 
      
 867 
     | 
    
         
            +
                assert_equal false, ParanoidMixin.deleted.find(3).in_list?
         
     | 
| 
      
 868 
     | 
    
         
            +
                assert_equal [4, 2, 1], relation.map(&:id)
         
     | 
| 
      
 869 
     | 
    
         
            +
             
     | 
| 
      
 870 
     | 
    
         
            +
                ParanoidMixin.deleted.find(3).add_to_list
         
     | 
| 
      
 871 
     | 
    
         
            +
                assert_equal true, ParanoidMixin.deleted.find(3).in_list?
         
     | 
| 
      
 872 
     | 
    
         
            +
                assert_equal [4, 2, 1], relation.map(&:id)
         
     | 
| 
      
 873 
     | 
    
         
            +
             
     | 
| 
      
 874 
     | 
    
         
            +
                ParanoidMixin.deleted.find(3).restore
         
     | 
| 
      
 875 
     | 
    
         
            +
                assert_equal [4, 2, 1, 3], relation.map(&:id)
         
     | 
| 
      
 876 
     | 
    
         
            +
                assert_equal [1, 2, 3, 4], relation.map(&:pos)
         
     | 
| 
      
 877 
     | 
    
         
            +
             
     | 
| 
      
 878 
     | 
    
         
            +
              end
         
     | 
| 
      
 879 
     | 
    
         
            +
             
     | 
| 
      
 880 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: sortifiable
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.2.6
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,12 +9,11 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date:  
     | 
| 
       13 
     | 
    
         
            -
            default_executable: 
         
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-03-05 00:00:00.000000000 Z
         
     | 
| 
       14 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
15 
     | 
    
         
             
              name: activesupport
         
     | 
| 
       17 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &2151822120 !ruby/object:Gem::Requirement
         
     | 
| 
       18 
17 
     | 
    
         
             
                none: false
         
     | 
| 
       19 
18 
     | 
    
         
             
                requirements:
         
     | 
| 
       20 
19 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -22,10 +21,10 @@ dependencies: 
     | 
|
| 
       22 
21 
     | 
    
         
             
                    version: '3.0'
         
     | 
| 
       23 
22 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       24 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       25 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *2151822120
         
     | 
| 
       26 
25 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       27 
26 
     | 
    
         
             
              name: activerecord
         
     | 
| 
       28 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 27 
     | 
    
         
            +
              requirement: &2151821600 !ruby/object:Gem::Requirement
         
     | 
| 
       29 
28 
     | 
    
         
             
                none: false
         
     | 
| 
       30 
29 
     | 
    
         
             
                requirements:
         
     | 
| 
       31 
30 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -33,10 +32,10 @@ dependencies: 
     | 
|
| 
       33 
32 
     | 
    
         
             
                    version: '3.0'
         
     | 
| 
       34 
33 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       35 
34 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       36 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 35 
     | 
    
         
            +
              version_requirements: *2151821600
         
     | 
| 
       37 
36 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       38 
37 
     | 
    
         
             
              name: bundler
         
     | 
| 
       39 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &2151820980 !ruby/object:Gem::Requirement
         
     | 
| 
       40 
39 
     | 
    
         
             
                none: false
         
     | 
| 
       41 
40 
     | 
    
         
             
                requirements:
         
     | 
| 
       42 
41 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -44,10 +43,10 @@ dependencies: 
     | 
|
| 
       44 
43 
     | 
    
         
             
                    version: 1.0.18
         
     | 
| 
       45 
44 
     | 
    
         
             
              type: :development
         
     | 
| 
       46 
45 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       47 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 46 
     | 
    
         
            +
              version_requirements: *2151820980
         
     | 
| 
       48 
47 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       49 
48 
     | 
    
         
             
              name: mysql
         
     | 
| 
       50 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 49 
     | 
    
         
            +
              requirement: &2151820440 !ruby/object:Gem::Requirement
         
     | 
| 
       51 
50 
     | 
    
         
             
                none: false
         
     | 
| 
       52 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       53 
52 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -55,10 +54,10 @@ dependencies: 
     | 
|
| 
       55 
54 
     | 
    
         
             
                    version: 2.8.1
         
     | 
| 
       56 
55 
     | 
    
         
             
              type: :development
         
     | 
| 
       57 
56 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       58 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 57 
     | 
    
         
            +
              version_requirements: *2151820440
         
     | 
| 
       59 
58 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       60 
59 
     | 
    
         
             
              name: mysql2
         
     | 
| 
       61 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 60 
     | 
    
         
            +
              requirement: &2151819900 !ruby/object:Gem::Requirement
         
     | 
| 
       62 
61 
     | 
    
         
             
                none: false
         
     | 
| 
       63 
62 
     | 
    
         
             
                requirements:
         
     | 
| 
       64 
63 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -66,10 +65,10 @@ dependencies: 
     | 
|
| 
       66 
65 
     | 
    
         
             
                    version: 0.2.7
         
     | 
| 
       67 
66 
     | 
    
         
             
              type: :development
         
     | 
| 
       68 
67 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       69 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 68 
     | 
    
         
            +
              version_requirements: *2151819900
         
     | 
| 
       70 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       71 
70 
     | 
    
         
             
              name: pg
         
     | 
| 
       72 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 71 
     | 
    
         
            +
              requirement: &2151819240 !ruby/object:Gem::Requirement
         
     | 
| 
       73 
72 
     | 
    
         
             
                none: false
         
     | 
| 
       74 
73 
     | 
    
         
             
                requirements:
         
     | 
| 
       75 
74 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -77,10 +76,10 @@ dependencies: 
     | 
|
| 
       77 
76 
     | 
    
         
             
                    version: 0.9.0
         
     | 
| 
       78 
77 
     | 
    
         
             
              type: :development
         
     | 
| 
       79 
78 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       80 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 79 
     | 
    
         
            +
              version_requirements: *2151819240
         
     | 
| 
       81 
80 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       82 
81 
     | 
    
         
             
              name: sqlite3
         
     | 
| 
       83 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 82 
     | 
    
         
            +
              requirement: &2151818640 !ruby/object:Gem::Requirement
         
     | 
| 
       84 
83 
     | 
    
         
             
                none: false
         
     | 
| 
       85 
84 
     | 
    
         
             
                requirements:
         
     | 
| 
       86 
85 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -88,7 +87,7 @@ dependencies: 
     | 
|
| 
       88 
87 
     | 
    
         
             
                    version: 1.3.3
         
     | 
| 
       89 
88 
     | 
    
         
             
              type: :development
         
     | 
| 
       90 
89 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       91 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 90 
     | 
    
         
            +
              version_requirements: *2151818640
         
     | 
| 
       92 
91 
     | 
    
         
             
            description: ! 'This gem provides an acts_as_list compatible capability for sorting
         
     | 
| 
       93 
92 
     | 
    
         | 
| 
       94 
93 
     | 
    
         
             
              and reordering a number of objects in a list. The class that has this
         
     | 
| 
         @@ -118,7 +117,6 @@ files: 
     | 
|
| 
       118 
117 
     | 
    
         
             
            - lib/sortifiable/version.rb
         
     | 
| 
       119 
118 
     | 
    
         
             
            - sortifiable.gemspec
         
     | 
| 
       120 
119 
     | 
    
         
             
            - test/sortifiable_test.rb
         
     | 
| 
       121 
     | 
    
         
            -
            has_rdoc: true
         
     | 
| 
       122 
120 
     | 
    
         
             
            homepage: http://github.com/pixeltrix/sortifiable/
         
     | 
| 
       123 
121 
     | 
    
         
             
            licenses: []
         
     | 
| 
       124 
122 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
         @@ -139,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       139 
137 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       140 
138 
     | 
    
         
             
            requirements: []
         
     | 
| 
       141 
139 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       142 
     | 
    
         
            -
            rubygems_version: 1. 
     | 
| 
      
 140 
     | 
    
         
            +
            rubygems_version: 1.8.10
         
     | 
| 
       143 
141 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       144 
142 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       145 
143 
     | 
    
         
             
            summary: Sort your models
         
     |