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