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.



231
232
233
# File 'lib/taskjuggler/LogicalOperation.rb', line 231

def initialize(opnd)
  super
end

Instance Method Details

#eval(expr) ⇒ Object

Return true if the property has the flag assigned.



236
237
238
239
240
241
242
243
244
# File 'lib/taskjuggler/LogicalOperation.rb', line 236

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



246
247
248
249
250
251
252
253
254
255
256
# File 'lib/taskjuggler/LogicalOperation.rb', line 246

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