class Entangler::Executor::Base
Attributes
base_dir[R]
Public Class Methods
new(base_dir, opts = {})
click to toggle source
# File lib/entangler/executor/base.rb, line 16 def initialize(base_dir, opts = {}) validate_base_dir(base_dir) @base_dir = File.realpath(File.expand_path(base_dir)) @recently_received_paths = [] @listener_pauses = [false, false] @opts = opts @opts[:ignore] = [%r{^\.git(?:/[^/]+)*$}] unless @opts.key?(:ignore) @opts[:ignore] << /^\.entangler.*/ validate_opts Entangler::Logger.create_log_dir(base_dir) end
Public Instance Methods
generate_abs_path(rel_path)
click to toggle source
# File lib/entangler/executor/base.rb, line 29 def generate_abs_path(rel_path) File.join(base_dir, rel_path) end
run()
click to toggle source
# File lib/entangler/executor/base.rb, line 37 def run logger.info("Entangler v#{Entangler::VERSION}") start_listener start_remote_io Signal.trap('INT') { kill_off_threads } logger.info('Ready!') wait_for_threads ensure stop_listener logger.info('Stopping Entangler') end
strip_base_path(path, base_dir = self.base_dir)
click to toggle source
# File lib/entangler/executor/base.rb, line 33 def strip_base_path(path, base_dir = self.base_dir) File.expand_path(path).sub(base_dir, '') end
Protected Instance Methods
log_outputs()
click to toggle source
# File lib/entangler/executor/base.rb, line 59 def log_outputs [Entangler::Logger.log_file_path(base_dir)] end
logger()
click to toggle source
# File lib/entangler/executor/base.rb, line 55 def logger @logger ||= Entangler::Logger.new(log_outputs, verbose: @opts[:verbose]) end
send_to_remote(msg = {})
click to toggle source
# File lib/entangler/executor/base.rb, line 51 def send_to_remote(msg = {}) Marshal.dump(msg, @remote_writer) end