class Trilean

Attributes

embedded[RW]
table[RW]
value[RW]

Public Class Methods

new(x, y = nil, z = nil) click to toggle source
# File src/trileans.rb, line 52
def initialize(x, y = nil, z = nil)
        if x.is_a?(Integer)
                if x <= 2
                        @value = x
                        @table = TrileanUtils.CreateTable(@value)
                        @embedded = y
                else
                        throw "Error: Trilean values must range from 0 to 2"
                end
        elsif [true, false].include? x
                if [true, false].include? y
                        @value = TrileanUtils.Parse(x, y)
                        @table = TrileanUtils.CreateTable(@value)
                        @embedded = z
                else
                        @value = TrileanUtils.Parse(x)
                        @table = TrileanUtils.CreateTable(@value)
                        @embedded = y
                end
        elsif x.is_a?(String)
                @value = TrileanUtils.Parse(x)
                @table = TrileanUtils.CreateTable(@value)
                @embedded = y
        else
                throw "Invalid argument type. Type of first argument must either be number, boolean, or string. Type of second object must either be boolean or desired embedded object (for all patterns other than bool, bool, embedded). Type of third object must be desired embedded object (for pattern bool, bool, embedded)"
        end
end