class TaskJuggler::LogicalAttribute
This class handles operands that are property attributes. They are addressed by attribute ID and scenario index. The expression provides the property reference.
Public Class Methods
Source
# File lib/taskjuggler/LogicalOperation.rb, line 186 def initialize(attribute, scenario) @scenario = scenario super end
Calls superclass method
TaskJuggler::LogicalOperation::new
Public Instance Methods
Source
# File lib/taskjuggler/LogicalOperation.rb, line 193 def eval(expr) query = expr.query.dup query.scenarioIdx = @scenario.sequenceNo - 1 query.attributeId = @operand1 query.process if query.ok # 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 || '' else expr.error(query.errorMessage) query.errorMessage end end
To evaluate a property attribute we use the Query
mechanism to retrieve the value.
Source
# File lib/taskjuggler/LogicalOperation.rb, line 213 def to_s(query) if query query = query.dup query.scenarioIdx = @scenario.sequenceNo - 1 query.attributeId = @operand1 query.process unless query.ok return "Error in conversion to String: #{query.errorMessage}" end query.to_s else "#{@scenario.fullId}.#{@operand1}" end end
Dumps the LogicalOperation
as String
. If query is nil, the variable names are shown, otherwise their values.