Module ActiveRecord::Acts::List::InstanceMethods
In: vendor/rails/activerecord/lib/active_record/acts/list.rb

All the methods available to a record that has had acts_as_list specified. Each method works by assuming the object to be the item in the list, so chapter.move_lower would move that chapter lower in the list of all chapters. Likewise, chapter.first? would return true if that chapter is the first in the list of all chapters.

Methods

Public Instance methods

Decrease the position of this item without adjusting the rest of the list.

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 133
133:         def decrement_position
134:           return unless in_list?
135:           update_attribute position_column, self.send(position_column).to_i - 1
136:         end

Return true if this object is the first in the list.

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 139
139:         def first?
140:           return false unless in_list?
141:           self.send(position_column) == 1
142:         end

Return the next higher item in the list.

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 151
151:         def higher_item
152:           return nil unless in_list?
153:           acts_as_list_class.find(:first, :conditions =>
154:             "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i - 1).to_s}"
155:           )
156:         end

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 166
166:         def in_list?
167:           !send(position_column).nil?
168:         end

Increase the position of this item without adjusting the rest of the list.

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 127
127:         def increment_position
128:           return unless in_list?
129:           update_attribute position_column, self.send(position_column).to_i + 1
130:         end

[Source]

    # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 78
78:         def insert_at(position = 1)
79:           insert_at_position(position)
80:         end

Return true if this object is the last in the list.

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 145
145:         def last?
146:           return false unless in_list?
147:           self.send(position_column) == bottom_position_in_list
148:         end

Return the next lower item in the list.

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 159
159:         def lower_item
160:           return nil unless in_list?
161:           acts_as_list_class.find(:first, :conditions =>
162:             "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i + 1).to_s}"
163:           )
164:         end

Swap positions with the next higher item, if one exists.

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 93
 93:         def move_higher
 94:           return unless higher_item
 95: 
 96:           acts_as_list_class.transaction do
 97:             higher_item.increment_position
 98:             decrement_position
 99:           end
100:         end

Swap positions with the next lower item, if one exists.

[Source]

    # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 83
83:         def move_lower
84:           return unless lower_item
85: 
86:           acts_as_list_class.transaction do
87:             lower_item.decrement_position
88:             increment_position
89:           end
90:         end

Move to the bottom of the list. If the item is already in the list, the items below it have their position adjusted accordingly.

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 104
104:         def move_to_bottom
105:           return unless in_list?
106:           acts_as_list_class.transaction do
107:             decrement_positions_on_lower_items
108:             assume_bottom_position
109:           end
110:         end

Move to the top of the list. If the item is already in the list, the items above it have their position adjusted accordingly.

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 114
114:         def move_to_top
115:           return unless in_list?
116:           acts_as_list_class.transaction do
117:             increment_positions_on_higher_items
118:             assume_top_position
119:           end
120:         end

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 122
122:         def remove_from_list
123:           decrement_positions_on_lower_items if in_list?
124:         end

[Validate]