Class: Railsmith::Generators::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/railsmith/model_service/model_service_generator.rb

Overview

Computes target file path and enclosing module list for ModelServiceGenerator.

Instance Method Summary collapse

Constructor Details

#initialize(class_name, options) ⇒ Resolver

Returns a new instance of Resolver.



261
262
263
264
# File 'lib/generators/railsmith/model_service/model_service_generator.rb', line 261

def initialize(class_name, options)
  @class_name = class_name
  @options = options
end

Instance Method Details

#declared_actionsObject



286
287
288
# File 'lib/generators/railsmith/model_service/model_service_generator.rb', line 286

def declared_actions
  @options.fetch(:actions).map { |a| a.to_s.strip }.reject(&:empty?).uniq
end

#enclosing_modulesObject



273
274
275
276
277
278
# File 'lib/generators/railsmith/model_service/model_service_generator.rb', line 273

def enclosing_modules
  return domain_modules + ["Services"] + model_modules_without_domain if domain_mode?
  return namespace_modules if namespace_given?

  model_modules
end

#service_domain_nameObject



280
281
282
283
284
# File 'lib/generators/railsmith/model_service/model_service_generator.rb', line 280

def service_domain_name
  return nil unless namespace_given?

  namespace_modules.first&.underscore
end

#target_fileObject



266
267
268
269
270
271
# File 'lib/generators/railsmith/model_service/model_service_generator.rb', line 266

def target_file
  return domain_target_file if domain_mode?
  return namespace_target_file if namespace_given?

  File.join(@options[:output_path], "#{flat_file_path}_service.rb")
end