Class: TaskJuggler::LogicalAttribute
- Inherits:
-
LogicalOperation
- Object
- LogicalOperation
- TaskJuggler::LogicalAttribute
- Defined in:
- lib/taskjuggler/LogicalOperation.rb
Overview
This class handles operands that are property attributes. They are addressed by attribute ID and scenario index. The expression provides the property reference.
Instance Attribute Summary
Attributes inherited from LogicalOperation
#operand1, #operand2, #operator
Instance Method Summary collapse
-
#eval(expr) ⇒ Object
To evaluate a property attribute we use the Query mechanism to retrieve the value.
-
#initialize(attribute, scenario) ⇒ LogicalAttribute
constructor
A new instance of LogicalAttribute.
-
#to_s(query) ⇒ Object
Dumps the LogicalOperation as String.
Constructor Details
#initialize(attribute, scenario) ⇒ LogicalAttribute
Returns a new instance of LogicalAttribute.
186 187 188 189 |
# File 'lib/taskjuggler/LogicalOperation.rb', line 186 def initialize(attribute, scenario) @scenario = scenario super end |
Instance Method Details
#eval(expr) ⇒ Object
To evaluate a property attribute we use the Query mechanism to retrieve the value.
193 194 195 196 197 198 199 200 201 202 203 204 |
# 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 |
#to_s(query) ⇒ Object
Dumps the LogicalOperation as String. If query is nil, the variable names are shown, otherwise their values.
208 209 210 211 212 213 214 215 |
# File 'lib/taskjuggler/LogicalOperation.rb', line 208 def to_s(query) if query query.process query.to_s else "#{@scenario.fullId}.#{@operand1}" end end |