Sha256: 9491294ab3b9d5e4b46c52151d32d4ac7f9e1405c1ac6d524644d11ac09b3eec

Contents?: true

Size: 583 Bytes

Versions: 1

Compression:

Stored size: 583 Bytes

Contents

module Nanoc::Filter::ERB

  class Context

    def initialize(hash)
      hash.each_pair do |key, value|
        instance_variable_set('@' + key.to_s, value)
      end
    end

    def get_binding
      binding
    end

  end

  class ERBFilter < Nanoc::Filter

    identifiers :erb, :eruby

    def run(content)
      nanoc_require 'erb'

      # Create context
      assigns = { :page => @page, :pages => @pages, :config => @config, :site => @site }
      context = Context.new(assigns)

      # Get result
      ::ERB.new(content).result(context.get_binding)
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nanoc-2.0.4 lib/nanoc/filters/erb.rb