Sha256: 3af1adccefdaef03eaa24ef4f4fdd275e747b10074f6c417eef226eac9c54e7f

Contents?: true

Size: 1.12 KB

Versions: 5

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

module SidekiqUniqueJobs
  # Interface to dealing with .lua files
  #
  # @author Mikael Henriksson <mikael@mhenrixon.com>
  module Script
    #
    # Class Template provides LUA script partial template rendering
    #
    # @author Mikael Henriksson <mikael@mhenrixon.com>
    #
    class Template
      def initialize(script_path)
        @script_path = script_path
      end

      #
      # Renders a Lua script and includes any partials in that file
      #  all `<%= include_partial '' %>` replaced with the actual contents of the partial
      #
      # @param [Pathname] pathname the path to the
      #
      # @return [String] the rendered Luascript
      #
      def render(pathname)
        @partial_templates ||= {}
        ::ERB.new(File.read(pathname)).result(binding)
      end

      # helper method to include a lua partial within another lua script
      #
      def include_partial(relative_path)
        return if @partial_templates.key?(relative_path)

        @partial_templates[relative_path] = nil
        render(Pathname.new("#{@script_path}/#{relative_path}"))
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
sidekiq-unique-jobs-8.0.10 lib/sidekiq_unique_jobs/script/template.rb
sidekiq-unique-jobs-8.0.9 lib/sidekiq_unique_jobs/script/template.rb
sidekiq-unique-jobs-8.0.8 lib/sidekiq_unique_jobs/script/template.rb
sidekiq-unique-jobs-8.0.7 lib/sidekiq_unique_jobs/script/template.rb
sidekiq-unique-jobs-8.0.6 lib/sidekiq_unique_jobs/script/template.rb