Sha256: 7045fb7981da5304244aaf7f5a664e4c68e18f461bedbc56f771cafa240e703c

Contents?: true

Size: 658 Bytes

Versions: 18

Compression:

Stored size: 658 Bytes

Contents

require 'handlebars'

class String
  def unindent
    gsub(/^#{match(/^\s+/)}/, '')
  end
end

module Immutabler
  module Template
    class BaseTemplate
      attr_accessor :template_file

      def raw_template
        @raw_template ||= File.read(template_file)
      end

      def handlebars
        @handlebars ||= Handlebars::Context.new
      end

      def template
        @template ||= handlebars.compile(raw_template, {noEscape: true})
      end

      def helper(name, &helper_body)
        handlebars.register_helper(name) do |context, arg, block|
          helper_body.call(context, arg, block).unindent
        end
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
immutabler-0.3.0 lib/immutabler/template/template.rb
immutabler-0.2.6 lib/immutabler/template/template.rb
immutabler-0.2.5 lib/immutabler/template/template.rb
immutabler-0.2.4 lib/immutabler/template/template.rb
immutabler-0.2.3 lib/immutabler/template/template.rb
immutabler-0.2.2 lib/immutabler/template/template.rb
immutabler-0.2.1 lib/immutabler/template/template.rb
immutabler-0.2.0 lib/immutabler/template/template.rb
immutabler-0.1.9 lib/immutabler/template/template.rb
immutabler-0.1.8 lib/immutabler/template/template.rb
immutabler-0.1.7 lib/immutabler/template/template.rb
immutabler-0.1.6 lib/immutabler/template/template.rb
immutabler-0.1.5 lib/immutabler/template/template.rb
immutabler-0.1.4 lib/immutabler/template/template.rb
immutabler-0.1.3 lib/immutabler/template/template.rb
immutabler-0.1.2 lib/immutabler/template/template.rb
immutabler-0.1.1 lib/immutabler/template/template.rb
immutabler-0.1.0 lib/immutabler/template/template.rb