Sha256: c7575769f98b42e9b322025c5ce4c627a804a0cb6dc50d57c7b2a96fa90ede8f

Contents?: true

Size: 963 Bytes

Versions: 3

Compression:

Stored size: 963 Bytes

Contents

require 'nm'
require 'sanford/template_engine'
require "sanford-nm/version"

module Sanford::Nm

  class TemplateEngine < Sanford::TemplateEngine

    DEFAULT_HANDLER_LOCAL = 'view'.freeze
    DEFAULT_LOGGER_LOCAL  = 'logger'.freeze

    def nm_source
      @nm_source ||= Nm::Source.new(self.source_path, {
        :cache  => self.opts['cache'],
        :ext    => self.opts['ext'],
        :locals => { self.nm_logger_local => self.logger }
      })
    end

    def nm_handler_local
      @nm_handler_local ||= (self.opts['handler_local'] || DEFAULT_HANDLER_LOCAL)
    end

    def nm_logger_local
      @nm_logger_local ||= (self.opts['logger_local'] || DEFAULT_LOGGER_LOCAL)
    end

    def render(path, service_handler, locals)
      self.nm_source.render(path, render_locals(service_handler, locals))
    end

    private

    def render_locals(service_handler, locals)
      { self.nm_handler_local => service_handler }.merge(locals)
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sanford-nm-0.4.4 lib/sanford-nm.rb
sanford-nm-0.4.3 lib/sanford-nm.rb
sanford-nm-0.4.2 lib/sanford-nm.rb