Class: AdHocTemplate::DefaultTagFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/ad_hoc_template/pseudohiki_formatter.rb,
lib/ad_hoc_template/default_tag_formatter.rb

Defined Under Namespace

Modules: PseudoHikiFormatter

Constant Summary collapse

FUNCTION_TABLE =
{
  '=' => :default,
  'h' => :html_encode,
}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.assign_format(format_label, &func) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/ad_hoc_template/default_tag_formatter.rb', line 10

def self.assign_format(format_label, &func)
  if format_label.kind_of?(Hash) && !func
    func_name, label = format_label.to_a.flatten
    FUNCTION_TABLE[label] = func_name
  else
    FUNCTION_TABLE[format_label] = func
  end
end

Instance Method Details

#default(var, record) ⇒ Object



33
34
35
# File 'lib/ad_hoc_template/default_tag_formatter.rb', line 33

def default(var, record)
  record[var] || "[#{var}]"
end

#find_function(format_label) ⇒ Object



19
20
21
# File 'lib/ad_hoc_template/default_tag_formatter.rb', line 19

def find_function(format_label)
  FUNCTION_TABLE[format_label] || :default
end

#format(format_label, var, record) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/ad_hoc_template/default_tag_formatter.rb', line 23

def format(format_label, var, record)
  func = find_function(format_label)
  case func
  when Symbol, String
    send(func, var, record)
  else
    func.call(var, record)
  end
end

#html_encode(var, record) ⇒ Object



37
38
39
# File 'lib/ad_hoc_template/default_tag_formatter.rb', line 37

def html_encode(var, record)
  HtmlElement.escape(record[var] || var)
end