class RPetri::Arc
Attributes
options[R]
source[R]
target[R]
Public Class Methods
new(source, target, options = {})
click to toggle source
Calls superclass method
# File lib/rpetri/objects/arc.rb, line 5 def initialize(source, target, options = {}) @source = source @target = target @options = options validate! super() end
Public Instance Methods
runnable?(tokens_at_source)
click to toggle source
# File lib/rpetri/objects/arc.rb, line 13 def runnable?(tokens_at_source) tokens_at_source > 0 end
tokens_to_give(tokens_at_target)
click to toggle source
# File lib/rpetri/objects/arc.rb, line 21 def tokens_to_give(tokens_at_target) 1 end
tokens_to_take(tokens_at_source)
click to toggle source
# File lib/rpetri/objects/arc.rb, line 17 def tokens_to_take(tokens_at_source) 1 end
Protected Instance Methods
validate!()
click to toggle source
# File lib/rpetri/objects/arc.rb, line 27 def validate! validate_item(@source, 'Source') validate_item(@target, 'Target') source_type = @source.is_a?(Place) ? :place : :target target_type = @target.is_a?(Place) ? :place : :target raise ValidationError, 'Source and Target should be different type' if source_type == target_type end
validate_item(item, name)
click to toggle source
# File lib/rpetri/objects/arc.rb, line 35 def validate_item(item, name) return if item.is_a?(Place) || item.is_a?(Transition) raise ValidationError, "#{name} should be Place or Transition" end