Class: Seq::Random
Overview
A Random seq chooses items from the list randomly.
Constant Summary
Constants inherited from Seq
Instance Method Summary collapse
-
#initialize(list = [], items = Float::INFINITY, default = nil) ⇒ Random
constructor
Creates a new Random seq instance.
-
#next ⇒ Object
Until ended it returns a randomly selected item from the list, when ended it returns the default value.
Methods inherited from Seq
#each, #ended?, #entries, #inc, #infinite?, #method_missing, #reset, #to_a
Constructor Details
#initialize(list = [], items = Float::INFINITY, default = nil) ⇒ Random
Creates a new Random seq instance.
19 20 21 |
# File 'lib/seq/random.rb', line 19 def initialize(list=[], items=Float::INFINITY, default=nil) super(list, items, 0, default) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Seq
Instance Method Details
#next ⇒ Object
Returns Until ended it returns a randomly selected item from the list, when ended it returns the default value.
25 26 27 28 29 30 31 |
# File 'lib/seq/random.rb', line 25 def next if ended? @default else @list[rand(@list.size).to_i].tap { inc } end end |