Class: Rivulet::CLI::Commands::Generate::Service::Projection

Inherits:
Dry::CLI::Command
  • Object
show all
Defined in:
lib/rivulet/cli/generate/service/projection.rb

Instance Method Summary collapse

Instance Method Details

#call(name:) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/rivulet/cli/generate/service/projection.rb', line 12

def call(name:, **)
  service_name, step_name = name.split('.')
  service_dir      = underscore(service_name)
  projection_dir   = underscore(step_name)
  service_module   = camelize(service_dir)
  projection_class = camelize(projection_dir)
  base             = "app/services/#{service_dir}"

  write "#{base}/projections/#{projection_dir}.rb", projection_template(service_module, projection_class)
  register_projection(base, service_module, projection_dir, projection_class)
end