Sha256: 8c21df8762850c112f8c019ac96379486b70d9c677ea2b5cd239b24fa49ae163
Contents?: true
Size: 1.73 KB
Versions: 3
Compression:
Stored size: 1.73 KB
Contents
require 'aws-sdk' require 'mustache' module Alephant class Renderer DEFAULT_LOCATION = 'views' attr_reader :id def initialize(id, view_base_path=nil) @logger = ::Alephant.logger @id = id self.base_path = view_base_path unless view_base_path.nil? @logger.info("Renderer.initialize: end with self.base_path set to #{self.base_path}") end def render(data) @logger.info("Renderer.render: rendered template with id #{id}") Mustache.render( template(@id), model(@id,data) ) end def base_path @base_path || DEFAULT_LOCATION end def base_path=(path) if File.directory?(path) @base_path = path else @logger.error("Renderer.base_path=(path): error of invalid view path #{path}") raise Errors::InvalidViewPath end end def model(id, data) model_location = File.join(base_path, 'models', "#{id}.rb") begin require model_location klass = ::Alephant::Views.get_registered_class(id) @logger.info("Renderer.model: klass set to #{klass}") rescue Exception => e @logger.error("Renderer.model: view model with id #{id} not found") raise Errors::ViewModelNotFound end @logger.info("Renderer.model: creating new klass with data #{data}") klass.new(data) end def template(id) template_location = File.join(base_path,'templates',"#{id}.mustache") begin @logger.info("Renderer.template: #{template_location}") File.open(template_location).read rescue Exception => e @logger.error("Renderer.template: view tempalte with id #{id} not found") raise Errors::ViewTemplateNotFound end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
alephant-0.0.8.2-java | lib/alephant/models/renderer.rb |
alephant-0.0.8.1-java | lib/alephant/models/renderer.rb |
alephant-0.0.8-java | lib/alephant/models/renderer.rb |