class Ella::Generator
This is an abstract class for the numerous generators that make up the bulk of this project. It cannot be run on its own. TODO: The first parameter should be part of the hash, for clarity.
Public Class Methods
new(directory: nil, files: [], templates: [], template_vars: {})
click to toggle source
# File lib/ella/generator.rb, line 8 def initialize(directory: nil, files: [], templates: [], template_vars: {}) @directory = NameFormatter.new(directory) if directory @files = files @templates = templates @template_vars = template_vars end
Public Instance Methods
run()
click to toggle source
# File lib/ella/generator.rb, line 15 def run raise NotImplementedError, 'Subclasses must define \'run\'.' end
Private Instance Methods
generator_type()
click to toggle source
# File lib/ella/generator.rb, line 21 def generator_type self.class.name.gsub(/^.*::(.*)Generator$/, '\1').downcase + 's' end
make_directory(special_name = nil)
click to toggle source
# File lib/ella/generator.rb, line 25 def make_directory(special_name = nil) target = special_name || generator_type return if Dir.exist?(target) Log.create(target + '/') Dir.mkdir(target) end
make_test_directory()
click to toggle source
# File lib/ella/generator.rb, line 33 def make_test_directory make_directory('tests') make_directory("tests/#{generator_type}") end
target_name()
click to toggle source
# File lib/ella/generator.rb, line 38 def target_name @directory ? @directory.snake_case : @directory end