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
new(attribute, scenario)
click to toggle source
Calls superclass method
TaskJuggler::LogicalOperation::new
# File lib/taskjuggler/LogicalOperation.rb, line 186 def initialize(attribute, scenario) @scenario = scenario super end
Public Instance Methods
eval(expr)
click to toggle source
To evaluate a property attribute we use the Query
mechanism to retrieve the value.
# 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_s(query)
click to toggle source
Dumps the LogicalOperation
as String
. If query is nil, the variable names are shown, otherwise their values.
# 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