Module: Wurk::API::Fast::SortedSetExt

Included in:
SortedSet
Defined in:
lib/wurk/api/fast.rb

Overview

Extension to Wurk::SortedSet / JobSet. The base ‘scan(match, count)` already yields `(value, score)` pairs via ZSCAN — Pro promotes the surface to yield `JobRecord` directly so callers can `entry.delete` / `entry.retry` without re-parsing JSON.

The new behavior is enabled by *block arity*: a 1-arg block (or block.lambda? + a 1-param signature) receives ‘JobRecord`; legacy 2-arg blocks (`|value, score|`) keep the raw shape. This preserves the existing two-arg contract used by JobSet#find_job internally.

Instance Method Summary collapse

Instance Method Details

#scan(match, count = 100, &block) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
# File 'lib/wurk/api/fast.rb', line 61

def scan(match, count = 100, &block)
  return enum_for(:scan, match, count) unless block

  if block.arity == 1
    super do |value, score|
      block.call(Wurk::SortedEntry.new(self, score, value))
    end
  else
    super
  end
end