Sha256: c2fa44f92780acde6afbee976cbc893696c9e8c11cdafaaa049a9b23e981dc65

Contents?: true

Size: 1.18 KB

Versions: 6

Compression:

Stored size: 1.18 KB

Contents

require Options.paths.lib + 'ui/output'
require Options.paths.lib + 'rpc/server/dispatcher'
require Options.paths.lib + 'processes/manager'

class Node < Cuboid::RPC::Server::Dispatcher::Node

    def initialize
        @options = Options.instance

        methods.each do |m|
            next if method( m ).owner != Cuboid::RPC::Server::Dispatcher::Node
            self.class.send :private, m
            self.class.send :public, m
        end

        @server = Cuboid::RPC::Server::Base.new
        @server.add_async_check do |method|
            # methods that expect a block are async
            method.parameters.flatten.include?( :block )
        end
        @server.add_handler( 'node', self )

        super @options, @server

        @server.start
    end

    def url
        @server.url
    end

    def shutdown
        Arachni::Reactor.global.delay 1 do
            Process.kill( 'KILL', Process.pid )
        end
    end

    def connect_to_peer( url )
        self.class.connect_to_peer( url )
    end

    def self.connect_to_peer( url )
        c = Cuboid::RPC::Client::Base.new( url )
        Arachni::RPC::Proxy.new( c, 'node' )
    end
end

Arachni::Reactor.global.run do
    Node.new
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cuboid-0.0.5 spec/support/fixtures/executables/node.rb
cuboid-0.0.4 spec/support/fixtures/executables/node.rb
cuboid-0.0.3 spec/support/fixtures/executables/node.rb
cuboid-0.0.3alpha spec/support/fixtures/executables/node.rb
cuboid-0.0.2alpha spec/support/fixtures/executables/node.rb
cuboid-0.0.1alpha spec/support/fixtures/executables/node.rb