class SkeletorCLI::RailsBuilder
Public Class Methods
build(skeleton, app_name)
click to toggle source
# File lib/skeletor_cli/rails_builder.rb, line 5 def self.build(skeleton, app_name) gemfile(true) do source 'https://rubygems.org' if skeleton[:gems][:rails][:version].nil? || skeleton[:gems][:rails][:version] == '' gem 'rails' else gem 'rails', skeleton[:gems][:rails][:version] end end require 'rails/generators' require 'rails/generators/rails/app/app_generator' template_file = template(skeleton, app_name) args = [app_name, "--database=#{skeleton[:database]}", "--template=#{template_file.path}"] Rails::Generators::AppGenerator.start args template_file.unlink end
template(skeleton, app_name)
click to toggle source
# File lib/skeletor_cli/rails_builder.rb, line 22 def self.template(skeleton, app_name) file = Tempfile.new('skeletor_rails_template') file.write <<-TEMPLATE create_file '.ruby-gemset', #{'<<-GEMSET'} #{app_name} GEMSET run "rm Gemfile && touch Gemfile" add_source 'https://rubygems.org' #{skeleton[:gems].map do |gem_name, metadata| "gem '#{gem_name}'#{metadata[:version] == '' || metadata[:version].nil? ? '' : ", '#{metadata[:version]}'"}" end.join("\n")} TEMPLATE file.close file end