class GoodServices::Generators::ServiceGenerator

Public Instance Methods

create_service() click to toggle source
# File lib/generators/good_services/service_generator.rb, line 6
def create_service
  if constants.size == 1
    create_file service_path, namespaceless_template
  elsif constants.size == 2
    create_file service_path, namespaced_template
  else
    puts
    puts "[Error] This generator only supports one level of namespacing!"
  end
end

Private Instance Methods

constants() click to toggle source

Argument Helpers

# File lib/generators/good_services/service_generator.rb, line 43
def constants
  class_name.split("::")
end
get_template(file) click to toggle source
# File lib/generators/good_services/service_generator.rb, line 27
def get_template(file)
  path = File.expand_path("../templates/#{file}.erb", __FILE__)
  ERB.new(File.read(path))
end
module_name() click to toggle source
# File lib/generators/good_services/service_generator.rb, line 59
def module_name
  @_module_name ||= service_module.underscore
end
namespaced_template() click to toggle source
# File lib/generators/good_services/service_generator.rb, line 23
def namespaced_template
  get_template("namespaced_service").result(binding)
end
namespaceless_template() click to toggle source
# File lib/generators/good_services/service_generator.rb, line 19
def namespaceless_template
  get_template("namespaceless_service").result(binding)
end
service_class() click to toggle source
# File lib/generators/good_services/service_generator.rb, line 51
def service_class
  @_service_class ||= class_name.split("::").last
end
service_module() click to toggle source
# File lib/generators/good_services/service_generator.rb, line 47
def service_module
  @_service_module ||= constants.first if constants.size > 1
end
service_name() click to toggle source
# File lib/generators/good_services/service_generator.rb, line 55
def service_name
  @_service_name ||= service_class.underscore
end
service_path() click to toggle source
# File lib/generators/good_services/service_generator.rb, line 32
def service_path
  if service_module
    "app/services/#{module_name}/#{service_name}.rb"
  else
    "app/services/#{service_name}.rb"
  end
end