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