Sha256: dc1d04dd97b019b7e53c10789382034d821dba85414568724fb4a8ccc939283c

Contents?: true

Size: 1.75 KB

Versions: 24

Compression:

Stored size: 1.75 KB

Contents

# TILT Template
if defined?(Tilt)
  class RablTemplate < Tilt::Template
    def initialize_engine
      return if defined?(::Rabl)
      require_template_library 'rabl'
    end

    def prepare
      options = @options.merge(:format => @options[:format], :source_location => file)
      @engine = ::Rabl::Engine.new(data, options)
    end

    def evaluate(scope, locals, &block)
      @engine.render(scope, locals, &block)
    end
  end

  Tilt.register 'rabl', RablTemplate
end

# Rails 2.X Template
if defined?(ActionView) && defined?(Rails) && Rails.version =~ /^2/
  require 'action_view/base'
  require 'action_view/template'

  module ActionView
    module TemplateHandlers
      class RablHandler < TemplateHandler
        include Compilable

        def compile(template) %{
          ::Rabl::Engine.new(#{template.source.inspect}, { :format => #{template.format.inspect} }).
            render(self, assigns.merge(local_assigns))
        } end
      end
    end
  end

  ActionView::Template.register_template_handler :rabl, ActionView::TemplateHandlers::RablHandler
end

# Rails 3.X Template
if defined?(ActionView) && defined?(Rails) && Rails.version =~ /^3/
  module ActionView
    module Template::Handlers
      class Rabl

        class_attribute :default_format
        self.default_format = Mime::JSON

        def self.call(template)
          source = if template.source.empty?
            File.read(template.identifier)
          else # use source
            template.source
          end

          %{ ::Rabl::Engine.new(#{source.inspect}).
              render(self, assigns.merge(local_assigns)) }
        end # call
      end # rabl class
    end # handlers
  end

  ActionView::Template.register_template_handler :rabl, ActionView::Template::Handlers::Rabl
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
rabl-0.6.13 lib/rabl/template.rb
rabl-0.6.12 lib/rabl/template.rb
rabl-0.6.11 lib/rabl/template.rb
rabl-0.6.10 lib/rabl/template.rb
rabl-0.6.9 lib/rabl/template.rb
rabl-0.6.8 lib/rabl/template.rb
rabl-0.6.7 lib/rabl/template.rb
rabl-0.6.6 lib/rabl/template.rb
rabl-0.6.5 lib/rabl/template.rb
rabl-0.6.3 lib/rabl/template.rb
rabl-0.6.2 lib/rabl/template.rb
rabl-0.6.1 lib/rabl/template.rb
rabl-0.6.0 lib/rabl/template.rb
rabl-0.5.5.j lib/rabl/template.rb
rabl-0.5.5.i lib/rabl/template.rb
rabl-0.5.5.h lib/rabl/template.rb
rabl-0.5.5.g lib/rabl/template.rb
rabl-0.5.5.f lib/rabl/template.rb
rabl-0.5.5.e lib/rabl/template.rb
rabl-0.5.5.d lib/rabl/template.rb