[Rails] Blabla@rails

Blabla@rails [Rails] - Ruby/Rails - Programmation

Marsh Posté le 07-03-2007 à 11:10:10    

Ruby on Rails [aka. RoR] est un framework Ruby.

Et les autres framework Ruby:


Les docs en ligne:


Les screencasts


Les cheatsheets

  • Ils sont tous linkés ICI


Les newsgroups


Les bouquins:


Pour le déploiement de Rails, on utilise Capistrano


Server Mongrel, utilisé derrière un load-balancer/serveur de données statiques.
Globalisation Voir ici

 

Les éditeurs recommandés:

  • SciTE est en bundle avec Ruby. Pas de gestionnaire de projet correct. Par contre vous pouvez associer vos .rb/.rhtml avec, car il est très léger et bien foutu pour éditer un ou deux fichiers.
  • Radrails est mort. Vive Aptana.
  • Textmate est indispensable si vous voulez créer en harmonie avec le coté hype qui sommeil en vous. Par contre, Steve doit probablement faire pression pour que le logiciel ne soit pas porté sur PC, Mac only. (Rails sera inclus dans Panther)
  • Vim est toujours dans la place. Pour les masos?
  • jEdit Pour ceux qui ont une jvm qui traine. Le meilleur d'après certains, mais seulement quand vous aurez terminé d'installer les plug-ins..
  • Arachno À tester. Commercial payant, avec une version trial.
  • NetBeans est dans la place. More here: http://ruby.netbeans.org/
  • Et le dernier arrivé, c'est IntelliJ IDEA


Message édité par seabee le 07-11-2007 à 11:49:33
Reply

Marsh Posté le 07-03-2007 à 11:10:10   

Reply

Marsh Posté le 07-03-2007 à 19:22:41    

À ajouter:


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-03-2007 à 21:48:52    

Pour les débutants qui voudraient un bouquin en français :

Reply

Marsh Posté le 07-03-2007 à 23:53:37    

Très bonne idée ce topic et surtout les liens qui me seront très utile :jap:  
 
J'en profite pour une petite question, je doute que ça vaille le coup d'un topac: quid des IDE? Y'en a-t-il des corrects actuellement? J'ai testé un peu Mondrian, mais il crash assez régulièrement. Y'a plus stable ou vaut-il mieux utiliser un éditeur de texte plus ou moins bateau plus une console à côté?

Reply

Marsh Posté le 08-03-2007 à 00:33:09    

J'utilise le plugin Eclipse, sinon apparemment y a un plugin NetBeans qui vient de sortir et qui est assez prometteur (voire déjà très très sympa, j'ai pas encore testé) :
http://blogs.sun.com/tor/resource/ruby-editing.png (screenshot)
http://blogs.sun.com/roumen/entry/ [...] y_on_rails (screencasts, pas regardés encore).
 
Tu as aussi Arachno, mais c'est payant (y a un trial). Pas testé non plus.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 08-03-2007 à 00:40:21    

Ah oui, pas mal Arachno, et vu son tarif, ça peut être une bonne option. Au seul inconvénient que j'ai l'impression qu'on paie une licence par plateforme utilisée non? (D'ailleurs la version nunux est un peu périmée :s)
 
NetBeans, je l'ai essayé uniquement pour du Java et il faisait ramer ma bécane au boulot :D Faudra que je le teste chez moi, voir si c'est plus supportable.
 
A propos du plugin Eclipse, il a l'air pas mal du tout... Ca me donnera l'occasion de tester autre chose.
 
Merci :)

Reply

Marsh Posté le 08-03-2007 à 01:03:16    

Le plugin Eclipse n'est pas encore ultra-évolué par contre (c'est assez jeune il me semble), mais c'est un bon début. Je pense qu'ils peuvent faire beaucoup mieux à terme.
 
D'ailleurs y a aussi le plugin pour Rails (RadRails, toujours sous Eclipse) qui est vraiment très très bien foutu/pratique, bref je recommande.


Message édité par sielfried le 08-03-2007 à 01:04:13

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 08-03-2007 à 01:21:44    

Pour ce qui est de l'évolution, je n'ai pas besoin non plus d'un IDE killer, je débute franchement donc, si c'est pour n'utiliser que 2% du bouzin, ça sert à rien non plus. Avec un peu de bol j'évoluerais avec ce plugin [:dawa]

Reply

Marsh Posté le 08-03-2007 à 08:52:25    

P'tain quand je vois des trucs genre les modules ou les mixins, j'me demande qu'est-ce que je fous avec des langages arriérés [:johneh]

Reply

Marsh Posté le 08-03-2007 à 09:19:15    

Perso j'utilise PSPad pour coder en RoR.

Reply

Marsh Posté le 08-03-2007 à 09:19:15   

Reply

Marsh Posté le 08-03-2007 à 09:26:30    

LePhasme a écrit :

Perso j'utilise PSPad pour coder en RoR.


Oui. Mais la gestion des codes-highlighters est complètement buggée. Dommage, le reste est bien et va dans le bon sens.

Reply

Marsh Posté le 08-03-2007 à 10:51:50    

D'après ce que je lis sur Ongoing, Netbeans 6 risque d'être franchement poutrant pour faire du Ruby.
 
Mais toujours aussi lent :whistle:  

IrmatDen a écrit :

Pour ce qui est de l'évolution, je n'ai pas besoin non plus d'un IDE killer, je débute franchement donc, si c'est pour n'utiliser que 2% du bouzin, ça sert à rien non plus. Avec un peu de bol j'évoluerais avec ce plugin [:dawa]


Pour commencer, je conseillerais de faire ça à la roots: SciTE ou JEdit, commences par apprendre le langage et ensuite tu verras pour les accélérateurs :D

FlorentG a écrit :

P'tain quand je vois des trucs genre les modules ou les mixins, j'me demande qu'est-ce que je fous avec des langages arriérés [:johneh]


C'est ce que je te dis depuis des mois, mais tu veux pas me croire [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-03-2007 à 11:22:33    

FlorentG a écrit :

P'tain quand je vois des trucs genre les modules ou les mixins, j'me demande qu'est-ce que je fous avec des langages arriérés [:johneh]

module MajorScales
  def majorNum
    @numNotes = 7 if @numNotes.nil?
    @numNotes # Return 7
  end
end
 
 
module PentatonicScales
  def pentaNum
    @numNotes = 5 if @numNotes.nil?
    @numNotes # Return 5?
  end
end
 
 
class ScaleDemo
  include MajorScales
  include PentatonicScales
  def initialize
    puts majorNum # Should be 7
    puts pentaNum # Should be 5
  end
end

produces:  
7
7

Citation :

The two bits of code that we mix in both use an instance variable named @numNotes. Unfortunately, the result is probably not what the author intended.  
 
For the most part, mixin modules don't try to carry their own instance data around---they use accessors to retrieve data from the client object. But if you need to create a mixin that has to have its own state, ensure that the instance variables have unique names to distinguish them from any other mixins in the system (perhaps by using the module's name as part of the variable name).


 
Pas si top que ça finalement les mixins  [:joce]  
 
 
Sinon faudrait que je teste Rail un jour l'intro citée plus haut m'a mis l'eau à la bouche [:pinzo]

Reply

Marsh Posté le 08-03-2007 à 12:23:43    

pascal_ a écrit :

module MajorScales
  def majorNum
    @numNotes = 7 if @numNotes.nil?
    @numNotes # Return 7
  end
end
 
 
module PentatonicScales
  def pentaNum
    @numNotes = 5 if @numNotes.nil?
    @numNotes # Return 5?
  end
end
 
 
class ScaleDemo
  include MajorScales
  include PentatonicScales
  def initialize
    puts majorNum # Should be 7
    puts pentaNum # Should be 5
  end
end

produces:  
7
7

Citation :

The two bits of code that we mix in both use an instance variable named @numNotes. Unfortunately, the result is probably not what the author intended.  
 
For the most part, mixin modules don't try to carry their own instance data around---they use accessors to retrieve data from the client object. But if you need to create a mixin that has to have its own state, ensure that the instance variables have unique names to distinguish them from any other mixins in the system (perhaps by using the module's name as part of the variable name).


 
Pas si top que ça finalement les mixins  [:joce]  
 
 
Sinon faudrait que je teste Rail un jour l'intro citée plus haut m'a mis l'eau à la bouche [:pinzo]


1. Comme noté, il faut éviter de mettre des données dans les mixins, ils sont là pour jouer le rôle d'interfaces et pour ajouter des comportements e.g. Enumerable, il suffit d'implémenter #each dans son objet et de mixer Enumerable pour avoir toutes ces méthodes dispos, sauf #min, #max et #sort qui nécessitent également d'avoir implémenté <=>. Si ça c'est pas de la puissance... :o
2. et dans tous les cas, l'analyse du code permet de comprendre pourquoi ça se passe comme ça:
 

Code :
  1. class ScaleDemo


on ouvre notre classe

Code :
  1. include MajorScales


on mixe "MajorScales" dans "ScaleDemo", ScaleDemo devient donc

Code :
  1. # Current ScaleDemo
  2. class ScaleDemo
  3.  def majorNum
  4.    @numNotes = 7 if @numNotes.nil?
  5.    @numNotes # Return 7
  6.  end
  7. end


Code :
  1. include PentatonicScales


on mixe "PentatonicScales", après cette instruction ScaleDemo devient

Code :
  1. # Current ScaleDemo
  2. class ScaleDemo
  3.  def majorNum
  4.    @numNotes = 7 if @numNotes.nil?
  5.    @numNotes # Return 7
  6.  end  
  7.  def pentaNum
  8.    @numNotes = 5 if @numNotes.nil?
  9.    @numNotes # Return 5?
  10.  end
  11. end


L'initialisation de scaleDemo se termine, puis on crée un objet scale

Code :
  1. scale = ScaleDemo.new


Que se passe-t-il à l'exécution? (=> indique qu'on rentre dans une nouvelle scope/méthode, avec la méthode indiquée, #=> indique la conséquence d'une exécution), ## sert à indiquer le contenu de certaines variables intéressantes, ~ sert à indiquer ce qui s'affiche à l'écran

Code :
  1. ## @numNotes = nil
  2. puts majorNum
  3. => self#majorNum
  4.    ## @numNotes = nil
  5.    @numNotes = 7 if @numNotes.nil? #=> @numNodes = 7
  6.    @numNotes
  7. ~ 7
  8. ## @numNotes = 7
  9. puts pentaNum
  10. => self#pentaNum
  11.    ## @numNotes = 7
  12.    @numNotes = 5 if @numNotes.nil? #=> rien puisque @numNotes.nil? == False
  13.    @numNotes
  14. ~ 7


Il est indéniable que Ruby ait des "quirks", mais ça c'est surtout un problème de compréhension des mixins :o


Message édité par masklinn le 08-03-2007 à 12:25:03

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-03-2007 à 12:38:38    

masklinn a écrit :

Pour commencer, je conseillerais de faire ça à la roots: SciTE ou JEdit, commences par apprendre le langage et ensuite tu verras pour les accélérateurs :D


Je l'attendais un peu de ta part celle-là ;) Mais c'est vrai que du moment que c'est stable, qu'il a la coloration syntaxique et peut ouvrir plusieurs fichiers à la fois, ça me suffira pour l'instant. Je verrais quand ça me gonflera :D

Reply

Marsh Posté le 08-03-2007 à 17:43:08    

Je viens de tomber sur un fil reddit qui invite les gens à dire pourquoi ils haïssent Ruby. Et en lisant ce fil, je suis tombé sur une série de commentaires que j'ai du mal à percuter: http://programming.reddit.com/info [...] nts/c18myt
Les commentaires en question sont celui de fry (le premier) et celui de rictic, en bas de la page.
 
Les codes qu'ils donnent ne compilent absolument pas puisqu'ils font +1 (pour fry) ou *3 (pour rictic) sur nil (le retour donc de print ou puts); sans compter le "Surprise!" sans ';' dans le code de rictic.
 
Je me demande alors si leur critiques sont fondées?

Reply

Marsh Posté le 08-03-2007 à 18:06:06    

Drapal :)

Reply

Marsh Posté le 08-03-2007 à 18:10:02    

IrmatDen a écrit :

Je viens de tomber sur un fil reddit qui invite les gens à dire pourquoi ils haïssent Ruby.


Va faloir que tu apprennes à lire l'anglais, le fil demande aux gens ce qu'ils détestent dans Ruby pas pourquoi ils détestent Ruby, et accessoirement il faut avoir le contexte: il fait partie d'une longue série de posts demandant pourquoi les gens utilisent/n'utilisent pas tel ou tel langage, et ce que les gens haïssent dans tel ou tel langage.
 

IrmatDen a écrit :

Les codes qu'ils donnent ne compilent absolument pas puisqu'ils font +1 (pour fry) ou *3 (pour rictic) sur nil (le retour donc de print ou puts); sans compter le "Surprise!" sans ';' dans le code de rictic.


1. fry: Le premier bloc qu'il donne est considéré comme valide et renvoie n'importe quoi, le second (qui semble strictement identique à une différence triviale près) génère une erreur:

Code :
  1. 3.times{1;print (1) + 1}


est considéré comme valide et s'exécute sans erreur ni warning (il imprime "222" btw)

Code :
  1. 3.times{print (1) + 1}


est considéré comme invalide et génère un warning au parsing et une erreur à la compilation (il imprime "1" puis balance une NoMethodError)
 
Sa critique me semble parfaitement valide, pour quelle raison l'un est-il accepté alors que l'autre est rejeté? Cette différence de parsing me semble, en étant gentil, totalement incohérent.
 
2. rictic: Effectivement son code ne fonctionne pas (celui avec Suprise), mais si tu ajoutes le ";" qu'il a probablement oublié sans faire exprès tu te retrouves avec le comportement suivant:
 

Code :
  1. [2,3,5,7,11].each {|prime| puts (prime + 2) * 3 }


génère un warning au parsing, imprime "4" puis balance une NoMethodError

Code :
  1. [2,3,5,7,11].each {|prime| "Surprise!"; puts (prime + 2) * 3 }


ne génère aucun warning, ne balance aucune exception, imprime  

12
15
21
27
39


C'est le même problème qu'au dessus, mais là encore la critique me semble parfaitement valide


Message édité par masklinn le 08-03-2007 à 19:47:45

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-03-2007 à 18:28:21    

Foutu interprété... J'ai pas testé séparément... :sweat:  
J'ai encore perdu une occasion de me taire :/

Reply

Marsh Posté le 08-03-2007 à 18:54:49    

IrmatDen a écrit :

Foutu interprété... J'ai pas testé séparément... :sweat:


 :D  
 
Ca t'apprendra :D


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-03-2007 à 19:06:17    

Merci d'avoir pris le temps d'expliquer quand même au fait ;)

Reply

Marsh Posté le 08-03-2007 à 19:48:18    

IrmatDen a écrit :

Merci d'avoir pris le temps d'expliquer quand même au fait ;)


Ya pas de quoi, je suis aussi là pour ça :o
 
(aussi parce que je suis tout d'abord là pour recevoir vos sous. Envoyez des dons!)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 09-03-2007 à 12:10:54    

juste un petit link a propos de vim pour les barbus:
http://devblog.famundo.com/article [...] ed-eclipse

 

Je suis de parti pris car j'adore vim mais ça vaut vraiment le coup d'essayer.


Message édité par anapajari le 09-03-2007 à 12:11:06
Reply

Marsh Posté le 11-03-2007 à 17:33:37    

Salut à tous. Ce topic et tous ses liens m'a donné envie de voir ce que donne RoR. Je vais commencer par bouqiner un peu.

Reply

Marsh Posté le 13-03-2007 à 10:24:33    

Bon, je vais parles ici des petits trucs qui m'intriguent pendant que je lis "Agile Web developpement with Rails". ça animera un peu ce topic, même si le niveau risque de ne pas être très haut pour l'instant, si je suis tout seul à l'animer. Bref, ma question du jour : dans un template rhtml, il existe un helper qui permet de convertir les caractères spéciaux en entitées (&amp; , &lt; , etc.). J'ai donc fait cet essai tout bête :  

Code :
  1. <%= h("<Hé hè hê, youpl@ boum !>" ) %>


Et bien seul l'arobase et les '>', '<' sont convertis. Mes accents sont toujours là. Déception. On peut changer ce comportement ?

Reply

Marsh Posté le 13-03-2007 à 10:30:56    

El_gringo a écrit :

il existe un helper qui permet de convertir les caractères spéciaux en entitées (&amp; , &lt; , etc.).


Non, h() a pour but d'échapper les caractères HTML générant des risques (il échappe aussi les quotes), pas de tout convertir

El_gringo a écrit :

Et bien seul l'arobase et les '>', '<' sont convertis.


Ce qui est parfaitement normal et logique, le reste ne présente strictement aucun danger

El_gringo a écrit :

Mes accents sont toujours là.


En quoi est-ce un problème?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 13-03-2007 à 11:35:04    

masklinn a écrit :

Non, h() a pour but d'échapper les caractères HTML générant des risques (il échappe aussi les quotes), pas de tout convertir
 
Ce qui est parfaitement normal et logique, le reste ne présente strictement aucun danger


 
Cool, une réponse !
 
En quoi est ce un problème... Tient, c'est une bonne question ça ! En fait c'est plutôt que c'est pas le résultat que j'attendais. Sinon, transformer les caractères accentués en entités, ça permet de les afficher quel que soit le charset de la page, mais bon, c'est pas d'un intérêt monumental non plus, puisqu'on est censé avoir le bon charset qui va bien, de toute façon. Bref, c'était plus une surprise qu'un problème. Merci de ta réponse, qui m'a fait comprendre que ce comportement est en fait parfaitement logique.
A bientôt ! (pour une question un peu moins simple peut être)

Reply

Marsh Posté le 13-03-2007 à 11:51:06    

El_gringo a écrit :

on est censé avoir le bon charset qui va bien, de toute façon.


Exactement, donc pas de raison cohérente d'utiliser des entities pour ce genre de caractères si on code correctement ;)
 
(surtout que ça limite méchamment, ou ça complexifie violement le code d'échappement comme tu préfères, parce que la transformations de caractères Han en entités HTML ça doit être bien marrant, sauf pour la personne qui doit l'implémenter... et encore je ne sais même pas si c'est possible en fait)
(quoi que si, ça doit passer avec les entités numériques)
(peut-être)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 13-03-2007 à 12:57:05    

Je sais pas. Je l'avais fait avec des entités numériques pour des caractères hébreux. Je sais plus trop pourquoi, je crois que j'avais pas le choix. Par contre en hébreux il n'y a qu'une trentaine de signes !
 
Tiens, pendant que j'y suis. Une autre question que je m'étais posé :  dans la présentation d'intro à Rails, l'auteur mentionne les helpers suivants :  

Code :
  1. <%= form_tag :action => 'sauver', :id => @livre %>
  2.   <%= text_field 'livre', 'titre' %>
  3.   <%= text_field 'livre', 'auteur' %>
  4.   <%= submit_tag "Sauver"%>
  5. <%= end_form_tag %>


Qui déboucherait sur le code généré suivant :  

Code :
  1. <form action="/livre/sauver/42" method="post">
  2.   <input name="livre[titre]" value=”1984”>
  3.   <input name="livre[auteur]" value=”George Orwell”>
  4.   <input type="submit" value="Sauver">
  5. </form>


J'ai pas le livre "Agile..." sous la main là. Mais je me demandais : y a pas moyen de faire qu'ERb génère plutôt du xhtml ?

Reply

Marsh Posté le 13-03-2007 à 13:09:13    

En l'occurence ça sort du XHTML par défaut :o
(pas que ça ait le moindre intérêt, mais bon)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 13-03-2007 à 13:14:23    

Donc par défaut ça sortirait pas comme dans la présentation du gars ?
Ben, sortir du XHTML ça permet d'être cohérent. Moi qui n'écrit que du XHTML par exemple (le HTML je connais pas), ça m'évite d'avoir en sortie un code tout brouillon qui mélange tout les styles !


Message édité par El_gringo le 13-03-2007 à 13:29:01
Reply

Marsh Posté le 13-03-2007 à 22:34:04    

drapal :)
et un petit lien qui manques dans la liste pour ruby : http://ruby-doc.org/
 
edit : et aussi ce forum sur lequel on trouve pas mal d'infos : http://www.railsforum.com/


Message édité par Kid_Paddle le 13-03-2007 à 22:36:22
Reply

Marsh Posté le 14-03-2007 à 17:50:30    

J'avais pas vu, j'ai vu, je reste

Reply

Marsh Posté le 20-03-2007 à 13:20:13    

Bon, je continue ma petit lectura tranquile de "Agile Web Development with Rails". Vraiment sympa. Et c'est rare que je qualifie ce genre de livre de "sympa". Il est clair, exaustif (je pense) et même marrant de temps en temps. Bref, c'est pas pour ça que je poste. Je viens d'aborder le chapitre parlant des sessions, il ce que j'ai lu m'a fait bondir : l'auteur nous annonce comme une fleur, que dans Rails, les sessions sont maintenues par des cookies et que cela explique que les appli Rails nécessite l'activation des cookies. C'est grave quand même, on ne peut pas demander l'activation obligatoire des cookies. L'url rewriting ça existe depuis longtemps et c'est utile quand même !
Y a quelque chose que je n'ai pas compris ?

Reply

Marsh Posté le 20-03-2007 à 13:25:57    

Il n'y a aucun rapport entre les sessions et l'url rewriting, et les sessions via l'url (à la jsessionid) c'est moisi.

 

Rien de vraiment anormal, donc, pour qu'une appli rails fonctionne sans cookies il me semble qu'il "suffit" de ne rien stocker en session (ça limite, mais ça suffit pour un fonctionnement basique) [:spamafote]

Message cité 1 fois
Message édité par masklinn le 20-03-2007 à 13:26:14

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 20-03-2007 à 13:25:58    

@El_gringo : J'ai pas lu ça, de plus, y'a cookies[] et session[], pourquoi avoir deux gestion distinctes pour une même chose.

Message cité 2 fois
Message édité par Shinuza le 20-03-2007 à 13:27:01

---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 20-03-2007 à 13:26:52    

Shinuza a écrit :

Euh, j'ai pas lu ça moi, de plus, y'a cookies[] et session[], pourquoi avoir deux gestion distinctes pour une même chose.


Parce que ça n'a aucun rapport, Rails stocke l'identifiant de session dans un cookie pour pouvoir ensuite récupérer la bonne session de l'utilisateur, on ne stocke pas toute la session dans des cookies [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 20-03-2007 à 13:27:45    

J'imagine bien, c'est à El gringo que je répondais ;)


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 20-03-2007 à 13:29:42    

Shinuza a écrit :

J'imagine bien, c'est à El gringo que je répondais ;)


Ca ne change rien  à ma réponse.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 20-03-2007 à 13:40:24    

@El_gringo : Pour info, c'est le même fonctionnement que php par exemple

Message cité 1 fois
Message édité par Shinuza le 20-03-2007 à 13:40:45

---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed