struct

Diceware::Wordlist

Inherits Struct < Value < Object

Une wordlist Diceware : un tableau ordonné de N mots, où N est une puissance de 6 (1296 = 6^4 ou 7776 = 6^5).

Les listes sont embarquées dans le binaire via les chaînes constantes ci-dessous (générées à la compilation par read_file — pattern hérité de flags).

Ne pas charger de wordlist depuis un fichier externe à l'exécution : c'est une décision de sécurité de la chaîne d'approvisionnement (cf. specs § « Ce que le shard ne fait pas »). Pour ajouter une langue, soumettre une PR sur aloli-crystal/diceware.

Constants

EFF_LONG_TEXT = {{ read_file("/tmp/tmp.oiHgac/src/src/diceware/../../data/eff_long.txt") }}
EMBEDDED = {:eff_long => Wordlist.new(:eff_long, :en, "EFF Large Wordlist (2016) — anglais, 7776 mots", parse_text(EFF_LONG_TEXT)), :fr_mbelivo_5d => Wordlist.new(:fr_mbelivo_5d, :fr, "mbelivo/diceware-wordlists-fr — français, 7776 mots", parse_text(FR_MBELIVO_5D_TEXT))} of Symbol => Wordlist
FR_MBELIVO_5D_TEXT = {{ read_file("/tmp/tmp.oiHgac/src/src/diceware/../../data/fr_mbelivo_5d.txt") }}

Constructors

default

Choisit une wordlist par défaut adaptée à la locale système. Lit $LANG ; tombe sur :eff_long (anglais) en l'absence de match.

Source
for(id : Symbol) : Wordlist

Renvoie la wordlist embarquée d'identifiant id. Lève si l'identifiant n'est pas connu.

Identifiants disponibles en v0.1 :

  • :eff_long (anglais, 7776, EFF Large 2016)
  • :fr_mbelivo_5d (français, 7776, mbelivo)
Source
new(id : Symbol, language : Symbol, description : String, words : Array(String))
Source

Class methods

identifiers

Liste les identifiants des wordlists embarquées.

Source
languages

Liste les codes langue représentés (peut contenir des doublons si plusieurs listes pour la même langue).

Source

Instance methods

description

Description courte affichée par diceware list.

Source
id

Identifiant de la liste (ex. :eff_long, :fr_mbelivo_5d).

Source
language

Code langue ISO 639-1 (:en, :fr, …) — utilisé pour l'auto-détection via $LANG.

Source
lookup(roll : Roll) : String

Mot correspondant à un tirage donné.

Source
secure_word

Tire un mot uniformément avec Random::Secure.

Source
size

Nombre de mots dans la liste (1296 ou 7776).

Source
words

Les mots eux-mêmes, indexés 0-based dans le même ordre que Roll#to_index.

Source