module ParaDice::Faces::Ranged

a module to be included into a ParaDice::Die or similar object.

Uses a Range object to provide a faces, and provides special count and
random_face options

Public Instance Methods

face_count() click to toggle source

@return [Fixnum] size of range

# File lib/para_dice/faces/ranged.rb, line 16
def face_count
  range.size
end
faces() click to toggle source

@note this can be an unexpectedly expensive action for large ranges,

please use carefully

@return [Array<Fixnum>] result of range.to_a

# File lib/para_dice/faces/ranged.rb, line 23
def faces
  @faces ||= range.to_a
end
random_face(random_face_rng = rng) click to toggle source

@param [nil,Random] random_face_rng defaults to self.rng @return [Fixnum] random element of range

# File lib/para_dice/faces/ranged.rb, line 29
def random_face(random_face_rng = rng)
  random_face_rng.rand(range.size) + range.first
end

Private Instance Methods

quit_if_no_range() click to toggle source
# File lib/para_dice/faces/ranged.rb, line 34
def quit_if_no_range
  raise ArgumentError.new('no :range entry found in initialization hash')
end