Class: TaskJuggler::LogicalFlag

Inherits:
LogicalOperation show all
Defined in:
lib/taskjuggler/LogicalOperation.rb

Overview

This class handles operands that represent flags. The operation evaluates to true if the property provided by the expression has the flag assigned.

Instance Attribute Summary

Attributes inherited from LogicalOperation

#operand1, #operand2, #operator

Instance Method Summary collapse

Constructor Details

#initialize(opnd) ⇒ LogicalFlag

Returns a new instance of LogicalFlag.



223
224
225
# File 'lib/taskjuggler/LogicalOperation.rb', line 223

def initialize(opnd)
  super
end

Instance Method Details

#eval(expr) ⇒ Object

Return true if the property has the flag assigned.



228
229
230
231
232
233
234
235
236
# File 'lib/taskjuggler/LogicalOperation.rb', line 228

def eval(expr)
  if expr.query.is_a?(Query)
    # This is used for Project or PTN related Queries
    expr.query.property['flags', 0].include?(@operand1)
  else
    # This is used for Journal objects.
    expr.query.flags.include?(@operand1)
  end
end

#to_s(query) ⇒ Object



238
239
240
241
242
243
244
245
246
247
248
# File 'lib/taskjuggler/LogicalOperation.rb', line 238

def to_s(query)
  if query
    if query.is_a?(Query)
      query.property['flags', 0].include(@operand1) ? 'true' : 'false'
    else
      query.flags.include(@operand1) ? 'true' : 'false'
    end
  else
    @operand1
  end
end