class MRubyGenerate::CreateCliProject
Constants
- TEMPLATE_FILES
Attributes
project_name[R]
your_name[R]
Public Class Methods
new(project_name)
click to toggle source
# File lib/mruby_generate/create_cli_project.rb, line 21 def initialize(project_name) @project_name = project_name @your_name = `git config --global --get user.name`.strip @template_path = File.expand_path('../../templates/cli_project', __dir__) @dest_path = @project_name end
Public Instance Methods
create()
click to toggle source
# File lib/mruby_generate/create_cli_project.rb, line 28 def create create_and_copy_template_dir apply_templates rename_files end
Private Instance Methods
apply_templates()
click to toggle source
# File lib/mruby_generate/create_cli_project.rb, line 40 def apply_templates TEMPLATE_FILES.each do |path| full_path = File.join(@dest_path, path) t = File.read(full_path) File.open(full_path, 'w') { |f| f << ERB.new(t).result(binding) } end end
create_and_copy_template_dir()
click to toggle source
# File lib/mruby_generate/create_cli_project.rb, line 36 def create_and_copy_template_dir FileUtils.cp_r @template_path, @project_name end
rename_files()
click to toggle source
# File lib/mruby_generate/create_cli_project.rb, line 48 def rename_files FileUtils.mkdir File.join(@project_name, "tools", @project_name) [ [File.join(@project_name, 'your_project.gem'), File.join(@project_name, "#{project_name}.gem")], [File.join(@project_name, 'mrblib', 'mrb_your_project.rb'), File.join(@project_name, 'mrblib', "mrb_#{project_name}.rb")], [File.join(@project_name, 'tools', 'your_project', 'mrb_your_project.c'), File.join(@project_name, 'tools', @project_name, "mrb_#{project_name}.c")] ].each { |from, to| FileUtils.mv(from, to) } FileUtils.rmdir File.join(@project_name, "tools", "your_project") end