Sha256: 40bc3a3643d381e8cc2db5dd3f2bceb3059d1680f990e5fcdb0a2eb534f96a6c

Contents?: true

Size: 1.9 KB

Versions: 16

Compression:

Stored size: 1.9 KB

Contents

module Vedeu

  module Bindings

    # System events relating to the DRb server implementation.
    #
    module DRB

      extend self

      # Setup events relating to the DRb server. This method is called
      # by Vedeu.
      #
      # @return [TrueClass]
      def setup!
        drb_input!
        drb_retrieve_output!
        drb_store_output!
        drb_restart!
        drb_start!
        drb_status!
        drb_stop!
      end

      private

      # See {file:docs/events/drb.md#\_drb_input_}
      def drb_input!
        Vedeu.bind(:_drb_input_) do |data, type|
          Vedeu.log(type: :drb, message: "Sending input (#{type})")

          case type
          when :command  then Vedeu.trigger(:_command_, data)
          when :keypress then Vedeu.trigger(:_keypress_, data)
          else Vedeu.trigger(:_keypress_, data)
          end
        end
      end

      # See {file:docs/events/drb.md#\_drb_retrieve_output_}
      def drb_retrieve_output!
        Vedeu.bind(:_drb_retrieve_output_) do
          Vedeu::Terminal::Buffer.output
        end
      end

      # See {file:docs/events/drb.md#\_drb_store_output_}
      def drb_store_output!
        Vedeu.bind(:_drb_store_output_) do |data|
          Vedeu::Terminal::Buffer.write(data)
        end
      end

      # See {file:docs/events/drb.md#\_drb_restart_}
      def drb_restart!
        Vedeu.bind(:_drb_restart_) { Vedeu::Distributed::Server.restart }
      end

      # See {file:docs/events/drb.md#\_drb_start_}
      def drb_start!
        Vedeu.bind(:_drb_start_) { Vedeu::Distributed::Server.start }
      end

      # See {file:docs/events/drb.md#\_drb_status_}
      def drb_status!
        Vedeu.bind(:_drb_status_) { Vedeu::Distributed::Server.status }
      end

      # See {file:docs/events/drb.md#\_drb_stop_}
      def drb_stop!
        Vedeu.bind(:_drb_stop_) { Vedeu::Distributed::Server.stop }
      end

    end # DRB

  end # Bindings

end # Vedeu

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
vedeu-0.6.25 lib/vedeu/bindings/drb.rb
vedeu-0.6.24 lib/vedeu/bindings/drb.rb
vedeu-0.6.23 lib/vedeu/bindings/drb.rb
vedeu-0.6.22 lib/vedeu/bindings/drb.rb
vedeu-0.6.21 lib/vedeu/bindings/drb.rb
vedeu-0.6.20 lib/vedeu/bindings/drb.rb
vedeu-0.6.19 lib/vedeu/bindings/drb.rb
vedeu-0.6.18 lib/vedeu/bindings/drb.rb
vedeu-0.6.17 lib/vedeu/bindings/drb.rb
vedeu-0.6.16 lib/vedeu/bindings/drb.rb
vedeu-0.6.15 lib/vedeu/bindings/drb.rb
vedeu-0.6.14 lib/vedeu/bindings/drb.rb
vedeu-0.6.13 lib/vedeu/bindings/drb.rb
vedeu-0.6.12 lib/vedeu/bindings/drb.rb
vedeu-0.6.11 lib/vedeu/bindings/drb.rb
vedeu-0.6.10 lib/vedeu/bindings/drb.rb