Sha256: 15f471ec58089d526b26f96fd2a02ecee0f224426fff12ff44e3973411da2445

Contents?: true

Size: 561 Bytes

Versions: 1

Compression:

Stored size: 561 Bytes

Contents

require 'hashmake'

module SPNet
class CommandInPort < InPort
  
  include Hashmake::HashMakeable

  ARG_SPECS = [
    Hashmake::ArgSpec.new(:key => :command_map, :reqd => true, :type => Proc, :container => Hashmake::ArgSpec::CONTAINER_HASH),
  ]

  def initialize hashed_args
    hash_make(CommandInPort::ARG_SPECS, hashed_args)
    hashed_args.merge!(:matching_port_class => CommandOutPort)
    super(hashed_args)
  end
  
  def list_commands
    @command_map.keys
  end
  
  def exec_command command, data
    @command_map[command].call data
  end  
end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spnet-0.1.4 lib/spnet/ports/command_in_port.rb