Sha256: 5ae290794a7724cb892d241401a563997eadc6f493b62df697f86e50f38673da
Contents?: true
Size: 1.17 KB
Versions: 1
Compression:
Stored size: 1.17 KB
Contents
module SPNet # Represent a Link object using only serializeable objects. # # @author James Tunnell class LinkState include Hashmake::HashMakeable # Define arg specs to use in processing hashed arguments during #initialize. ARG_SPECS = { :from => arg_spec(:reqd => true, :type => PortLocater), :to => arg_spec(:reqd => true, :type => PortLocater) } attr_reader :from, :to def initialize args hash_make args, ARG_SPECS end # Make a Link objet from the current LinkState object. def make_link blocks raise "from block #{@from.block_name} not found" unless blocks.has_key?(@from.block_name) raise "to block #{@to.block_name} not found" unless blocks.has_key?(@to.block_name) from_block = blocks[@from.block_name] to_block = blocks[@to.block_name] raise "from port #{@from.port_name} not found" unless from_block.out_ports.has_key?(@from.port_name) raise "to port #{@to.port_name} not found" unless to_block.in_ports.has_key?(@to.port_name) from_port = from_block.out_ports[@from.port_name] to_port = to_block.in_ports[@to.port_name] return Link.new(:from => from_port, :to => to_port) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
spnet-0.1.8 | lib/spnet/storage/link_state.rb |