Sha256: a886525e88f02f1aeee6f06b0f71382991499f315c99a20f890c52607ca96658

Contents?: true

Size: 616 Bytes

Versions: 12

Compression:

Stored size: 616 Bytes

Contents

# frozen_string_literal: true

require "erb"

module Rubysmith
  module Renderers
    # Renders ERB templates as fully functional files.
    class ERB
      def initialize realm, scope: Renderers::Namespace.new(realm.project_class), client: ::ERB
        @realm = realm
        @scope = scope
        @client = client
      end

      def call content
        client.new(content, trim_mode: "<>", eoutvar: "@buffer").result binding
      end

      private

      attr_accessor :buffer
      attr_reader :realm, :scope, :client

      def namespace
        self.buffer = scope.call yield
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rubysmith-0.9.1 lib/rubysmith/renderers/erb.rb
rubysmith-0.9.0 lib/rubysmith/renderers/erb.rb
rubysmith-0.8.0 lib/rubysmith/renderers/erb.rb
rubysmith-0.7.0 lib/rubysmith/renderers/erb.rb
rubysmith-0.6.1 lib/rubysmith/renderers/erb.rb
rubysmith-0.6.0 lib/rubysmith/renderers/erb.rb
rubysmith-0.5.0 lib/rubysmith/renderers/erb.rb
rubysmith-0.4.0 lib/rubysmith/renderers/erb.rb
rubysmith-0.3.0 lib/rubysmith/renderers/erb.rb
rubysmith-0.2.0 lib/rubysmith/renderers/erb.rb
rubysmith-0.1.1 lib/rubysmith/renderers/erb.rb
rubysmith-0.1.0 lib/rubysmith/renderers/erb.rb