Paris on Rails 2008

Ouverture de session

Commentaires récents

Syndication
Flux XML

[Résolu] 'bug' dans attachment_fu

[Résolu] 'bug' dans attachment_fu
Posté par n.e.x le Dimanche, 17 Août, 2008 - 11:42am. Débuter avec Rails

Bonjour à tous,

Je suis face à un problèm dont l'étrangeté m'inspire le terme "bug".
Je vais donc essayer de vous le présenter le plus clairement possible pour que vous puissiez me donner votre avis.

Dans mon application Rails (ubuntu7.10 + rails2.0.2), je souhaite mettre en place l'attachement d'images.
Pour celà j'ai installé le plugin attachment_fu couplé à ImageScience (lui même utilisant FreeImage), et j'essaye maintenant de le faire fonctionner.

Au moment de la sauvegarde de l'objet lié à l'image, j'ai la levé d'exception suivante:

Quote:
invalid geometry format

ArgumentError (invalid geometry format):
/vendor/plugins/attachment_fu/lib/geometry.rb:38:in `from_s'
/vendor/plugins/attachment_fu/lib/geometry.rb:92:in `/'
/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb:54:in `resize_image'
[...]

Le fichier geometry contient:
Quote:
class Geometry
[...]
  RE = /\A(\d*)(?:x(\d+))?([-+]\d+)?([-+]\d+)?([%!@]?)\Z/

 def self.from_s(str)
    raise(ArgumentError, "no geometry string specified") unless str
    if m = RE.match(str)
      new(m[1].to_i, m[2].to_i, m[3].to_i, m[4].to_i, RFLAGS[m[5]])
    else
      raise ArgumentError, "invalid geometry format"
    end
  end
[...]
J'y ai ajouté le code suivant, au début de from_s, afin d'observer ce qu'il s'y passe
Quote:
puts " > Geometry.from_s(#{str})"
puts " > RE:#{RE}"
puts RE.match(str)
J'obtiens donc dans la console du serveur
Quote:
> Geometry.from_s(50×50>)
> RE:(?-mix:\A(\d*)(?:x(\d+))?([-+]\d+)?([-+]\d+)?([%!@]?)\Z)
nil
Le problème est donc que match retourne nil, ce qui lève l'exception.
Afin de comprendre pourquoi, je lance une console et fait le teste suivant
Quote:
>> RE = /\A(\d*)(?:x(\d+))?([-+]\d+)?([-+]\d+)?([%!@]?)\Z/
=> /\A(\d*)(?:x(\d+))?([-+]\d+)?([-+]\d+)?([%!@]?)\Z/
>> str = '50x50>'
=> "50x50>"
>> RE.match(str)
=> #<MatchData:0xb7aefb20>

C'est à ce moment précis, je ne comprends plus rien et que je songe au bug, car deux codes identiques (ou du moins, qui me le paraissent), ne donnent pas les mêmes résultats dans une console et dans WEBrick.



[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | sujet précédent | sujet suivant | envoyer par email ]

Options d'affichage des commentaires
Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder" pour activer vos changements.

Sujet: 
Il manque les quotes autour
Auteur: 
lamyseba
Date: 
Dim, 17/08/2008 - 13:20

Il manque les quotes autour de 50x50> dans Geometry.from_s(50x50>).
Invalid Geometry Format signifie que la chaine de caractère que tu as utilisée pour définir la taille de redimensionnement de l'image et/ou celle des vignettes n'est pas interprétable par attachment_fu. Donc c'est la syntaxe de la chaine en question qu'il faut vérifier.
1ère étape: vérifie que tu n'as pas oublié les quotes


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
En m'aguillant sur un pb
Auteur: 
n.e.x
Date: 
Dim, 17/08/2008 - 14:28

En m'aguillant sur un pb venant de la chaine source, j'ai trouvé l'erreur.
Celle-ci ne vient pas des quote, simple ou double, le résultat était le même, mais du signe multiplié.
Pour une raison étrange, il semble que je n'utilisais pas la lettre 'x', mais un caractère proche graphiquement '×'. Le plus étrange est que celui-ci n'existe pas sur mon clavier, ce n'est ni une étoile '*', ni la lettre x en majuscule 'X'. Il doit venir d'un copier-coller fait sur internet.
Merci en tout cas.


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Nouveaux liens

Sondage
Lorsque je développe avec Ruby on Rails c'est principalement sous:
Linux
37%
Mac OS X
30%
Windows
32%
(Free|Open|Net) BSD
1%
Autre...
1%
Nombre de votes: 374

Qui est en ligne
Il y a actuellement 1 utilisateur et 62 invités en ligne.

railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails
[ Hébergement et ressources techniques gracieusement fournis par la SSLL Nuxos Group ]