Class TaskJuggler::LogicalAttribute
In: lib/taskjuggler/LogicalOperation.rb
Parent: LogicalOperation

This class handles operands that are property attributes. They are addressed by attribute ID and scenario index. The expression provides the property reference.

Methods

eval   new   to_s  

Public Class methods

[Source]

# File lib/taskjuggler/LogicalOperation.rb, line 186
    def initialize(attribute, scenario)
      @scenario = scenario
      super
    end

Public Instance methods

To evaluate a property attribute we use the Query mechanism to retrieve the value.

[Source]

# File lib/taskjuggler/LogicalOperation.rb, line 193
    def eval(expr)
      query = expr.query
      query.scenarioIdx = @scenario.sequenceNo - 1
      query.attributeId = @operand1
      query.process
      # The logical expressions are mostly about comparing values. So we use
      # the sortableResult of the Query. This creates some challenges for load
      # values, as the user is not accustomed to the internal representation
      # of those.
      # Convert nil results into empty Strings if necessary
      query.result || ''
    end

Dumps the LogicalOperation as String. If query is nil, the variable names are shown, otherwise their values.

[Source]

# File lib/taskjuggler/LogicalOperation.rb, line 208
    def to_s(query)
      if query
        query.process
        query.to_s
      else
        "#{@scenario.fullId}.#{@operand1}"
      end
    end

[Validate]