Dates with 5 digit years can not deserialized

Ouverte
#483 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
42/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
ruby
Domaine
tooling

Piste de recherche

Reproduisez l’échec avec l’extrait Ruby de l’issue, puis examinez lib/psych/scalar_scanner.rb autour de l’expression régulière de Date à la ligne 113. Confirmez comment une année à cinq chiffres est analysée et définissez l’achèvement comme le chargement réussi du DateTime sérialisé sans le captures error, tout en préservant la gestion des dates valides.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

require 'time'
require 'yaml'

date = DateTime.parse('22018-01-05')
serialized_date = YAML.dump(date)
YAML.load(serialized_date)
# => fails with NoMethodError: undefined method `captures' for nil:NilClass

This is because the regex for parsing a Date, in ScalarScanner, expects a 4 digit year.

The year is actually incorrect and should have been validated before being saved. It has made it in to our data.

Please close if you think this is too much of an edge case to be considered.

On the other hand 5 digit years are legit.

Langage dominant
Ruby
Étoiles
596
Forks
223
Merge moyen
8 h 38 min
PR mergées (30 j)
2

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de ruby/psych

Toutes les issues de ruby/psych

Issues similaires

Plus d'issues Ruby

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.