docbrown/lib/generators/service/USAGE
Michael Kohl 824e9a13cb
Add service generator (#11265)
* Add service generator

* Finalize service generator

* Add documentation

* Explicitly require rails/generators

* Update Zeitwerk initializer

* Remove explicit require

* Update docs/backend/service-objects.md

Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>

Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>
2020-11-10 09:09:35 +07:00

71 lines
1.5 KiB
Text

Description:
Generates a service object.
Examples:
* Generating a service with no arguments:
$ rails generate service ImportUsers
# app/services/import_users.rb
class ImportUsers
def self.call
new.call
end
def call
end
end
# spec/services/import_users_spec.rb
require "rails_helper"
RSpec.describe ImportUsers, type: :service do
pending "add some examples to (or delete) #{__FILE__}"
end
* Generating a service with arguments:
$ rails generate service ImportUsers users
# app/services/import_users.rb
class ImportUsers
def self.call(user)
new(user).call
end
def initialize(user)
@user = user
end
def call
end
end
# spec/servics/import_users_spec.rb
# Same as above
* Generating a namespaced service:
$ rails generate service users/import users
# app/services/users/import.rb
class Users::Import
def self.call(users)
new(users).call
end
def initialize(users)
@users = users
end
def call
end
end
# spec/services/users/import_spec.rb
require "rails_helper"
RSpec.describe Users::Import, type: :service do
pending "add some examples to (or delete) #{__FILE__}"
end