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.
# 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
# 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
# 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
# File vendor/rails/activerecord/lib/active_record/acts/list.rb, line 151 151: def in_list? 152: !send(position_column).nil? 153: end
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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