class ActionView::Template::Handlers::ERB - actionpack-3.2.22 Documentation

# class ActionView::Template::Handlers::ERB

### Constants

ENCODING_TAG

### Public Class Methods

call(template) click to toggle source

    # File lib/action_view/template/handlers/erb.rb, line 68
    def self.call(template)
      new.call(template)
    end

### Public Instance Methods

call(template) click to toggle source

    # File lib/action_view/template/handlers/erb.rb, line 80
    def call(template)
      if template.source.encoding_aware?
        # First, convert to BINARY, so in case the encoding is
        # wrong, we can still find an encoding tag
        # (<%# encoding %>) inside the String using a regular
        # expression
        template_source = template.source.dup.force_encoding("BINARY")

        erb = template_source.gsub(ENCODING_TAG, '')
        encoding = $2

        erb.force_encoding valid_encoding(template.source.dup, encoding)

        # Always make sure we return a String in the default_internal
        erb.encode!
      else
        erb = template.source.dup
      end

      self.class.erb_implementation.new(
        erb,
        :escape => (self.class.escape_whitelist.include? template.mime_type),
        :trim => (self.class.erb_trim_mode == "-")
      ).src
    end

handles_encoding?() click to toggle source

    # File lib/action_view/template/handlers/erb.rb, line 76
    def handles_encoding?
      true
    end

supports_streaming?() click to toggle source

    # File lib/action_view/template/handlers/erb.rb, line 72
    def supports_streaming?
      true
    end