Is this a use case for an engine or a railtie and why/how?

I have the following files and would like to somehow package them
in a gem however I’m unsure of what I need to create. An engine, a
or something completely different?

A unit class to handle a common requirement across my models

A class method #unitify that I can call in my model which sets up my
callbacks, validations, scopes, attribute readers/writers and

Where I’ve added a few custom Ransack predicates.

I’m open to opinions - it almost seems like too small an amount of code
be worth separating like this. However, I would really like to learn the
process of packing a gem for a rails app. I’d also like to get
testing in isolation and this seems like just the right size place to


  • FJM