class Generator

Attributes

templates_path[R]

Return template folder path. @return [String] Template folder path

Can be override in child class

Public Class Methods

generator() click to toggle source
# File lib/generator/generator.rb, line 7
def self.generator
  @generator ||= []
end
inherited(module_class) click to toggle source
# File lib/generator/generator.rb, line 11
def self.inherited(module_class)
  self.generator << module_class
end
new(options = {}) click to toggle source
# File lib/generator/generator.rb, line 15
def initialize(options = {})
  @templates_path = options[:templates_path] || Generator.templates_path
  @options = options
end
remove(group, options = {}) click to toggle source
# File lib/generator/generator.rb, line 24
def self.remove(group, options = {})
  self.generator.each { |generator| generator.new(options).remove if generator.group == group }
end
run(group, options = {}) click to toggle source
# File lib/generator/generator.rb, line 20
def self.run(group, options = {})
  self.generator.each { |generator| generator.new(options).run if generator.group == group }
end
templates_path() click to toggle source
# File lib/generator/generator.rb, line 28
def self.templates_path
  @templates_path
end
templates_path=(path) click to toggle source
# File lib/generator/generator.rb, line 32
def self.templates_path= path
  @templates_path = path || File.join(Dir.pwd, 'lib/generators/templates')
end

Public Instance Methods

create_file(path, template_name, file_name = nil) click to toggle source

Create new file from template @param [String] path Path to folder @param [String] template_name Template file name @param [String] file_name New file name

# File lib/generator/generator.rb, line 54
def create_file(path, template_name, file_name = nil)
  template = File.join @templates_path, template_name
  template_file = File.open(template, 'r') { |file| ERB.new(file.read).result binding }
  file_name = File.basename template_name, '.*' if file_name.nil?
  file_name = File.join( path,  file_name)
  File.open(file_name, 'w') { |file| file.write template_file }
end
create_folder(folder, force = false) click to toggle source

Create new folder @param [String] folder Folder name @param [String] force Remove folder before create if folder exist

# File lib/generator/generator.rb, line 39
def create_folder(folder, force = false)
  FileUtils.rm_rf folder if force
  FileUtils.makedirs folder unless Dir.exist? folder
end
remove_file(path) click to toggle source
# File lib/generator/generator.rb, line 62
def remove_file(path)
  FileUtils.rm_rf path if File.exist? path
end
remove_folder(folder) click to toggle source

Remove folder @param [String] folder Folder name

# File lib/generator/generator.rb, line 46
def remove_folder(folder)
  FileUtils.rm_rf folder if Dir.exist? folder
end