class RailsCopier::Project
Public Class Methods
create(from, to, new_name)
click to toggle source
# File lib/rails_copier/project.rb, line 6 def self.create(from, to, new_name) new(from, to, new_name).save end
new(from, to, new_name)
click to toggle source
# File lib/rails_copier/project.rb, line 10 def initialize(from, to, new_name) @folder = Folder.create(from, to, new_name) end
Public Instance Methods
save()
click to toggle source
# File lib/rails_copier/project.rb, line 14 def save copy_entry replace_old_name_ocurrencies remove_git_repo remove_tmp replace_rails_secret touch_log_folder remove_database_yml self end
Private Instance Methods
bundle_exec_secret()
click to toggle source
# File lib/rails_copier/project.rb, line 63 def bundle_exec_secret Dir.chdir(@folder.new_dir) do secret = `bundle exec rake secret` raise "Unable to run 'bundle exec' on #{@folder.new_dir}" if secret.empty? return secret.chomp end end
copy_entry()
click to toggle source
# File lib/rails_copier/project.rb, line 27 def copy_entry FileUtils.copy_entry(@folder.from, @folder.new_dir) end
old_name()
click to toggle source
# File lib/rails_copier/project.rb, line 44 def old_name file_path = "#{@folder.from}/config/application.rb" File.open(file_path).each do |line| return line.chomp.gsub('module ', '') if line.include?("module") end end
remove_database_yml()
click to toggle source
# File lib/rails_copier/project.rb, line 75 def remove_database_yml database_yml = "#{@folder.new_dir}/config/database.yml" FileUtils.rm(database_yml) if File.exist?(database_yml) end
remove_git_repo()
click to toggle source
# File lib/rails_copier/project.rb, line 51 def remove_git_repo git_ignore = "#{@folder.new_dir}/.gitignore" git_dir = "#{@folder.new_dir}/.git" FileUtils.rm(git_ignore) if File.exist?(git_ignore) FileUtils.rm_rf(git_dir) if Dir.exist?(git_dir) end
remove_tmp()
click to toggle source
# File lib/rails_copier/project.rb, line 58 def remove_tmp tmp = "#{@folder.new_dir}/tmp" FileUtils.rm_rf(tmp) if Dir.exist?(tmp) end
replace_old_name_ocurrencies()
click to toggle source
# File lib/rails_copier/project.rb, line 37 def replace_old_name_ocurrencies `sudo grep -r -l #{old_name} #{@folder.new_dir} | sudo sort | sudo uniq | sudo xargs perl -e 's/#{old_name}/#{@folder.new_name}/' -pi` end
replace_rails_secret()
click to toggle source
# File lib/rails_copier/project.rb, line 31 def replace_rails_secret data = YAML.load_file(@folder.path_to_secrets) data["development"]["secret_key_base"] = bundle_exec_secret File.write(@folder.path_to_secrets, data.to_yaml) end
touch_log_folder()
click to toggle source
# File lib/rails_copier/project.rb, line 71 def touch_log_folder Dir["#{@folder.new_dir}/log/**.log"].each { |file| File.truncate(file, 0) } end