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.



235
236
237
# File 'lib/taskjuggler/LogicalOperation.rb', line 235

def initialize(opnd)
  super
end

Instance Method Details

#eval(expr) ⇒ Object

Return true if the property has the flag assigned.



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

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



250
251
252
253
254
255
256
257
258
259
260
# File 'lib/taskjuggler/LogicalOperation.rb', line 250

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