Sha256: 6060e0035bfe484a2666942ccc86bc499a02e925dcccc5010088282055c33b7f

Contents?: true

Size: 903 Bytes

Versions: 8

Compression:

Stored size: 903 Bytes

Contents

# Define the behavior of the Implication relationship
class Phenomenal::Implication < Phenomenal::Relationship  
  attr_accessor :activation_counter
  def initialize(source,target,feature)
    super(source,target,feature)
    @activation_counter=0
  end
  
  def activate_feature
    if source.active?
      target.activate
      self.activation_counter+=1
    end
  end
  
  def deactivate_feature
    if activation_counter>0
      target.deactivate
      self.activation_counter-=1
    end
  end
  
  def activate_context(context)
    if source==context
      target.activate
      self.activation_counter+=1
    end
  end
  
  def deactivate_context(context)
    if source==context && activation_counter>0
      target.deactivate
      self.activation_counter-=1
    elsif activation_counter>0
      source.deactivate
      self.activation_counter-=1
    else
      # Nothing to do
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
phenomenal-1.2.4 lib/phenomenal/relationship/implication.rb
phenomenal-1.2.3 lib/phenomenal/relationship/implication.rb
phenomenal-1.2.2 lib/phenomenal/relationship/implication.rb
phenomenal-1.2.1 lib/phenomenal/relationship/implication.rb
phenomenal-1.1.1 lib/phenomenal/relationships/implication.rb
phenomenal-1.1.0 lib/phenomenal/relationships/implication.rb
phenomenal-1.0.1 lib/phenomenal/relationships/implication.rb
phenomenal-1.0.0 lib/phenomenal/relationships/implication.rb