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
- decrement_position
- first?
- higher_item
- in_list?
- increment_position
- insert_at
- last?
- lower_item
- move_higher
- move_lower
- move_to_bottom
- move_to_top
- remove_from_list
Public Instance methods
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 126
126: def decrement_position
127: return unless in_list?
128: update_attribute position_column, self.send(position_column).to_i - 1
129: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 131
131: def first?
132: return false unless in_list?
133: self.send(position_column) == 1
134: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 141
141: def higher_item
142: return nil unless in_list?
143: acts_as_list_class.find(:first, :conditions =>
144: "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i - 1).to_s}"
145: )
146: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 155
155: def in_list?
156: !send(position_column).nil?
157: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 121
121: def increment_position
122: return unless in_list?
123: update_attribute position_column, self.send(position_column).to_i + 1
124: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 79
79: def insert_at(position = 1)
80: insert_at_position(position)
81: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 136
136: def last?
137: return false unless in_list?
138: self.send(position_column) == bottom_position_in_list
139: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 148
148: def lower_item
149: return nil unless in_list?
150: acts_as_list_class.find(:first, :conditions =>
151: "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i + 1).to_s}"
152: )
153: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 92
92: def move_higher
93: return unless higher_item
94:
95: acts_as_list_class.transaction do
96: higher_item.increment_position
97: decrement_position
98: end
99: end
[ show 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
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 101
101: def move_to_bottom
102: return unless in_list?
103: acts_as_list_class.transaction do
104: decrement_positions_on_lower_items
105: assume_bottom_position
106: end
107: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 109
109: def move_to_top
110: return unless in_list?
111: acts_as_list_class.transaction do
112: increment_positions_on_higher_items
113: assume_top_position
114: end
115: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 117
117: def remove_from_list
118: decrement_positions_on_lower_items if in_list?
119: end