Sha256: 92cfe5bce9512a2d57e9988a492ff95635ba7ab5805c454fbe239fafc2d8b4ff
Contents?: true
Size: 517 Bytes
Versions: 1
Compression:
Stored size: 517 Bytes
Contents
require "active_sample/version" require "active_record" module ActiveSample class NegativeSampleError < ArgumentError end def sample(n = 1) if n < 0 raise NegativeSampleError.new("negative sample number".freeze) end max_id = maximum(:id) return nil if max_id == nil if n == 1 while !(found = find_by(id: 1 + rand(max_id))); end found elsif n == 0 none else where(id: ids.sample(n)) end end end ActiveRecord::Base.send :extend, ActiveSample
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
active_sample-1.0.1 | lib/active_sample.rb |