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