-
Notifications
You must be signed in to change notification settings - Fork 23
Open
Description
I'm trying to override rand in Spicy::Seek to allow for the flexibility of making the function deterministic based on an incoming seed. Before submitting a PR, I wanted to propose a couple of ways to implement this.
- The easiest is to allow the options hash to be forwarded to
rand. Then I can extend the classes and overriderandwith my own custom implementation:
def seek(opts = {}, &found)
...
- index = rand(rand_min, rand_max)
+ index = rand(rand_min, rand_max, opts)
...
end
- def rand(low, high)
+ def rand(low, high, opts = {})
range = high - low + 1
low + SecureRandom.random_number(range)
end- Allow passing a lambda as
:randoption:
def seek(opts = {}, &found)
...
- index = rand(rand_min, rand_max)
+ index = opts[:rand] ? opts[:rand].call(rand_min, rand_max) : rand(rand_min, rand_max)- Any suggestions how I can make this work without otherwise.
Let's discuss below, and I can submit a PR with the preferred implementation.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels