Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 7444

Show
Ignore:
Timestamp:
09/10/07 04:41:09 (1 year ago)
Author:
nzkoz
Message:

Remove acts_as_list. Users are advised to install the new plugin. References #9415. [josh, nzkoz]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/activerecord/CHANGELOG

    r7419 r7444  
    11*SVN* 
     2 
     3* Remove acts_as_list.  To use it, install the plugin.  [josh, nzkoz] 
     4 
     5  http://dev.rubyonrails.org/svn/rails/plugins/acts_as_list/ 
    26 
    37* Explicitly require active_record/query_cache before using it.  [Jeremy Kemper] 
  • trunk/activerecord/lib/active_record.rb

    r7425 r7444  
    6767  include ActiveRecord::Reflection 
    6868  include ActiveRecord::Acts::Tree 
    69   include ActiveRecord::Acts::List 
    7069  include ActiveRecord::Acts::NestedSet 
    7170  include ActiveRecord::Calculations 
  • trunk/activerecord/test/fixtures/mixin.rb

    r5889 r7444  
    1616end 
    1717 
    18 class ListMixin < Mixin 
    19   acts_as_list :column => "pos", :scope => :parent 
    20  
    21   def self.table_name() "mixins" end 
    22 end 
    23  
    24 class ListMixinSub1 < ListMixin 
    25 end 
    26  
    27 class ListMixinSub2 < ListMixin 
    28 end 
    29  
    30  
    31 class ListWithStringScopeMixin < ActiveRecord::Base 
    32   acts_as_list :column => "pos", :scope => 'parent_id = #{parent_id}' 
    33  
    34   def self.table_name() "mixins" end 
    35 end 
    3618 
    3719class NestedSet < Mixin 
  • trunk/activerecord/test/fixtures/mixins.yml

    r6903 r7444  
    6060  parent_id: 5007 
    6161 
    62 # List mixins 
    63  
    64 <% (1..4).each do |counter| %>   
    65 list_<%= counter %>: 
    66   id: <%= counter+1006 %> 
    67   pos: <%= counter  %> 
    68   type: ListMixin 
    69   parent_id: 5 
    70 <% end %> 
    7162 
    7263# Nested set mixins 
     
    118109<% end %> 
    119110 
    120 # subclasses of list items 
    121 <% (1..4).each do |i| %> 
    122 list_sub_<%= i %>: 
    123   id: <%= i + 5000 %> 
    124   pos: <%= i %> 
    125   parent_id: 5000 
    126   type: <%= (i % 2 == 1) ? ListMixinSub1 : ListMixinSub2 %>  
    127 <% end %> 
  • trunk/activerecord/test/mixin_test.rb

    r7402 r7444  
    11require 'abstract_unit' 
    22require 'active_record/acts/tree' 
    3 require 'active_record/acts/list' 
    43require 'active_record/acts/nested_set' 
    54require 'fixtures/mixin' 
     
    2221end 
    2322 
    24 class ListTest < Test::Unit::TestCase 
    25   fixtures :mixins 
    26  
    27   def test_reordering 
    28     assert_equal mixins(:list_1, :list_2, :list_3, :list_4), 
    29                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    30  
    31     mixins(:list_2).move_lower 
    32  
    33     assert_equal mixins(:list_1, :list_3, :list_2, :list_4), 
    34                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    35  
    36     mixins(:list_2).move_higher 
    37  
    38     assert_equal mixins(:list_1, :list_2, :list_3, :list_4), 
    39                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    40  
    41     mixins(:list_1).move_to_bottom 
    42  
    43     assert_equal mixins(:list_2, :list_3, :list_4, :list_1), 
    44                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    45  
    46     mixins(:list_1).move_to_top 
    47  
    48     assert_equal mixins(:list_1, :list_2, :list_3, :list_4), 
    49                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    50  
    51  
    52     mixins(:list_2).move_to_bottom 
    53  
    54     assert_equal mixins(:list_1, :list_3, :list_4, :list_2), 
    55                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    56  
    57     mixins(:list_4).move_to_top 
    58  
    59     assert_equal mixins(:list_4, :list_1, :list_3, :list_2), 
    60                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    61  
    62   end 
    63  
    64   def test_move_to_bottom_with_next_to_last_item 
    65     assert_equal mixins(:list_1, :list_2, :list_3, :list_4), 
    66                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    67  
    68     mixins(:list_3).move_to_bottom 
    69  
    70     assert_equal mixins(:list_1, :list_2, :list_4, :list_3), 
    71                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    72   end 
    73  
    74   def test_next_prev 
    75     assert_equal mixins(:list_2), mixins(:list_1).lower_item 
    76     assert_nil mixins(:list_1).higher_item 
    77     assert_equal mixins(:list_3), mixins(:list_4).higher_item 
    78     assert_nil mixins(:list_4).lower_item 
    79   end 
    80  
    81  
    82   def test_injection 
    83     item = ListMixin.new("parent_id"=>1) 
    84     assert_equal "parent_id = 1", item.scope_condition 
    85     assert_equal "pos", item.position_column 
    86   end 
    87  
    88   def test_insert 
    89     new = ListMixin.create("parent_id"=>20) 
    90     assert_equal 1, new.pos 
    91     assert new.first? 
    92     assert new.last? 
    93  
    94     new = ListMixin.create("parent_id"=>20) 
    95     assert_equal 2, new.pos 
    96     assert !new.first? 
    97     assert new.last? 
    98  
    99     new = ListMixin.create("parent_id"=>20) 
    100     assert_equal 3, new.pos 
    101     assert !new.first? 
    102     assert new.last? 
    103  
    104     new = ListMixin.create("parent_id"=>0) 
    105     assert_equal 1, new.pos 
    106     assert new.first? 
    107     assert new.last? 
    108   end 
    109  
    110   def test_insert_at 
    111     new = ListMixin.create("parent_id" => 20) 
    112     assert_equal 1, new.pos 
    113  
    114     new = ListMixin.create("parent_id" => 20) 
    115     assert_equal 2, new.pos 
    116  
    117     new = ListMixin.create("parent_id" => 20) 
    118     assert_equal 3, new.pos 
    119  
    120     new4 = ListMixin.create("parent_id" => 20) 
    121     assert_equal 4, new4.pos 
    122  
    123     new4.insert_at(3) 
    124     assert_equal 3, new4.pos 
    125  
    126     new.reload 
    127     assert_equal 4, new.pos 
    128  
    129     new.insert_at(2) 
    130     assert_equal 2, new.pos 
    131  
    132     new4.reload 
    133     assert_equal 4, new4.pos 
    134  
    135     new5 = ListMixin.create("parent_id" => 20) 
    136     assert_equal 5, new5.pos 
    137  
    138     new5.insert_at(1) 
    139     assert_equal 1, new5.pos 
    140  
    141     new4.reload 
    142     assert_equal 5, new4.pos 
    143   end 
    144  
    145   def test_delete_middle 
    146     assert_equal mixins(:list_1, :list_2, :list_3, :list_4), 
    147                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    148  
    149     mixins(:list_2).destroy 
    150  
    151     assert_equal mixins(:list_1, :list_3, :list_4, :reload), 
    152                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    153  
    154     assert_equal 1, mixins(:list_1).pos 
    155     assert_equal 2, mixins(:list_3).pos 
    156     assert_equal 3, mixins(:list_4).pos 
    157  
    158     mixins(:list_1).destroy 
    159  
    160     assert_equal mixins(:list_3, :list_4, :reload), 
    161                   ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos') 
    162  
    163     assert_equal 1, mixins(:list_3).pos 
    164     assert_equal 2, mixins(:list_4).pos 
    165  
    166   end 
    167  
    168   def test_with_string_based_scope 
    169     new = ListWithStringScopeMixin.create("parent_id"=>500) 
    170     assert_equal 1, new.pos 
    171     assert new.first? 
    172     assert new.last? 
    173   end 
    174  
    175   def test_nil_scope 
    176     new1, new2, new3 = ListMixin.create, ListMixin.create, ListMixin.create 
    177     new2.move_higher 
    178     assert_equal [new2, new1, new3], ListMixin.find(:all, :conditions => 'parent_id IS NULL', :order => 'pos') 
    179   end 
    180  
    181 end 
    18223 
    18324class TreeTest < Test::Unit::TestCase 
     
    340181 
    341182 
    342 class ListSubTest < Test::Unit::TestCase 
    343   fixtures :mixins 
    344  
    345   def test_reordering 
    346     assert_equal mixins(:list_sub_1, :list_sub_2, :list_sub_3, :list_sub_4), 
    347                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    348  
    349     mixins(:list_sub_2).move_lower 
    350  
    351     assert_equal mixins(:list_sub_1, :list_sub_3, :list_sub_2, :list_sub_4), 
    352                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    353  
    354     mixins(:list_sub_2).move_higher 
    355  
    356     assert_equal mixins(:list_sub_1, :list_sub_2, :list_sub_3, :list_sub_4), 
    357                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    358  
    359     mixins(:list_sub_1).move_to_bottom 
    360  
    361     assert_equal mixins(:list_sub_2, :list_sub_3, :list_sub_4, :list_sub_1), 
    362                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    363  
    364     mixins(:list_sub_1).move_to_top 
    365  
    366     assert_equal mixins(:list_sub_1, :list_sub_2, :list_sub_3, :list_sub_4), 
    367                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    368183 
    369184 
    370     mixins(:list_sub_2).move_to_bottom 
    371  
    372     assert_equal mixins(:list_sub_1, :list_sub_3, :list_sub_4, :list_sub_2), 
    373                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    374  
    375     mixins(:list_sub_4).move_to_top 
    376  
    377     assert_equal mixins(:list_sub_4, :list_sub_1, :list_sub_3, :list_sub_2), 
    378                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    379  
    380   end 
    381  
    382   def test_move_to_bottom_with_next_to_last_item 
    383     assert_equal mixins(:list_sub_1, :list_sub_2, :list_sub_3, :list_sub_4), 
    384                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    385  
    386     mixins(:list_sub_3).move_to_bottom 
    387  
    388     assert_equal mixins(:list_sub_1, :list_sub_2, :list_sub_4, :list_sub_3), 
    389                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    390   end 
    391  
    392   def test_next_prev 
    393     assert_equal mixins(:list_sub_2), mixins(:list_sub_1).lower_item 
    394     assert_nil mixins(:list_sub_1).higher_item 
    395     assert_equal mixins(:list_sub_3), mixins(:list_sub_4).higher_item 
    396     assert_nil mixins(:list_sub_4).lower_item 
    397   end 
    398  
    399  
    400   def test_injection 
    401     item = ListMixin.new("parent_id"=>1) 
    402     assert_equal "parent_id = 1", item.scope_condition 
    403     assert_equal "pos", item.position_column 
    404   end 
    405  
    406  
    407   def test_insert_at 
    408     new = ListMixin.create("parent_id" => 20) 
    409     assert_equal 1, new.pos 
    410  
    411     new = ListMixinSub1.create("parent_id" => 20) 
    412     assert_equal 2, new.pos 
    413  
    414     new = ListMixinSub2.create("parent_id" => 20) 
    415     assert_equal 3, new.pos 
    416  
    417     new4 = ListMixin.create("parent_id" => 20) 
    418     assert_equal 4, new4.pos 
    419  
    420     new4.insert_at(3) 
    421     assert_equal 3, new4.pos 
    422  
    423     new.reload 
    424     assert_equal 4, new.pos 
    425  
    426     new.insert_at(2) 
    427     assert_equal 2, new.pos 
    428  
    429     new4.reload 
    430     assert_equal 4, new4.pos 
    431  
    432     new5 = ListMixinSub1.create("parent_id" => 20) 
    433     assert_equal 5, new5.pos 
    434  
    435     new5.insert_at(1) 
    436     assert_equal 1, new5.pos 
    437  
    438     new4.reload 
    439     assert_equal 5, new4.pos 
    440   end 
    441  
    442   def test_delete_middle 
    443     assert_equal mixins(:list_sub_1, :list_sub_2, :list_sub_3, :list_sub_4), 
    444                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    445  
    446     mixins(:list_sub_2).destroy 
    447  
    448     assert_equal mixins(:list_sub_1, :list_sub_3, :list_sub_4, :reload), 
    449                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    450  
    451     assert_equal 1, mixins(:list_sub_1).pos 
    452     assert_equal 2, mixins(:list_sub_3).pos 
    453     assert_equal 3, mixins(:list_sub_4).pos 
    454  
    455     mixins(:list_sub_1).destroy 
    456  
    457     assert_equal mixins(:list_sub_3, :list_sub_4, :reload), 
    458                   ListMixin.find(:all, :conditions => 'parent_id = 5000', :order => 'pos') 
    459  
    460     assert_equal 1, mixins(:list_sub_3).pos 
    461     assert_equal 2, mixins(:list_sub_4).pos 
    462  
    463   end 
    464  
    465 end 
    466