Class: Range

Inherits:
Object show all
Defined in:
lib/range.rb

Overview

Ajout d'une methode a la classe Range -- donc avec "monkey patch" -- pour permettre la creation d'une forme de Range a deux (2) dimensions.

Instance Method Summary collapse

Instance Method Details

#*(other) ⇒ Array<Fixnum,Fixnum>

Les elements du Range qui recoit ce message sont utilises comme premiers elements des paires creees a partir des elements du Range other. Il s'agit donc de produire le produit cartesien, d'ou l'utilisation surchargee de '*'.

Examples:

(1..3)*(2..3) = [[1,2], [1,3], [2,2], [2,3], [3,2], [3,3]]

Parameters:

  • other (Range)

    Autre range a utiliser pour les autres elements des paires

Returns:

  • (Array<Fixnum,Fixnum>)

    Une liste des paires provenant des deux Range (produit cartesien)



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/range.rb', line 22

def *( other )
  DBC.check_type other, Range

  paires = []
  each do |i|
    other.each do |j|
      paires << [i, j]
    end
  end

  paires
end