Module: ParaDice::Faces::Ranged

Included in:
NumberedDie
Defined in:
lib/para_dice/faces/ranged.rb

Overview

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#rangeObject

return [Range]



13
# File 'lib/para_dice/faces/ranged.rb', line 13

attribute :range, Range, default: :quit_if_no_range

Instance Method Details

#face_countFixnum

Returns size of range.

Returns:

  • (Fixnum)

    size of range



16
17
18
# File 'lib/para_dice/faces/ranged.rb', line 16

def face_count
  range.size
end

#facesArray<Fixnum>

Note:

this can be an unexpectedly expensive action for large ranges, please use carefully

Returns result of range.to_a.

Returns:

  • (Array<Fixnum>)

    result of range.to_a



23
24
25
# File 'lib/para_dice/faces/ranged.rb', line 23

def faces
  @faces ||= range.to_a
end

#random_face(random_face_rng = rng) ⇒ Fixnum

Returns random element of range.

Parameters:

  • random_face_rng (nil, Random) (defaults to: rng)

    defaults to self.rng

Returns:

  • (Fixnum)

    random element of range



29
30
31
# 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