Class: TemplateBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/apollo_commons_ruby/TemplateBuilder.rb

Instance Method Summary collapse

Constructor Details

#initializeTemplateBuilder

Returns a new instance of TemplateBuilder.



5
6
7
8
9
# File 'lib/apollo_commons_ruby/TemplateBuilder.rb', line 5

def initialize
  @context = V8::Context.new
  @context.load("scripts/underscore-min.js")
  @context.eval("var generateTemplatedString = function(templateString, dataObject) { var compiled = _.template(templateString); return compiled(dataObject);}")
end

Instance Method Details

#build(data_template, data, os) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/apollo_commons_ruby/TemplateBuilder.rb', line 11

def build(data_template, data, os)
  function = @context[:generateTemplatedString];
  begin
    data_template = data_template.force_encoding("UTF-8")
    if os == "android"
      @context.eval( "var compiledTemplate = _.template(' " + data_template + "');" + "compiledTemplate(" + data.to_json + ");")
    else
      function.call(data_template, data)
    end

  rescue Exception => e
    puts "\n", e.causes, e.javascript_backtrace;
  end
end