module Origen::Ports
Public Instance Methods
add_port(name, options = {}) { |p| ... }
click to toggle source
# File lib/origen/ports.rb, line 8 def add_port(name, options = {}) p = Port.new(self, name, options) if block_given? p.send(:defining) do yield p end end _ports.add(name.to_s.symbolize, p) p end
has_port?(name)
click to toggle source
# File lib/origen/ports.rb, line 44 def has_port?(name) _ports.key?(name.to_s.symbolize) end
method_missing(method, *args, &block)
click to toggle source
Calls superclass method
# File lib/origen/ports.rb, line 48 def method_missing(method, *args, &block) if _ports.key?(method.to_s.symbolize) _ports[method.to_s.symbolize] else super end end
port(*args, &block)
click to toggle source
# File lib/origen/ports.rb, line 19 def port(*args, &block) if block_given? add_port(*args, &block) else if args.first if has_port?(args.first) _ports[args.first.to_s.symbolize] else if _initialized? puts "Model #{self.class} does not have a port named #{args.first}, the available ports are:" puts _ports.keys puts fail 'Missing port error' else # Assume this is a pin definition while the model is still initializing add_port(*args) end end else _ports end end end
Also aliased as: ports
respond_to?(sym, include_all = false)
click to toggle source
Calls superclass method
# File lib/origen/ports.rb, line 56 def respond_to?(sym, include_all = false) has_port?(sym) || super(sym) end
Private Instance Methods
_ports()
click to toggle source
# File lib/origen/ports.rb, line 62 def _ports @_ports ||= PortCollection.new end