Moving a feed into a folder is done with a single method, FolderManager.move_feed_to_folder, regardless of whether the folder already exists or not.

For this, a facade method has been created, FolderManager.move_feed_to_folder, and the previously existing methods have been made private. The facade method receives optional arguments that tell it if the folder already exists or not, and then it calls the correct private method.

From the point of view of classes using the services of FolderManager now things are a bit different; instead of two methods, there's a single method with optional arguments.

The optional arguments are named arguments, and therefore do not work in versions of Ruby older than 2.0
Requesting that a user move a feed into a folder is done with a single method, regardless of whether the folder already exists or not.

Previously two different methods existed on the User instance, one to be used when the folder already existed, and another one for when the folder had to be created as part of the action. Now the two methods have been unified in a single method, with optional arguments that indicate if the folder already exists or not.

This User#move_feed_to_folder method is actually a facade for FolderManager.move_feed_to_folder, which creates the folder if necessary as part of the move.

The optional arguments in User#move_feed_to_folder are named arguments, and therefore this code won't work in versions of Ruby earlier than 2.0