Sha256: 76854cd36eb1351241a0bf50f8ad58acdf1f7494a7a8b0f5fedb8dac103f10a8

Contents?: true

Size: 997 Bytes

Versions: 2

Compression:

Stored size: 997 Bytes

Contents

require "pathname"
require "drb/drb"
require "akephalos/client"

# In ruby-1.8.7 and later, the message for a NameError exception is lazily
# evaluated. There are, however, different implementations of this between ruby
# and jruby, so we realize these messages when sending over DRb.
class NameError::Message
  # @note This method is called by DRb before sending the error to the remote
  # connection.
  # @return [String] the inner message.
  def _dump
    to_s
  end
end

[Akephalos::Page, Akephalos::Node].each { |klass| klass.send(:include, DRbUndumped) }

module Akephalos

  # Akephalos::Server is used by `akephalos --server` to start a DRb server
  # serving an instance of Akephalos::Client.
  class Server
    # Start DRb service for an Akephalos::Client.
    #
    # @param [String] socket_file path to socket file to start
    def self.start!(socket_file)
      client = Client.new
      DRb.start_service("drbunix://#{socket_file}", client)
      DRb.thread.join
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
akephalos-0.2.4-java lib/akephalos/server.rb
akephalos-0.2.4 lib/akephalos/server.rb