Sha256: 751029dee0745190ef52052a3162396373a29333033f2d6a0fb5eedbf7303e99

Contents?: true

Size: 833 Bytes

Versions: 2

Compression:

Stored size: 833 Bytes

Contents

require "fileutils"
require "socket"
require "plux/version"
require "plux/server"
require "plux/client"
require "plux/parser"
require "plux/engine"


module Plux

  class << self
    def dir
      File.join(Dir.home, '.plux')
    end

    def pid_file(server_name)
      File.join(dir, "#{server_name}.pid")
    end

    def lock_pid_file(name)
      File.open(pid_file(name), File::RDWR|File::CREAT, 0644) do |file|
        begin
          file.flock(File::LOCK_EX)
          yield file
        ensure
          file.flock(File::LOCK_UN)
        end
      end
    end

    def server_file(server_name)
      File.join(dir, "#{server_name}.so")
    end

    def worker(name, thread: 1, &block)
      worker = Class.new(&block).new
      Server.new(name, thread: thread).boot(worker)
    end
  end

  FileUtils.mkdir_p(self.dir)

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
plux-0.1.8 lib/plux.rb
plux-0.1.7 lib/plux.rb