Sha256: db9c1829c09a21b5db7fdbd800341f46d087fa68bee6220e11140a503c18772b

Contents?: true

Size: 1.12 KB

Versions: 12

Compression:

Stored size: 1.12 KB

Contents

require 'plezi/render/has_cache' unless defined? ::Plezi::Base::HasStore
module Plezi
   module Base
      module RenderSlim
         extend ::Plezi::Base::HasStore

         module_function

         def call(filename, context, &block)
            return unless defined? ::Slim
            return unless File.exist?(filename)
            engine = load_engine(filename)
            engine.render(context.receiver, &block)
         end
         if ENV['RACK_ENV'.freeze] == 'production'.freeze
            def load_engine(filename)
               engine = self[filename]
               return engine if engine
               self[filename] = (Slim::Template.new { ::Plezi.try_utf8!(IO.binread(filename)) })
            end
         else
            def load_engine(filename)
               engine, tm = self[filename]
               return engine if engine && (tm == File.mtime(filename))
               self[filename] = [(engine = Slim::Template.new { ::Plezi.try_utf8!(IO.binread(filename)) }), File.mtime(filename)]
               engine
            end
         end
      end
   end
end

::Plezi::Renderer.register :slim, ::Plezi::Base::RenderSlim

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
plezi-0.16.4 lib/plezi/render/slim.rb
plezi-0.16.3 lib/plezi/render/slim.rb
plezi-0.16.2 lib/plezi/render/slim.rb
plezi-0.16.1 lib/plezi/render/slim.rb
plezi-0.16.0 lib/plezi/render/slim.rb
plezi-0.15.1 lib/plezi/render/slim.rb
plezi-0.15.0 lib/plezi/render/slim.rb
plezi-0.14.9 lib/plezi/render/slim.rb
plezi-0.14.8 lib/plezi/render/slim.rb
plezi-0.14.7 lib/plezi/render/slim.rb
plezi-0.14.6 lib/plezi/render/slim.rb
plezi-0.14.5 lib/plezi/render/slim.rb