Class: Flexdot::Tasks

Inherits:
Object
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/flexdot/tasks.rb

Defined Under Namespace

Classes: Index

Instance Method Summary collapse

Constructor Details

#initialize(dotfiles_dir, home_dir, default_index_name = nil) ⇒ Tasks

Returns a new instance of Tasks.



13
14
15
16
17
# File 'lib/flexdot/tasks.rb', line 13

def initialize(dotfiles_dir, home_dir, default_index_name = nil)
  @default_index_name = default_index_name
  @dotfiles_dir = Pathname.new(dotfiles_dir).expand_path
  @home_dir = Pathname.new(home_dir).expand_path
end

Instance Method Details

#installObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/flexdot/tasks.rb', line 19

def install
  desc 'Clear backups'
  task :clear_backups do
    Backup.clear_all
  end

  namespace :install do
    indexes.each do |index|
      desc "Install dotfiles for #{index.name}"
      task index.name do
        installer = Installer.new(
          index.name,
          dotfiles_dir: dotfiles_dir,
          home_dir: home_dir
        )
        installer.install(index.filename)
      end
    end
  end

  if default_index
    desc "Install dotfiles for #{default_index.name}"
    task :install do
      Rake::Task["install:#{default_index.name}"].invoke
    end
  end
end