Class: CldrPlurals::JavascriptEmitter

Inherits:
Compiler::Emitter show all
Defined in:
lib/cldr-plurals/javascript_emitter.rb

Constant Summary collapse

RUNTIME_VARS =
%w(n i v w f t)

Class Method Summary collapse

Class Method Details

.emit_rule(rule) ⇒ Object



18
19
20
# File 'lib/cldr-plurals/javascript_emitter.rb', line 18

def emit_rule(rule)
  emit(rule.root)
end

.emit_rule_standalone(rule) ⇒ Object



22
23
24
# File 'lib/cldr-plurals/javascript_emitter.rb', line 22

def emit_rule_standalone(rule)
  "(function(n, i, f, t, v, w) { return #{emit_rule(rule)}; })"
end

.emit_rules(rule_list) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/cldr-plurals/javascript_emitter.rb', line 9

def emit_rules(rule_list)
  parts = rule_list.rules.map do |rule|
    "(#{emit_rule(rule)} ? '#{rule.name}' : "
  end + ["'other'"]

  chooser = "#{parts.join('')}#{')' * (parts.size - 1)}"
  "(function(num, runtime) { #{build_runtime_vars}; return #{chooser}; })"
end