Module: LokkaSh::Forkable

Includes:
Helpers
Included in:
Bundler, Rake, Sinatra
Defined in:
lib/lokka-sh/forkable.rb

Instance Method Summary collapse

Methods included from Helpers

#lesspipe

Instance Method Details

#_invokeObject

Raises:

  • (NotImplementedError)


14
15
16
# File 'lib/lokka-sh/forkable.rb', line 14

def _invoke
  raise NotImplementedError
end

#after_fork(&block) ⇒ Object



22
23
24
# File 'lib/lokka-sh/forkable.rb', line 22

def after_fork(&block)
  @after_fork = block
end

#before_fork(&block) ⇒ Object



18
19
20
# File 'lib/lokka-sh/forkable.rb', line 18

def before_fork(&block)
  @before_fork = block
end

#invoke(line, options = {}) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/lokka-sh/forkable.rb', line 5

def invoke(line, options = {})
  run_before_fork
  pid = fork do
    run_after_fork
    _invoke(line)
  end
  Process.waitpid(pid)
end

#run_after_fork(&block) ⇒ Object



30
31
32
# File 'lib/lokka-sh/forkable.rb', line 30

def run_after_fork(&block)
  @after_fork.call if @after_fork
end

#run_before_fork(&block) ⇒ Object



26
27
28
# File 'lib/lokka-sh/forkable.rb', line 26

def run_before_fork(&block)
  @before_fork.call if @before_fork
end