|
From: <lu...@us...> - 2003-12-22 23:38:01
|
Update of /cvsroot/neelix/neelix/model
In directory sc8-pr-cvs1:/tmp/cvs-serv6968/model
Modified Files:
model.rb
Log Message:
refactored the promote/demote/delete ingredient functionality into presenter
methods
Index: model.rb
===================================================================
RCS file: /cvsroot/neelix/neelix/model/model.rb,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- model.rb 20 Dec 2003 06:38:35 -0000 1.5
+++ model.rb 22 Dec 2003 23:37:57 -0000 1.6
@@ -37,28 +37,7 @@
end
wrap_method :<<, :[]=, :clear, :collect!, :compact!, :delete, :delete_at, :delete_if, :flatten!, :map!, :pop, :push, :reject!, :replace, :reverse!, :shift, :slice!, :sort!, :uniq!, :unshift
- wrap_method :assoc, :collect, :compact, :concat, :flatten, :rassoc, :reverse, :slice, :sort, :uniq
-end
-
-class ObservableArray
- # should these instead be in a subclass of ObservableArray?
- def promote(obj)
- i = self.index(obj)
- return if i.nil? or i == 0
-
- tmp = self[i]
- send("__old_[]=", i, self[i - 1]);
- send("__old_[]=", i - 1, tmp);
- end
- def demote(obj)
- i = self.index(obj)
- return if i.nil? or i == self.length - 1
-
- tmp = self[i]
- send("__old_[]=", i, self[i + 1]);
- send("__old_[]=", i + 1, tmp);
- end
- wrap_method :promote, :demote
+ wrap_method :assoc, :collect, :compact, :concat, :flatten, :rassoc, :reverse, :slice, :uniq#, :sort
end
class Food
@@ -204,6 +183,9 @@
s += " (#{m})" if m
return s
end
+ def <=>(other)
+ self.position <=> other.position
+ end
end
class Recipe
@@ -237,14 +219,8 @@
(old_ingredients - @ingredients).each do |ingredient|
@dbh.do("delete from ingredient where ingredient_id=?",ingredient.id)
end
-
- # reorder the rows in the database
- position = 1
- @ingredients.each do |ingredient|
- ingredient.position = position
- position += 1
- end
}
+ @ingredients.each { |i| i.add_observer { @ingredients.notify_observers } }
end
def name
|