Module: Greg

Defined in:
lib/greg.rb,
lib/greg/version.rb,
lib/greg/generator.rb,
lib/greg/exceptions.rb,
lib/greg/template_installer.rb,
lib/greg/templates/dir_template.rb,
lib/greg/templates/file_template.rb,
lib/greg/templates/from_template.rb,
lib/greg/templates/default_template.rb,
lib/greg/templates/gemfile_template.rb,
lib/greg/templates/file_tree_template.rb

Defined Under Namespace

Classes: DefaultTemplate, DirTemplate, ExistingProjectError, FileTemplate, FileTreeTemplate, FromTemplate, GemfileTemplate, Generator, TemplateInstaller, UnexistingTemplateError

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.generator(**options) ⇒ Object



12
13
14
# File 'lib/greg.rb', line 12

def self.generator(**options)
  @generator ||= get_generator(**options)
end

.get_generator(**options) ⇒ Object

name:, template_name: , output_directory: “.”, force: false)



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/greg.rb', line 16

def self.get_generator(**options) #name:, template_name: , output_directory: ".", force: false)
  template_name = options[:template_name]
  generator_name = "#{template_name}_generator"
  template = Greg.templates_dir + "/#{template_name}/#{generator_name}"
  if Pathname(template + ".rb").exist?
    require template.to_s
  else
    raise UnexistingTemplateError.new(template_name)
  end
  generator_class_name = generator_name.split("_").map(&:capitalize).join
  generator_class = Kernel.const_get(generator_class_name)
  generator_class.new( **options )
end

.templates_dirObject



30
31
32
# File 'lib/greg.rb', line 30

def self.templates_dir
  @templates_dir ||= Pathname("~/.greg_templates").expand_path.to_s
end

.templates_dir=(new_dir) ⇒ Object



34
35
36
# File 'lib/greg.rb', line 34

def self.templates_dir=(new_dir)
  @templates_dir = Pathname(new_dir).expand_path.to_s
end