class Grate::NewProject
Public Class Methods
source_root()
click to toggle source
# File lib/grate/new_project.rb, line 9 def self.source_root File.dirname(__FILE__) end
Public Instance Methods
copy_bin()
click to toggle source
# File lib/grate/new_project.rb, line 35 def copy_bin bin_dir = File.join(__dir__, '..', '..', 'bin') FileUtils.copy_entry(bin_dir, File.join(@project_dir, 'bin')) end
create_directory()
click to toggle source
# File lib/grate/new_project.rb, line 14 def create_directory Dir.mkdir name @project_dir = File.join(Dir.pwd, name) end
create_files()
click to toggle source
# File lib/grate/new_project.rb, line 19 def create_files @camel_name = classify(name) @snake_name = snake_case(name) templates_dir = File.join(__dir__, '..', '..', 'templates') Find.find(templates_dir) do |file| case File.extname(file) when '.tt' template(file, File.join(@project_dir, to_relative(file).gsub('.tt', ''))) when '.dot' template(file, File.join(@project_dir, ".#{to_relative(file).chomp('.dot')}")) when /\.[A-Za-z]+/ template(file, File.join(@project_dir, to_relative(file))) end end end
Private Instance Methods
classify(name)
click to toggle source
# File lib/grate/new_project.rb, line 49 def classify(name) name.gsub('-', '_').camelize end
snake_case(name)
click to toggle source
# File lib/grate/new_project.rb, line 46 def snake_case(name) name.gsub('_', '-').underscore end
to_relative(path)
click to toggle source
# File lib/grate/new_project.rb, line 42 def to_relative(path) path.gsub(/.*templates\//, '') end