Sha256: 5a25a290aa0312649296d1a783bb47525a746d5b9a10cae8c644fc9440d6fcab

Contents?: true

Size: 1 KB

Versions: 90

Compression:

Stored size: 1 KB

Contents

require 'itamae-mitsurin'
require 'erb'
require 'tempfile'

module ItamaeMitsurin
  module Resource
    class Template < RemoteFile
      define_attribute :variables, type: Hash, default: {}

      def pre_action
        attributes.content = RenderContext.new(self).render_file(source_file)

        super
      end

      private

      def content_file
        nil
      end

      def source_file_dir
        "templates"
      end

      def source_file_exts
        [".erb", ""]
      end

      class RenderContext
        def initialize(resource)
          @resource = resource

          @resource.attributes.variables.each_pair do |key, value|
            instance_variable_set("@#{key}".to_sym, value)
          end
        end

        def render_file(src)
          template = ::File.read(src)
          ERB.new(template, nil, '-').tap do |erb|
            erb.filename = src
          end.result(binding)
        end

        def node
          @resource.recipe.runner.node
        end
      end
    end
  end
end

Version data entries

90 entries across 47 versions & 1 rubygems

Version Path
itamae-mitsurin-0.32 lib/itamae-mitsurin/resource/template.rb
itamae-mitsurin-0.32 test/test_itamae-mitsurin/resource/test_template.rb
itamae-mitsurin-0.31 test/test_itamae-mitsurin/resource/test_template.rb
itamae-mitsurin-0.31 lib/itamae-mitsurin/resource/template.rb
itamae-mitsurin-0.30 lib/itamae-mitsurin/resource/template.rb
itamae-mitsurin-0.30 test/test_itamae-mitsurin/resource/test_template.rb
itamae-mitsurin-0.29 test/test_itamae-mitsurin/resource/test_template.rb
itamae-mitsurin-0.29 lib/itamae-mitsurin/resource/template.rb
itamae-mitsurin-0.28 test/test_itamae-mitsurin/resource/test_template.rb
itamae-mitsurin-0.28 lib/itamae-mitsurin/resource/template.rb
itamae-mitsurin-0.27 test/test_itamae-mitsurin/resource/test_template.rb
itamae-mitsurin-0.27 lib/itamae-mitsurin/resource/template.rb
itamae-mitsurin-0.26 test/test_itamae-mitsurin/resource/test_template.rb
itamae-mitsurin-0.26 lib/itamae-mitsurin/resource/template.rb
itamae-mitsurin-0.24 test/test_itamae-mitsurin/resource/test_template.rb
itamae-mitsurin-0.24 lib/itamae-mitsurin/resource/template.rb
itamae-mitsurin-0.23 test/test_itamae-mitsurin/resource/test_template.rb
itamae-mitsurin-0.23 lib/itamae-mitsurin/resource/template.rb
itamae-mitsurin-0.22 test/test_itamae-mitsurin/resource/test_template.rb
itamae-mitsurin-0.22 lib/itamae-mitsurin/resource/template.rb