Développement Web Ruby
par Sylvain CLAUDEL

Derniers posts

Faire un zip d'une arborescence en ruby avec rubyzip

Date d'édition 2012-01-12 à 14:57

Donc le petit code cadeau du jour : faire un zip d'une arborescence en ruby (1.8 et 1.9) avec rubyzip.

require 'rubygems'
require 'zip/zip'
require 'zip/zipfilesystem'
# Dossier à explorer
rootdir = "Mon_dossier"
base_path = [rootdir]
base_zip_path = [rootdir]
# Fonction qui explore une arborescence et ajoute les fichiers dans un zip
def explore_and_add(zipf, pathrep, zippathrep)
  zipf.mkdir(File.join(zippathrep))
  
  (Dir.entries(File.join(pathrep)) - ['.', '..']).each{ |entry|
    diskpath = File.join(pathrep, entry)
    if not File.directory?(diskpath) then
      # Ajoute le fichier dans le zip avec la même structure
      zipdiskpath = File.join(pathrep, entry)
      puts diskpath
      zipf.add(
        diskpath,
        zipdiskpath
      )
    else
      # Ajoute le répertoire et descend dans l'arborescence
      pathrep << entry
      zippathrep << entry
      zipf = explore_and_add(zipf, pathrep, zippathrep)
      pathrep.delete_at(-1)
      zippathrep.delete_at(-1)
    end
  }
  return zipf
end
filename = "zip_" + Time.now.to_i.to_s + ".zip"
Zip::ZipFile.open(filename, Zip::ZipFile::CREATE) { |zipfile|
  zipfile = explore_and_add(zipfile, base_path, base_zip_path)
}

Barre de progression en html, css3

Date d'édition 2012-01-11 à 14:32

Ca vous dit une petite barre de progression (progress bar) ? Certain diront qu'il existe <progress> et <meter> d'html5, c'est juste utilisez-les ! Là il s'agit plus de l'aspect (css) que de la sémantique (html). Donc vous pouvez également utiliser ce css avec les balises sémantique html5...

Voilà pour l'HTML

<div class="barre">
    <div class="progress"></div>
</div>

Voilà pour le CSS3

body{
    background-color:black;
}

.barre{
    height:3px;
    width:300px;
    border-radius:3px;
    border:1px solid #111;
    border-bottom:1px solid #111;
    margin:10px;
}

.progress{
    margin-top:2px;
    margin:0;
    padding:0;
    background-color:#2B85C1;
    height:1px;
    width:200px;
    box-shadow:0px 0px 15px 1px #2B85C1,0px 0px 10px 1px black;
}

Voici le jsfiddle qui va avec : https://jsfiddle.net/yQUHc/2/

Effet de vignettage en CSS3

Date d'édition 2012-01-11 à 13:51

Suite à la demande de Geoffrey Dorne sur twitter, je me suis dit que ça devait intéresser d'autres personnes. Voici la ligne de css à mettre dans une class ou un id pour obtenir un effet de vignettage sur une image ou un élément html :

box-shadow:0px 0px 163px 20px black inset;

Oups pardon si vous ne connaissez pas le terme "Vignettage" cliquez-ici.

L'intégration c'est cool et amusant... quand c'est pas pour IE !

Puts ne vous suffit plus, pretty print pp est là

Date d'édition 2011-12-12 à 08:53

Quand on n'utilise pas de débuggeur, Puts est très pratique. Il peut également être intéressant de pretty_printer dans un fichier :

require 'pp'

# Pour afficher en console (ou dans le log du serveur en dev)

pp la_variable

# De cette manière vous pouvez écrire dans le fichier "un_fichier.txt" (pratique pour comparer des fichiers avec meld après...)

# 100 représente la longueur des lignes dans le fichier texte en nombre de caractères.

PP.pp(la_variable, File.open("un_fichier.txt","w"),100)

C'était l'astuce Ruby du mardi matin !

Générer et parser des flux RSS avec Ruby 1.9.3 sans Gem !

Date d'édition 2011-12-09 à 14:54

Ruby 1.9.3 inclu de base (stdlib) un générateur et parser de flux RSS et ATOM : 

Je vous laisse visiter ce lien : https://www.ruby-doc.org/stdlib-1.9.3/libdoc/rss/rdoc/RSS.html

Les exemples y sont très clair sur cette page.

Développement ruby et geekeries - rivsc