Sha256: 0614a12f9a8ed88d70efe9d924b99a2e7194769bd38ada76d5e77a98d68d518f

Contents?: true

Size: 579 Bytes

Versions: 4

Compression:

Stored size: 579 Bytes

Contents

class Rag
  module Util
    class ERB < ::ERB
      def result(bind=nil, locals={})
        bind ||= TOPLEVEL_BINDING
        if locals.empty?
          original_result bind
        else
          result_with_locals bind, locals
        end
      end

    private
      def result_with_locals(bind, locals)
        @locals = locals
        evalstr = <<-EOF
    def run_erb
      #{locals.map{|k,v| %~#{k} = @locals[ #{Symbol===k ? ':' : ''}'#{k}' ]~}.join(';')}
      #{self.src}
      _erbout
    end
        EOF
        eval evalstr
        run_erb
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rag-1.3.0 lib/rag/util/erb.rb
rag-1.2.1 lib/rag/util/erb.rb
rag-1.2.0 lib/rag/util/erb.rb
rag-1.1.0 lib/rag/util/erb.rb