Module: Expressir::Express::Formatters::LiteralsFormatter

Included in:
Expressir::Express::Formatter
Defined in:
lib/expressir/express/formatters/literals_formatter.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/expressir/express/formatters/literals_formatter.rb', line 5

def self.included(base)
  base.register_formatter Model::Literals::Binary,
                          :format_literals_binary
  base.register_formatter Model::Literals::Integer,
                          :format_literals_integer
  base.register_formatter Model::Literals::Logical,
                          :format_literals_logical
  base.register_formatter Model::Literals::Real, :format_literals_real
  base.register_formatter Model::Literals::String,
                          :format_literals_string
end

Instance Method Details

#format_literals_binary(node) ⇒ Object



17
18
19
# File 'lib/expressir/express/formatters/literals_formatter.rb', line 17

def format_literals_binary(node)
  node.value
end

#format_literals_integer(node) ⇒ Object



21
22
23
# File 'lib/expressir/express/formatters/literals_formatter.rb', line 21

def format_literals_integer(node)
  node.value
end

#format_literals_logical(node) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/expressir/express/formatters/literals_formatter.rb', line 25

def format_literals_logical(node)
  case node.value
  when Model::Literals::Logical::TRUE then "TRUE"
  when Model::Literals::Logical::FALSE then "FALSE"
  when Model::Literals::Logical::UNKNOWN then "UNKNOWN"
  end
end

#format_literals_real(node) ⇒ Object



33
34
35
# File 'lib/expressir/express/formatters/literals_formatter.rb', line 33

def format_literals_real(node)
  node.value
end

#format_literals_string(node) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/expressir/express/formatters/literals_formatter.rb', line 37

def format_literals_string(node)
  if node.encoded
    [
      "\"",
      node.value,
      "\"",
    ].join
  else
    [
      "'",
      node.value,
      "'",
    ].join
  end
end