Sha256: 6db15668c1f7159e044a302e7372fe3b53ae61b0b38614db8e723a4936e76e0e

Contents?: true

Size: 933 Bytes

Versions: 1

Compression:

Stored size: 933 Bytes

Contents

#!/usr/bin/ruby

require "debride"
require "erb"
require "erubis"

class Debride
  module Erb
    VERSION = "1.0.1"
  end

  ##
  # Process erb and parse the result. Returns the sexp of the parsed
  # ruby.

  def process_erb file
    erb = File.read file

    ruby = Erubis.new(erb).src

    begin
      RubyParser.new.process ruby, file
    rescue => e
      warn ruby if option[:verbose]
      raise e
    end
  end

  class Erubis < ::Erubis::Eruby # :nodoc:
    BLOCK_EXPR = /\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/

    def add_expr_literal(src, code)
      if code =~ BLOCK_EXPR
        src << '@output_buffer.append= ' << code
      else
        src << '@output_buffer.append=(' << code << ');'
      end
    end

    def add_expr_escaped(src, code)
      if code =~ BLOCK_EXPR
        src << "@output_buffer.safe_append= " << code
      else
        src << "@output_buffer.safe_append=(" << code << ");"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
debride-erb-1.0.1 lib/debride_erb.rb