require 'erb' require 'pathname' require 'figs/figsfile' desc 'Install Fig' task :install do |task, args|
base_dir = Pathname.new('.') locations = args.extras.empty? ? "application.yml" : args.extras figsfile = Figs::Figsfile.new(*locations) create_figsfile base_dir, figsfile create_non_existent_yaml(figsfile.locations) if figsfile.method.eql?("path") puts "[Done] Enjoy your figs sir!"
end
def create_figsfile(base_dir, figsfile)
puts "Figsifying #{base_dir}/ ..." file = base_dir.join('Figsfile') File.open(file, 'w+') do |f| f.write(figsfile.to_yaml) end
end
def create_non_existent_yaml(locations)
locations.each do |file| if !File.exists?(file) && !Dir.exists?(file) puts "[Add] #{file} does not exist, creating." application_yml = File.expand_path("../../templates/application.yml", __FILE__) File.open(file, 'w+') do |f| f.write(ERB.new(File.read(application_yml)).result(binding)) ignore_configuration(f.path) end end end
end
def ignore_configuration(application_yml)
if File.exists?(".gitignore") File.open('.gitignore', 'a') do |file| file.write(<<-EOF)
# Ignore application configuration #{application_yml} EOF
end end
end