class Synco::ScriptScope
Attributes
current_server[R]
group[R]
logger[R]
master_server[R]
script[R]
Public Class Methods
new(script, logger, group)
click to toggle source
# File lib/synco/scope.rb, line 70 def initialize(script, logger, group) @script = script @logger = logger @group = group @current_server = ServerScope.new(@script.current_server, self) @master_server = ServerScope.new(@script.master_server, self, @current_server) end
Public Instance Methods
call()
click to toggle source
# File lib/synco/scope.rb, line 89 def call if @script.running_on_master? logger.info "We are the master server..." else logger.info "We are not the master server..." logger.info "Master server is #{@master}..." end @script.try(self) do # This allows events to run on the master server if specified, before running any backups. @master_server.try(master_target_server) do method.try(self) do logger.info "Running backups for server #{@current_server}..." run_servers(group) end end end end
method()
click to toggle source
# File lib/synco/scope.rb, line 85 def method @script.method end
Private Instance Methods
master_target_server()
click to toggle source
# File lib/synco/scope.rb, line 112 def master_target_server TargetScope.new(self, @master_server) end
run_servers(group)
click to toggle source
This function runs the method for each directory and server combination specified.
# File lib/synco/scope.rb, line 126 def run_servers(group) target_servers do |server| sync_scope = TargetScope.new(self, server) logger.info "===== Processing =====" logger.info "[Master]: #{master_server}" logger.info "[Target]: #{server}" server.try(sync_scope) do @script.directories.each do |directory| directory_scope = DirectoryScope.new(sync_scope, directory) logger.info "[Directory]: #{directory}" directory.try(directory_scope) do method.call(directory_scope) end end end end end
target_servers() { |server_scope| ... }
click to toggle source
# File lib/synco/scope.rb, line 116 def target_servers @script.servers.each do |name, server| # server is always a data destination, therefore server can't be @master_server: next if @master_server.eql?(server) yield ServerScope.new(server, self, @current_server) end end