KelseyDH said over 4 years ago on Associations and Mathematical Business Logic :
I like to create a generic class for handling the class method / initialization aspect of the service, to simplify those classes.  E.g.:

class ServiceObject

  def self.call(*args)
    new(*args).call
  end

  def call
    raise NotImplementedError
  end

  def perform
    call
  end

end

Then

module Car
  class CalculatePrice < ServiceObject

def initialize(foo) @foo = foo end def call # do something end
end end