class Rugular::GeneratorBase

Public Class Methods

source_root() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 16
def self.source_root
  __dir__.chomp('/tasks/generate')
end

Public Instance Methods

create_route_folders() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 20
def create_route_folders
  route_pathnames.each do |pathname|
    next(
      "#{destination_file(pathname)} already exists"
    ) if File.exists? destination_file(pathname)

    create_file destination_file(pathname) do
      ERB.new(pathname.read).result(
        open_struct.instance_eval { binding }
      )
    end
  end
end
template_files() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 34
def template_files; []; end

Protected Instance Methods

app_module_file() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 69
def app_module_file
  'src/app/app.module.coffee'
end
app_or_component() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 98
def app_or_component
  options[:c] ? 'components' : 'app'
end
camelcase_name() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 56
def camelcase_name
  name.split(':').last.camelcase(:lower)
end
destination_file(pathname) click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 52
def destination_file(pathname)
  "#{folder}/#{pathname.basename('.erb').to_s.gsub('app', name.split(':').last)}"
end
folder() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 48
def folder
  "src/#{app_or_component}/#{name_folder}"
end
lib_directory() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 38
def lib_directory
  __dir__.chomp('tasks/generate')
end
module_declaration() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 73
def module_declaration
  "  '#{camelcase_name}'\n"
end
module_declaration_present?(module_file) click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 77
def module_declaration_present?(module_file)
  File.read(module_file).include? module_declaration
end
name_folder() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 85
def name_folder
  name.split(':').join('/')
end
nested?() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 81
def nested?
  name.split(':').length > 1
end
nested_module_file() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 93
def nested_module_file
  "src/#{app_or_component}/#{name.split(':')[0..-2].join('/')}/"\
    "#{nested_module_name}.module.coffee"
end
nested_module_name() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 89
def nested_module_name
  name.split(':')[-2]
end
open_struct() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 60
def open_struct
  @_open_struct ||= OpenStruct.new(
    name: name.split(':').last,
    full_name: name.gsub(':', '/'),
    camelcase_name: camelcase_name,
    app_or_component: app_or_component
  )
end
route_pathnames() click to toggle source
# File lib/rugular/tasks/generate/generator_base.rb, line 42
def route_pathnames
  Dir.glob(template_files).map do |filename|
    Pathname.new(filename)
  end
end