class Redis::Scripting::Module
Attributes
redis[RW]
source_dir[R]
Public Class Methods
new(redis, source_dir, opts = {})
click to toggle source
# File lib/redis/scripting/module.rb, line 11 def initialize(redis, source_dir, opts = {}) @redis = redis @source_dir = source_dir @scripts = {} load_scripts() end
Public Instance Methods
inspect()
click to toggle source
# File lib/redis/scripting/module.rb, line 25 def inspect %{<%s: 0x%x @source_dir="%s" @redis=%s>} % [self.class, object_id, source_dir, redis] end
run(script_name, keys, argv, redis = self.redis)
click to toggle source
# File lib/redis/scripting/module.rb, line 18 def run(script_name, keys, argv, redis = self.redis) script = @scripts[script_name.to_s] raise(ArgumentError, "unknown script: #{script_name}") unless script script.run(redis, keys, argv) end
Private Instance Methods
load_scripts()
click to toggle source
# File lib/redis/scripting/module.rb, line 31 def load_scripts headers = Dir.glob(File.join(source_dir, "includes", "*.lua")).map { |include_name| File.read(include_name) } if !headers.empty? header_source = headers.join("\n\n") + "\n\n" end Dir.glob(File.join(source_dir, "*.lua")).each do |filename| script = Redis::Scripting::Script.new(filename, script_header: header_source) @scripts[script.name] = script end end