Constant.variables()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 3
rs 10
1
require 'singleton'
2
3
module PropLogic
4
  class Constant < Variable
5
    def variables
6
      []
7
    end
8
9
    def to_cnf
10
      self
11
    end
12
13
  end
14
15
  class TrueConstant < Constant
16
    include Singleton
17
    def to_s(*)
18
      'true'
19
    end
20
21
    def assign(trues, falses, variables = nil)
22
      if falses.include?(self)
23
        raise ArgumentError, 'Contradicted assignment'
24
      end
25
      self
26
    end
27
28
  end
29
30
  class FalseConstant < Constant
31
    include Singleton
32
    def to_s(*)
33
      'false'
34
    end
35
    def assign(trues, falses, variables = nil)
36
      if trues.include?(self)
37
        raise ArgumentError, 'Contradicted assignment'
38
      end
39
      self
40
    end
41
  end
42
43
  True = TrueConstant.instance.freeze
44
  False = FalseConstant.instance.freeze
45
end
46