Module: DTR::SyncCodebase::MasterExt

Includes:
DTR::Service::File
Included in:
Master
Defined in:
lib/dtr/shared/sync_codebase/master_ext.rb

Overview

Inject synchronizing codebase ability into Master#with_dtr_master Packaging codebase by rake task dtr_repackage (See DTR::PackageTask)

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DTR::Service::File

#lookup_file, #provide_file

Methods included from DTR::Service::Rinda

#lookup, #lookup_ring, #start_service, #stop_service

Class Method Details

.included(base) ⇒ Object



22
23
24
# File 'lib/dtr/shared/sync_codebase/master_ext.rb', line 22

def self.included(base)
  base.alias_method_chain :with_dtr_master, :sync_codebase
end

Instance Method Details

#with_dtr_master_with_sync_codebase(&block) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/dtr/shared/sync_codebase/master_ext.rb', line 26

def with_dtr_master_with_sync_codebase(&block)
  with_dtr_master_without_sync_codebase do
    DTR.do_println("Packaging codebase")
    raise 'Packaging for dtr task failed, see log for details!' unless Cmd.execute('rake --trace dtr_repackage')
    begin
      provide_file CopiablePackage.new
      block.call
    ensure
      Cmd.execute('rake --trace dtr_clobber_package')
    end
  end
end