Class: Figaro::Backup::Rails::Engine
- Inherits:
-
Rails::Engine
- Object
- Rails::Engine
- Figaro::Backup::Rails::Engine
- Defined in:
- lib/figaro/backup/rails/engine.rb
Instance Method Summary collapse
- #build_message(message) ⇒ Object
- #check_things_out! ⇒ Object
- #git_ignored? ⇒ Boolean
- #git_installed? ⇒ Boolean
- #git_root_path ⇒ Object
- #in_dropbox?(file_path) ⇒ Boolean
- #symlink_target_path ⇒ Object
- #symlinked? ⇒ Boolean
- #symlinked_to_dropbox? ⇒ Boolean
Instance Method Details
#build_message(message) ⇒ Object
56 57 58 |
# File 'lib/figaro/backup/rails/engine.rb', line 56 def () "[Figaro Backup] #{}" end |
#check_things_out! ⇒ Object
10 11 12 13 14 15 16 17 18 |
# File 'lib/figaro/backup/rails/engine.rb', line 10 def check_things_out! raise "Oops... #{Figaro.application.path.inspect} is missing." unless File.exists?(Figaro.application.path) raise "You should really use git!" unless git_installed? raise "Make sure to add #{Figaro.application.path.inspect} to .gitignore!" unless git_ignored? return puts( "YAY! Your project lives in Dropbox!") if in_dropbox?(Figaro.application.path) raise "Make sure that #{Figaro.application.path.inspect} is symlinked" unless symlinked? raise "Your symlink #{symlink_target_path.inspect} should be in Dropbox!" unless symlinked_to_dropbox? puts "YAY! Your Figaro config is symlinked to Dropbox!" end |
#git_ignored? ⇒ Boolean
24 25 26 |
# File 'lib/figaro/backup/rails/engine.rb', line 24 def git_ignored? `git check-ignore "#{Figaro.application.path}"; echo $?`.to_i == 0 end |
#git_installed? ⇒ Boolean
20 21 22 |
# File 'lib/figaro/backup/rails/engine.rb', line 20 def git_installed? `which git; echo $?`.to_i == 0 end |
#git_root_path ⇒ Object
28 29 30 |
# File 'lib/figaro/backup/rails/engine.rb', line 28 def git_root_path `git rev-parse --show-toplevel`.strip end |
#in_dropbox?(file_path) ⇒ Boolean
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/figaro/backup/rails/engine.rb', line 44 def in_dropbox?(file_path) dir = File.dirname(file_path) return false if dir == '/' || dir == Dir.home check = %w{.dropbox .dropbox.cache} files = check.map{|file| File.join(dir, file)} found = files.any?{|path| Dir.exists?(path)} found || in_dropbox?(dir) end |
#symlink_target_path ⇒ Object
36 37 38 |
# File 'lib/figaro/backup/rails/engine.rb', line 36 def symlink_target_path File.readlink(Figaro.application.path) if symlinked? end |
#symlinked? ⇒ Boolean
32 33 34 |
# File 'lib/figaro/backup/rails/engine.rb', line 32 def symlinked? File.symlink?(Figaro.application.path) end |
#symlinked_to_dropbox? ⇒ Boolean
40 41 42 |
# File 'lib/figaro/backup/rails/engine.rb', line 40 def symlinked_to_dropbox? symlinked? && in_dropbox?(symlink_target_path) end |