SB
2006-Aug-11 18:11 UTC
[Rails] pimp my code?? Using self.new in class methods, brittle design & testing such methods
It''s way past midnight and I''m about to go to sleep. I''m having doubts about my code now that I''m trying to test as I go. Now my model follows the pattern of the LineItem model in the rails book. Basically the User has one Group and this one Group has many Friends (polymorphic two-way as "befriender" and "befriended"--users). from Friend.rb (here the "befriender" and "befriended" that are passed into the model are User objects) def self.befriend_user(befriender, befriended) unless befriender.is_friends_with(befriended) friend = self.new friend.befriender = befriender friend.befriended = befriended befriender.group.friends << friend friend else return end end Should I be breaking this up into smaller methods? Is there a better way to do it? Is my design brittle or convoluted? How would I write a Unit Test for the above? Really stupid questions: why do I need the "friend" right before the else? I know these are a lot of questions but I really can''t find any good information out there about good design patterns for an integrated rails MVC/TDD approach so a few pointers would be appreciated. Cheers, Sam