class DomainGenerator
Reduce DDD boilerplate
Public Instance Methods
generate()
click to toggle source
# File lib/generators/domain/domain_generator.rb, line 15 def generate raise ArgumentError.new('Missing domain name') if name.blank? generate_app_service if option_enabled?(:app_service) generate_service if option_enabled?(:service) generate_model if option_enabled?(:model) generate_repository if generate_repo? end
Private Instance Methods
generate_app_service()
click to toggle source
# File lib/generators/domain/domain_generator.rb, line 26 def generate_app_service template 'app_service.template', "app/domain/#{name.underscore}/app_services/#{options.app_service.underscore}.rb" template 'app_service_spec.template', "spec/domain/#{name.underscore}/app_services/#{options.app_service.underscore}_spec.rb" end
generate_model()
click to toggle source
# File lib/generators/domain/domain_generator.rb, line 36 def generate_model template 'model.template', "app/domain/#{name.underscore}/services/models/#{options.model.underscore}.rb" template 'model_spec.template', "spec/domain/#{name.underscore}/services/models/#{options.model.underscore}_spec.rb" template 'model_factory.template', "test/factories/#{options.model}.rb" end
generate_repo?()
click to toggle source
# File lib/generators/domain/domain_generator.rb, line 53 def generate_repo? say("Not generating repository for #{options.model}Model") unless options.model.present? say('Not generating repository') unless options.repo? options.model.present? && options.repo? end
generate_repository()
click to toggle source
# File lib/generators/domain/domain_generator.rb, line 42 def generate_repository template 'repository.template', "app/domain/#{name.underscore}/infrastructures/repos/#{options.model.underscore}.rb" template 'repository_spec.template', "spec/domain/#{name.underscore}/infrastructures/repos/#{options.model.underscore}_spec.rb" end
generate_service()
click to toggle source
# File lib/generators/domain/domain_generator.rb, line 31 def generate_service template 'service.template', "app/domain/#{name.underscore}/services/#{options.service.underscore}.rb" template 'service_spec.template', "spec/domain/#{name.underscore}/services/#{options.service.underscore}_spec.rb" end
option_enabled?(opt)
click to toggle source
# File lib/generators/domain/domain_generator.rb, line 47 def option_enabled?(opt) checked = options[opt.to_s].present? say("Not generating #{opt}.") unless checked checked end