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

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 122
122:         def decrement_position
123:           return unless in_list?
124:           update_attribute position_column, self.send(position_column).to_i - 1
125:         end

[Source]

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

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 137
137:         def higher_item
138:           return nil unless in_list?
139:           self.class.find(:first, :conditions =>
140:             "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i - 1).to_s}"
141:           )
142:         end

[Source]

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

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 117
117:         def increment_position
118:           return unless in_list?
119:           update_attribute position_column, self.send(position_column).to_i + 1
120:         end

[Source]

    # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 75
75:         def insert_at(position = 1)
76:           position == 1 ? add_to_list_top : insert_at_position(position)
77:         end

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 132
132:         def last?
133:           return false unless in_list?
134:           self.send(position_column) == bottom_position_in_list
135:         end

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 144
144:         def lower_item
145:           return nil unless in_list?
146:           self.class.find(:first, :conditions =>
147:             "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i + 1).to_s}"
148:           )
149:         end

[Source]

    # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 88
88:         def move_higher
89:           return unless higher_item
90: 
91:           self.class.transaction do
92:             higher_item.increment_position
93:             decrement_position
94:           end
95:         end

[Source]

    # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 79
79:         def move_lower
80:           return unless lower_item
81: 
82:           self.class.transaction do
83:             lower_item.decrement_position
84:             increment_position
85:           end
86:         end

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 97
 97:         def move_to_bottom
 98:           return unless in_list?
 99:           self.class.transaction do
100:             decrement_positions_on_lower_items
101:             assume_bottom_position
102:           end
103:         end

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 105
105:         def move_to_top
106:           return unless in_list?
107:           self.class.transaction do
108:             increment_positions_on_higher_items
109:             assume_top_position
110:           end
111:         end

[Source]

     # File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 113
113:         def remove_from_list
114:           decrement_positions_on_lower_items if in_list?
115:         end

[Validate]