Skip to content

Instantly share code, notes, and snippets.

@nicolasblanco
Created December 3, 2012 15:35
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicolasblanco/4195758 to your computer and use it in GitHub Desktop.
Save nicolasblanco/4195758 to your computer and use it in GitHub Desktop.
Ruby fun
# Objet natif Range, support des chaines, chiffres, dates...
# Tous les chiffres entre 0 et 10 inclus.
0..10
#=> 0..10
# Tous les chiffres pairs entre 0 et 10 inclus.
(0..10).select(&:even?)
#=> [0, 2, 4, 6, 8, 10]
# Toutes les lettres entre "m" et "z" inclues.
"m".."z"
#=> m..z
# Additionner tous les nombres entre 5 et 15 inclus.
(5..15).reduce(:+)
#=> 110
array = %w(lapin cheval chouette lion castor)
# Trouver l'animal qui a le nom le plus long.
array.inject { |memo, word| memo.length > word.length ? memo : word }
#=> chouette
# Est-ce que tous les animaux du tableau ont une longueur supérieure à 3 lettres ? Et à 6 lettres ?
array.all? { |word| word.length > 3 }
#=> true
array.all? { |word| word.length > 6 }
#=> false
# Doubler tous les animaux...
array.map { |animal| "2 #{animal}s" }
#=> ["2 lapins", "2 chevals", "2 chouettes", "2 lions", "2 castors"]
# Sortir tous les animaux qui ont la lettre "c".
array.delete_if { |animal| animal.include?("c") }
#=> => ["lapin", "lion"]
# Grouper les animaux par nombre de lettres de chaque animal.
array.group_by(&:length)
#=> {5=>["lapin"], 6=>["cheval", "castor"], 8=>["chouette"], 4=>["lion"]}
# Ruby on Rails : les dates...
# La date d'il y a 3 jours.
3.days.ago
#=> Fri, 30 Nov 2012 16:37:40 CET +01:00
# La date dans 2 mois.
2.months.from_now
#=> Sun, 03 Feb 2013 16:38:18 CET +01:00
# La date dans 1 an moins 2 jours et 1 seconde.
1.year.from_now - 2.days - 1.second
#=> Sun, 01 Dec 2013 16:39:44 CET +01:00
# 1 giga-octet moins 1 kilo-octet
1.gigabyte - 1.kilobyte
#=> 1073740800
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment