Sha256: 95a7899e6d12eea9607c289cf0b0dba95987364605e1f119afc53046b0113f6d

Contents?: true

Size: 1.43 KB

Versions: 69

Compression:

Stored size: 1.43 KB

Contents

require 'tilt/template'
require 'erb'

module Tilt
  # ERB template implementation. See:
  # http://www.ruby-doc.org/stdlib/libdoc/erb/rdoc/classes/ERB.html
  class ERBTemplate < Template
    @@default_output_variable = '_erbout'

    def self.default_output_variable
      @@default_output_variable
    end

    def self.default_output_variable=(name)
      warn "#{self}.default_output_variable= has been replaced with the :outvar-option"
      @@default_output_variable = name
    end

    def prepare
      @outvar = options[:outvar] || self.class.default_output_variable
      options[:trim] = '<>' if !(options[:trim] == false) && (options[:trim].nil? || options[:trim] == true)
      @engine = ::ERB.new(data, options[:safe], options[:trim], @outvar)
    end

    def precompiled_template(locals)
      source = @engine.src
      source
    end

    def precompiled_preamble(locals)
      <<-RUBY
        begin
          __original_outvar = #{@outvar} if defined?(#{@outvar})
          #{super}
      RUBY
    end

    def precompiled_postamble(locals)
      <<-RUBY
          #{super}
        ensure
          #{@outvar} = __original_outvar
        end
      RUBY
    end

    # ERB generates a line to specify the character coding of the generated
    # source in 1.9. Account for this in the line offset.
    if RUBY_VERSION >= '1.9.0'
      def precompiled(locals)
        source, offset = super
        [source, offset + 1]
      end
    end
  end
end

Version data entries

69 entries across 68 versions & 19 rubygems

Version Path
logstash-filter-csharp-0.2.1 vendor/bundle/jruby/2.3.0/gems/tilt-2.0.7/lib/tilt/erb.rb
logstash-filter-csharp-0.2.0 vendor/bundle/jruby/2.3.0/gems/tilt-2.0.7/lib/tilt/erb.rb
logstash-filter-device_detection-1.0.7-java vendor/bundle/jruby/1.9/gems/tilt-2.0.8/lib/tilt/erb.rb
mrcooper-logstash-output-azuresearch-0.2.2 vendor/jruby/2.5.0/gems/tilt-2.0.8/lib/tilt/erb.rb
brakeman-4.3.1 bundle/ruby/2.5.0/gems/tilt-2.0.8/lib/tilt/erb.rb
brakeman-4.3.0 bundle/ruby/2.5.0/gems/tilt-2.0.8/lib/tilt/erb.rb
brakeman-4.2.1 bundle/ruby/2.5.0/gems/tilt-2.0.8/lib/tilt/erb.rb
brakeman-4.2.0 bundle/ruby/2.3.0/gems/tilt-2.0.8/lib/tilt/erb.rb
brakeman-4.1.1 bundle/ruby/2.3.0/gems/tilt-2.0.8/lib/tilt/erb.rb
brakeman-4.1.0 bundle/ruby/2.3.0/gems/tilt-2.0.8/lib/tilt/erb.rb
logstash-output-icinga-1.1.0 vendor/jruby/1.9/gems/tilt-2.0.7/lib/tilt/erb.rb
logstash-output-icinga-1.1.0 vendor/jruby/2.3.0/gems/tilt-2.0.7/lib/tilt/erb.rb
brakeman-4.0.1 bundle/ruby/2.3.0/gems/tilt-2.0.8/lib/tilt/erb.rb
brakeman-4.0.1.pre1 bundle/ruby/2.3.0/gems/tilt-2.0.8/lib/tilt/erb.rb
brakeman-4.0.0 bundle/ruby/2.3.0/gems/tilt-2.0.8/lib/tilt/erb.rb
brakeman-3.7.2 bundle/ruby/2.3.0/gems/tilt-2.0.8/lib/tilt/erb.rb
brakeman-3.7.1 bundle/ruby/2.3.0/gems/tilt-2.0.8/lib/tilt/erb.rb
tilt-2.0.8 lib/tilt/erb.rb
logstash-filter-cache-redis-0.3.1 vendor/bundle/jruby/1.9/gems/tilt-2.0.7/lib/tilt/erb.rb
logstash-filter-cache-redis-0.3.0 vendor/bundle/jruby/1.9/gems/tilt-2.0.7/lib/tilt/erb.rb