Sha256: b3550fca637db59fa351ad8b31cd7279f18d6f9bbca895cacc58a9004004ebee
Contents?: true
Size: 1.66 KB
Versions: 24
Compression:
Stored size: 1.66 KB
Contents
module Vedeu # @example # Vedeu::TestApplication.build class Subprocess # @param (see #initialize) def self.execute!(application) new(application).execute! end # Returns a new instance of Vedeu::Subprocess. # # @param application [Vedeu::TestApplication] # @return [Vedeu::Subprocess] def initialize(application) @application = application @pid = nil end # :nocov: # @return [Array] def execute! file_open && file_write && file_close @pid = fork do exec(file_path) end Process.detach(@pid) self end # :nocov: # Sends the KILL signal to the process. # # @return [void] def kill Process.kill('KILL', pid) file_unlink end protected # @!attribute [r] application # @return [Vedeu::TestApplication] attr_reader :application # @!attribute [r] pid # @return [Fixnum] attr_reader :pid private # @return [String] def command "ruby #{file_path}" end # @return [Fixnum] The number of bytes written. def file_write file.write(application) end # @return [NilClass] def file_close file.close end # @return [Fixnum] The number of files removed; 1. def file_unlink File.unlink("/tmp/foo_#{timestamp}") end # return [String] def file_path file.path end # @return [File] def file_open @file ||= File.new("/tmp/foo_#{timestamp}", 'w', 0755) end alias_method :file, :file_open # return [Fixnum] def timestamp @timestamp ||= Time.now.to_i end end # Subprocess end # Vedeu
Version data entries
24 entries across 24 versions & 1 rubygems