Module: Postmod
- Defined in:
- lib/postmod.rb,
lib/postmod/action.rb,
lib/postmod/create.rb
Defined Under Namespace
Modules: Generate Classes: Action
Constant Summary collapse
- Create =
Action.new(:project_path) do def call create_project create_data_store create_core create_api create_web end private def create_project FileUtils.mkdir(project_path) FileUtils.cp("#{project_template_path}/Gemfile", "#{project_path}/Gemfile") FileUtils.cp("#{project_template_path}/Procfile", "#{project_path}/Procfile") FileUtils.cp("#{project_template_path}/config.ru", "#{project_path}/config.ru") File.write("#{project_path}/.ruby-version", '2.2.2') end def create_data_store FileUtils.cp_r("#{project_template_path}/data_store", project_path) end def create_core FileUtils.cp_r("#{project_template_path}/core", project_path) FileUtils.mkdir("#{project_path}/core/bin") FileUtils.mkdir("#{project_path}/core/lib") Postmod::Generate::Module.("#{project_path}/core/lib/#{project_name}") end def create_api FileUtils.cp_r("#{project_template_path}/api", project_path) api_file_content = File.readlines("#{project_template_path}/api/api.rb") File.open("#{project_path}/api/api.rb", 'w') do |api_file| api_file.puts "require_relative '../core/lib/#{project_name}'" api_file_content.each { |line| api_file.puts line } end end def create_web Chaplin::New.("#{project_path}/web") FileUtils.cp("#{project_template_path}/web/config.ru", "#{project_path}/web/config.ru") FileUtils.cp("#{project_template_path}/web/web.rb", "#{project_path}/web/web.rb") FileUtils.cp("#{project_template_path}/web/app.yml", "#{project_path}/web/app.yml") end def project_template_path "#{__dir__}/../../project_template" end def project_name project_path.split("/").last end end