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.
|
il y a 1 jour 21 heures
il y a 6 jours 6 heures
il y a 1 semaine 4 jours
il y a 1 semaine 4 jours
il y a 1 semaine 5 jours
il y a 2 semaines 4 jours
il y a 2 semaines 5 jours
il y a 2 semaines 5 jours
il y a 2 semaines 6 jours
il y a 3 semaines 1 jour