Module: ActiveRecord::Acts::List::InstanceMethods
- Defined in:
- lib/active_record/acts/list.rb
Overview
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.
Instance Method Summary collapse
- #decrement_position ⇒ Object
- #first? ⇒ Boolean
- #higher_item ⇒ Object
- #increment_position ⇒ Object
- #last? ⇒ Boolean
- #lower_item ⇒ Object
- #move_higher ⇒ Object
- #move_lower ⇒ Object
- #move_to_bottom ⇒ Object
- #move_to_top ⇒ Object
- #remove_from_list ⇒ Object
Instance Method Details
#decrement_position ⇒ Object
115 116 117 |
# File 'lib/active_record/acts/list.rb', line 115 def decrement_position update_attribute position_column, self.send(position_column).to_i - 1 end |
#first? ⇒ Boolean
119 120 121 |
# File 'lib/active_record/acts/list.rb', line 119 def first? self.send(position_column) == 1 end |
#higher_item ⇒ Object
127 128 129 130 131 |
# File 'lib/active_record/acts/list.rb', line 127 def higher_item self.class.find_first( "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i - 1).to_s}" ) end |
#increment_position ⇒ Object
111 112 113 |
# File 'lib/active_record/acts/list.rb', line 111 def increment_position update_attribute position_column, self.send(position_column).to_i + 1 end |
#last? ⇒ Boolean
123 124 125 |
# File 'lib/active_record/acts/list.rb', line 123 def last? self.send(position_column) == bottom_position_in_list end |
#lower_item ⇒ Object
133 134 135 136 137 |
# File 'lib/active_record/acts/list.rb', line 133 def lower_item self.class.find_first( "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i + 1).to_s}" ) end |
#move_higher ⇒ Object
83 84 85 86 87 88 89 90 |
# File 'lib/active_record/acts/list.rb', line 83 def move_higher return unless higher_item self.class.transaction do higher_item.increment_position decrement_position end end |
#move_lower ⇒ Object
74 75 76 77 78 79 80 81 |
# File 'lib/active_record/acts/list.rb', line 74 def move_lower return unless lower_item self.class.transaction do lower_item.decrement_position increment_position end end |
#move_to_bottom ⇒ Object
92 93 94 95 96 97 |
# File 'lib/active_record/acts/list.rb', line 92 def move_to_bottom self.class.transaction do decrement_positions_on_lower_items assume_bottom_position end end |
#move_to_top ⇒ Object
99 100 101 102 103 104 |
# File 'lib/active_record/acts/list.rb', line 99 def move_to_top self.class.transaction do increment_positions_on_higher_items assume_top_position end end |
#remove_from_list ⇒ Object
106 107 108 |
# File 'lib/active_record/acts/list.rb', line 106 def remove_from_list decrement_positions_on_lower_items end |