Class: Brpoplpush::RedisScript::Template

Inherits:
Object
  • Object
show all
Defined in:
lib/brpoplpush/redis_script/template.rb

Overview

Class Template provides LUA script partial template rendering

Author:

Instance Method Summary collapse

Constructor Details

#initialize(script_path) ⇒ Template



16
17
18
# File 'lib/brpoplpush/redis_script/template.rb', line 16

def initialize(script_path)
  @script_path = script_path
end

Instance Method Details

#include_partial(relative_path) ⇒ Object

helper method to include a lua partial within another lua script



35
36
37
38
39
40
# File 'lib/brpoplpush/redis_script/template.rb', line 35

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

#render(pathname) ⇒ String

Renders a Lua script and includes any partials in that file

all `<%= include_partial '' %>` replaced with the actual contents of the partial


28
29
30
31
# File 'lib/brpoplpush/redis_script/template.rb', line 28

def render(pathname)
  @partial_templates ||= {}
  ::ERB.new(File.read(pathname)).result(binding)
end