Allow for a single range or an array of ranges for the period

Also fix the "simulated indifferent access" for all needed cases.

Add a spec to test all this plus a basic test for the maintainers.
Lint/UnusedMethodArgument: Unused method argument - `period`. If it's necessary, use `_` or `_period` as an argument name to indicate that it won't be used. You can also write as `call(*)` if you want the method to accept any arguments but don't care about them.