Sha256: 16c9e97bc6738755905a25ef1c5e8ac843744b0d894532724d58f6564c42ee33

Contents?: true

Size: 725 Bytes

Versions: 2

Compression:

Stored size: 725 Bytes

Contents

# lib/helpers.rb

module Proxy::OpenSCAP
  module Helpers
    if Process.respond_to?(:fork)
      def forked_response
        r, w = IO.pipe
        if child_id = Process.fork
          w.close
          data = r.read
          r.close
          Process.wait(child_id)
          JSON.parse(data)
        else
          r.close
          begin
            body, code = yield
            w.write({ code: code, body: body }.to_json)
          rescue Exception => e
            w.write({ code: 500, body: e.message }.to_json)
          end
          w.close
          Process.exit!
        end
      end
    else
      def forked_response
        body, code = yield
        { code: code, body: body }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
smart_proxy_openscap-0.12.0 lib/smart_proxy_openscap/helpers.rb
smart_proxy_openscap-0.11.1 lib/smart_proxy_openscap/helpers.rb