def set_teams_members
if params[:fee][:number_of_teams].blank?
number_of_teams = params[:teams]
else
if Fee::ITEMS.include?(params[:_fee][:teams])
teams = nil
else
teams = params[:fee][:teams]
end
end
if params[:fee][:members].blank?
members = params[:members]
else
if MembershipFee::ITEMS.include?(params[:fee][:members])
members = nil
else
members = params[:fee][:members]
end
end
params[:fee].merge!({:members => members,
:teams => teams})
end
Refactorings
No refactoring yet !
Elij
January 30, 2009, January 30, 2009 13:44, permalink
rationalise your object model for teams and members and this'll work
def set_teams_members
members = get_components(Fees::ITEMS, params[:fee][:teams], params[:teams])
teams = get_components(MembershipFee::ITEMS, params[:fee][:members], params[:members])
params[:fee].merge!({ :members => members,
:teams => teams })
end
def getComponents(items, fee_components, components)
if fee_components.blank?
return components
end
if items.include?(fee_components)
return nil
else
return fee_components
end
end
mischamolhoek.myopenid.com
January 30, 2009, January 30, 2009 15:08, permalink
ternary cleans it up a bit
def set_teams_members
if params[:fee][:number_of_teams].blank?
number_of_teams = params[:teams]
else
teams = Fee::ITEMS.include?(params[:_fee][:teams])? nil : params[:fee][:teams]
end
if params[:fee][:members].blank?
members = params[:members]
else
members = MembershipFee::ITEMS.include?(params[:fee][:members]) ? nil : params[:fee][:members]
end
params[:fee].merge!({:members => members, :teams => teams})
end
Adam
January 30, 2009, January 30, 2009 18:00, permalink
I think you need to rethink what you are doing entirely, but based on what information you have made available:
def set_team_members params[:fee][:teams] = params[:fee][:number_of_teams] unless params[:number_of_teams].blank? params[:fee][:teams] = params[:teams] unless params[:teams].blank? params[:fee][:members] = params[:members] unless params[:members].blank? params[:fee][:teams] = nil if Fee::ITEMS.include?(params[:fee][:teams]) params[:fee][:members] = nil if MembershipFee::ITEMS.include?(params[:fee][:members]) params[:fee] end
pypiyush.myopenid.com
January 31, 2009, January 31, 2009 11:23, permalink
Thanks..Guys.... Thanks a lot for Your contribution...
Hey Friends need to optimize this code... How can we reduce the number of lines ?