Service Object is a pattern of extracting business logic into a separate "service". It has gotten considerable traction in the Ruby ecosystem and is worth exploring. In this talk, I present how Service Objects can be implemented using method_struct.
You can find method_struct here: https://github.com/basecrm/method_struct
To learn more about testing with method_struct, read the accompanying blog post:
http://bunsch.pl/2014/10/14/wrangling-service-objects-with-method_struct/