Module: Expressir::Express::Formatters::ReferencesFormatter

Included in:
Expressir::Express::Formatter
Defined in:
lib/expressir/express/formatters/references_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
# File 'lib/expressir/express/formatters/references_formatter.rb', line 5

def self.included(base)
  base.register_formatter Model::References::AttributeReference,
                          :format_references_attribute_reference
  base.register_formatter Model::References::GroupReference,
                          :format_references_group_reference
  base.register_formatter Model::References::IndexReference,
                          :format_references_index_reference
  base.register_formatter Model::References::SimpleReference,
                          :format_references_simple_reference
end

Instance Method Details

#format_references_attribute_reference(node) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/expressir/express/formatters/references_formatter.rb', line 16

def format_references_attribute_reference(node)
  [
    format(node.ref),
    ".",
    format(node.attribute),
  ].join
end

#format_references_group_reference(node) ⇒ Object



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

def format_references_group_reference(node)
  [
    format(node.ref),
    "\\",
    format(node.entity),
  ].join
end

#format_references_index_reference(node) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/expressir/express/formatters/references_formatter.rb', line 32

def format_references_index_reference(node)
  [
    format(node.ref),
    "[",
    format(node.index1),
    *if node.index2
       [
         ":",
         format(node.index2),
       ].join
     end,
    "]",
  ].join
end

#format_references_simple_reference(node) ⇒ Object



47
48
49
# File 'lib/expressir/express/formatters/references_formatter.rb', line 47

def format_references_simple_reference(node)
  node.id
end