Extract FeedData as a class into its own file in app/models
Update interface to ConvertsSubscriberToFeedData; instantiate and use instance variables instead of passing arguments around
Use extract method to simplify the internals of ConvertsSubscriberToFeedData
Use implicit rescue since we only have one
Use FindsOrCreatesFeeds directly rather than delegating from Feed; the interface isn't used elsewhere
Use extract method to simplify the internals of FindsOrCreatesFeeds
Move finger_data to app/models
Refactored finger_data model by extracting a find method
Added .create_and_populate! class method to Feed model; removing old .create_from_feed_data class method
Added #remote? method to invert negative test for #local?
Extract a FingerService object from QueriesWebFinger and ConvertsSubscriberToFeedData
Change FindsOrCreatesFeeds to a FeedService object
Rename variable f to target_feed to reveal intent
Change 'unless' guard conditions to be positive 'if' conditions with 'else's

This removes duplication with the success and failure cases and makes the logic easier to trace, imo.
Factor out feed fabrication
Use temporary variable to reveal intent
Extract a test helper method for following a remote user
Change assertions from matching on body to looking within known markup elements
Factor out log_in_as_some_user
Factor out the follow remote user form into a partial in order to prevent inconsistencies