Class: LearnOpen::Adapters::SystemAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/learn_open/adapters/system_adapter.rb

Class Method Summary collapse

Class Method Details

.change_context_directory(dir) ⇒ Object



31
32
33
# File 'lib/learn_open/adapters/system_adapter.rb', line 31

def self.change_context_directory(dir)
  Dir.chdir(dir)
end

.open_editor(editor, path:) ⇒ Object



6
7
8
# File 'lib/learn_open/adapters/system_adapter.rb', line 6

def self.open_editor(editor, path:)
  system("#{editor} .")
end

.open_login_shell(shell) ⇒ Object



10
11
12
# File 'lib/learn_open/adapters/system_adapter.rb', line 10

def self.(shell)
  exec("#{shell} -l")
end

.run_command(command) ⇒ Object



23
24
25
# File 'lib/learn_open/adapters/system_adapter.rb', line 23

def self.run_command(command)
  system(command)
end

.run_command_with_capture(command) ⇒ Object



27
28
29
# File 'lib/learn_open/adapters/system_adapter.rb', line 27

def self.run_command_with_capture(command)
  Open3.capture3(command)
end

.spawn(command, block: false) ⇒ Object



18
19
20
21
# File 'lib/learn_open/adapters/system_adapter.rb', line 18

def self.spawn(command, block: false)
  pid = Process.spawn(command, [:out, :err] => File::NULL)
  Process.waitpid(pid) if block
end

.watch_dir(dir, action) ⇒ Object



14
15
16
# File 'lib/learn_open/adapters/system_adapter.rb', line 14

def self.watch_dir(dir, action)
  spawn("while inotifywait -qre create,delete,move,close_write #{dir}; do #{action}; done")
end