Sha256: 0cef443d82f6eff63dad2712f7b7b9ee6fe45b7a4411d40c091a85f39defc366
Contents?: true
Size: 1.5 KB
Versions: 14
Compression:
Stored size: 1.5 KB
Contents
module Resque module Plugin extend self LintError = Class.new(RuntimeError) # Ensure that your plugin conforms to good hook naming conventions. # # Resque::Plugin.lint(MyResquePlugin) def lint(plugin) hooks = before_hooks(plugin) + around_hooks(plugin) + after_hooks(plugin) hooks.each do |hook| if hook =~ /perform$/ raise LintError, "#{plugin}.#{hook} is not namespaced" end end failure_hooks(plugin).each do |hook| if hook =~ /failure$/ raise LintError, "#{plugin}.#{hook} is not namespaced" end end end # Given an object, returns a list `before_perform` hook names. def before_hooks(job) job.methods.grep(/^before_perform/).sort end # Given an object, returns a list `around_perform` hook names. def around_hooks(job) job.methods.grep(/^around_perform/).sort end # Given an object, returns a list `after_perform` hook names. def after_hooks(job) job.methods.grep(/^after_perform/).sort end # Given an object, returns a list `on_failure` hook names. def failure_hooks(job) job.methods.grep(/^on_failure/).sort end # Given an object, returns a list `after_enqueue` hook names. def after_enqueue_hooks(job) job.methods.grep(/^after_enqueue/).sort end # Given an object, returns a list `before_enqueue` hook names. def before_enqueue_hooks(job) job.methods.grep(/^before_enqueue/).sort end end end
Version data entries
14 entries across 14 versions & 4 rubygems