Skip to content

Instantly share code, notes, and snippets.

@bplexico
Created July 15, 2013 21:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bplexico/6003695 to your computer and use it in GitHub Desktop.
Save bplexico/6003695 to your computer and use it in GitHub Desktop.
catch throw refactor
# OLD
def insert_uncategorized_category(uncategorized)
insert_at = nil
@categories.each_with_index do |c, idx|
if (uncategorized.topics_week || 0) > (c.topics_week || 0)
insert_at = idx
break
end
end
@categories.insert(insert_at || @categories.size, uncategorized)
end
# NEW
def insert_uncategorized_category(uncategorized)
insert_at = catch(:idx){
@categories.each_with_index do |c, idx|
throw(:idx, idx) if (uncategorized.topics_week || 0) > (c.topics_week || 0)
end
nil # <-- return nil if we get this far
}
@categories.insert(insert_at || @categories.size, uncategorized)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment