class Paradigm::Generators::ServiceGenerator
Constants
- DOUBLE_COLON
- SINGLE_COLON
Attributes
scope[R]
service[R]
service_name[R]
Public Class Methods
source_root()
click to toggle source
# File lib/generators/paradigm/service_generator.rb, line 31 def self.source_root @source_root ||= File.expand_path('../../templates/service', __FILE__) end
Public Instance Methods
create_service()
click to toggle source
# File lib/generators/paradigm/service_generator.rb, line 35 def create_service @service_name = service_name if scoped_service_containing?(DOUBLE_COLON) use_scoped_templates(DOUBLE_COLON) elsif scoped_service_containing?(SINGLE_COLON) use_scoped_templates(SINGLE_COLON) else template 'service.rb', "app/services/#{service_name.underscore}_service.rb" template 'service_test.rb', "test/services/#{service_name.underscore}_service_test.rb" end end
Private Instance Methods
scoped_service_containing?(colon_style)
click to toggle source
# File lib/generators/paradigm/service_generator.rb, line 52 def scoped_service_containing?(colon_style) service_name.include?(colon_style) end
split_by_colon(colon_style)
click to toggle source
# File lib/generators/paradigm/service_generator.rb, line 64 def split_by_colon(colon_style) service_name .partition(colon_style) .delete_if { |str| str == colon_style } end
use_scoped_templates(colon_style)
click to toggle source
# File lib/generators/paradigm/service_generator.rb, line 56 def use_scoped_templates(colon_style) split = split_by_colon(colon_style) @scope, @service_name = split[0], split[1] template 'nested_service.rb', "app/services/#{scope}/#{service_name.underscore}_service.rb" template 'nested_service_test.rb', "test/services/#{scope}/#{service_name.underscore}_service_test.rb" end