Deep Know SEO, Web developpement, Trucs et Astuces


6
Feb/08
0

Ruby on Rails : Récupérer le contenu d’une session dans la console

Lors de certaines phases de debug avec la console, il peut être utile parfois d'avoir accès au contenu d'une session utilisateur.

Actuellement, j'accède à l'objet session de cette façon :

1 - Rechercher dans le répertoire 'sessions' la session qui m'intéresse. (par exmple, la dernière session créée)

2 - Ouvrir la console est taper :

s = Marshal.load(File.open('/tmp/sessions/ruby_sess.6aa3fe56e4c32cef'))

Ensuite, je peux manipuler l'objet session pour analyser ce qu'il contient et repérer un éventuel bug.

Existe-t-il un moyen plus élégant avec Ruby On Rails pour effectuer ce style de debugging ?

26
Dec/07
0

Une commande ruby très pratique

On peut faire des chose très utiles avec une seule ligne de commande ruby (de la même façon qu'avec perl).

Exemple, comment remplacer la chaine 'top' par 'tip' dans tous les fichiers .html avec en plus sauvegarde de tous les fichiers originaux modifiés en .orig

% ruby -i.orig -pe 'sub "top", "tip"' *.html

Remarque, on peut faire la même chose en Perl :

% perl -i'.orig' -pe 's/top/tip/g' *html

Personnellement, j'ai un peu délaissé Perl pour Ruby. La seule raison, je n'ai pas vraiment besoin de beaucoup de performance lorsque je fais de petits scripts (niveau performance, Ruby est loin derrière Perl). Mis à part le fait que je trouve Ruby beaucoup plus classieux que Perl. Mais c'est un autre propos.

Un autre exemple en Ruby, supprimer les espaces à la fin des lignes d'un fichier:

% ruby -pe 'gsub(/\s+$/, $/)' < file.txt

On peut trouver des petits scripts one-liners très utiles pour résoudre de petites taches.

Vous trouverez de nombreux exemples sur cette pages : ruby1line

22
Dec/07
0

Une fonction pour simuler la valeur de sûreté d’un mot de passe en Ruby

J'ai trouvé une astuce sur un site de Snippet, utile pour estimer la valeur de sûreté d'un mot de passe. C'est une simple extension de la classe String (ce qui veut dire que tout vos object string possèderons la méthode pwd_strength.

class String
  SETS = {
    /[a-z]/ => 26,
    /[A-Z]/ => 26,
    /[0-9]/ => 10,
    /[^\w]/ => 32
  }

  def pwd_strength
    set_size = 0
    SETS.each_pair {|k, v| set_size += v if self =~ k}
    cb = set_size ** length
    days = cb.to_f / 1000 / 86400 # 1000 entries per seconds
    days / 365
  end
end

Par contre, c'est une simple estimation basé sur les combinaisons possible induites par les caractères qui compose le mot de passe. Mais cela reste tout de même intéressant pour faire une évaluation indicative.

21
Dec/07
0

Modifier le groupe et l’utilisateur d’un fichier en Ruby

Ruby est très pratique pour développer des petits scripts d'administration.

Une commande simple en Ruby pour modifier le groupe et l'utilisateur d'un fichier :

require 'fileutils'
FileUtils.chown('user', 'group', 'myfile.txt')

C'est plus simple et plus propre que de faire un appel système via open pipe ...