aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/acts
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2004-12-19 13:01:47 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2004-12-19 13:01:47 +0000
commit356f16006b44ee500db0fda0da055436ff41e37e (patch)
treeafbff527c329a72c8ff41b65f05e24486248f897 /activerecord/lib/active_record/acts
parenteeae1eecb9d02c4a3d8cf8436503f594acd8b302 (diff)
downloadrails-356f16006b44ee500db0fda0da055436ff41e37e.tar.gz
rails-356f16006b44ee500db0fda0da055436ff41e37e.tar.bz2
rails-356f16006b44ee500db0fda0da055436ff41e37e.zip
Added higher_item and lower_item as public methods for acts_as_list #342 [Tobias Luetke]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@221 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/acts')
-rw-r--r--activerecord/lib/active_record/acts/list.rb26
1 files changed, 13 insertions, 13 deletions
diff --git a/activerecord/lib/active_record/acts/list.rb b/activerecord/lib/active_record/acts/list.rb
index 626547f005..e8f7f64db1 100644
--- a/activerecord/lib/active_record/acts/list.rb
+++ b/activerecord/lib/active_record/acts/list.rb
@@ -109,6 +109,18 @@ module ActiveRecord
def last?
self.send(position_column) == bottom_position_in_list
end
+
+ def higher_item
+ self.class.find_first(
+ "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i - 1).to_s}"
+ )
+ end
+
+ def lower_item
+ self.class.find_first(
+ "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i + 1).to_s}"
+ )
+ end
private
@@ -123,18 +135,6 @@ module ActiveRecord
# Overwrite this method to define the scope of the list changes
def scope_condition() "1" end
- def higher_item
- self.class.find_first(
- "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i - 1).to_s}"
- )
- end
-
- def lower_item
- self.class.find_first(
- "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i + 1).to_s}"
- )
- end
-
def bottom_position_in_list
item = bottom_item
item ? item.send(position_column) : 0
@@ -163,7 +163,7 @@ module ActiveRecord
def increment_positions_on_higher_items
self.class.update_all(
- "#{position_column} = (#{position_column} + 1)", "#{scope_condition} AND #{position_column} < #{send(position_column)}"
+ "#{position_column} = (#{position_column} + 1)", "#{scope_condition} AND #{position_column} < #{send(position_column).to_i}"
)
end