Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
ruby:les_bases [2013/08/23 16:32] djiko |
ruby:les_bases [2016/10/17 13:56] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Ruby : les bases ====== | ====== Ruby : les bases ====== | ||
- | ===== String : les chaînes de caractères ===== | + | Tout ce qui concerne spécifiquement le [[rails:start|Framework Rails]] |
- | * String#sub('X', 'Y') : remplace la première occurrence de X par Y | + | |
- | * String#gsub('X', 'Y') : remplace toute les occurrences de X par Y | + | |
- | * String#split(arg) ([[http://www.ruby-doc.org/core-2.0/String.html#method-i-split|doc]]) : renvoie un tableau contenant les éléments de String séparés par arg | + | |
- | * String#downcase ([[http://www.ruby-doc.org/core-2.0/String.html#method-i-downcase|doc]]) : passe String en minuscule | + | |
- | + | ||
- | ===== La classe Object ===== | + | |
- | * Object#is_a?(Class) : renvoie true si Object est de type Class | + | |
- | ===== Array : les tableaux ===== | + | ===== Les tableaux ===== |
- | * Array#map{|item| block} ([[http://ruby-doc.org/core-2.0/Array.html#method-i-map|documentation]]) : crée un nouveau tableau en exécutant le block sur chaque élément de Array | + | Voir la page consacrée aux [[ruby:arrays|tableaux]] |
- | * Array#select{|item| block} ([[http://ruby-doc.org/core-2.0/Array.html#method-i-select|documentation]]) : crée un nouveau tableau en filtrant les éléments de Array sur la base du block | + | ===== Les dictionnaires ===== |
- | * Array#sort {|itemX, itemY| block} ([[http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-sort|doc]]) : tri un tableau en comparant les éléments un à un (itemX / itemY) puis en exécutant block | + | Voir la page consacrée aux [[ruby:hash|dictionnaires]] |
- | * Array#join(SEP) ([[http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-join|doc]]) : renvoie un objet String contenant les éléments de Array séparés par SEP | + | |
+ | ===== Range ===== | ||
+ | * x..y : crée un range de x à y | ||
+ | * (x..y).to_a : crée un tableau contenant les éléments de x à y | ||
===== Énumérations ===== | ===== Énumérations ===== | ||
+ | * Enumerable#inject(ARG) {|RESULT, ITEM| BLOCK} (doc) :exécute BLOCK sur chaque élément ITEM de la collection, en passant le résultat d'une exécution à l'exécution suivante. Exemple : | ||
+ | Si l'on considère que menu est un [[http://www.ruby-doc.org/core-1.9.3/Hash.html|Hash]], la méthode Restaurant#cost | ||
+ | <code ruby> | ||
+ | class Restaurant | ||
+ | def initialize(menu) | ||
+ | @menu = menu | ||
+ | end | ||
+ | |||
+ | def cost(*orders) | ||
+ | # parcourt orders pour calculer total_cost | ||
+ | orders.inject(0) do |total_cost, order| | ||
+ | # pour chaque key d'un order, on ajoute order[key] * menu[key] à cost | ||
+ | total_cost + order.keys.inject(0) {|cost, key| cost + @menu[key]*order[key] } | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | </code> | ||
+ | * Enumerable#all? {|item| BLOCK} ([[http://ruby-doc.org/core-2.0/Enumerable.html#method-i-all-3F|doc]]) : renvoie true si tous les éléments de la collection vérifient BLOCK. Si BLOCK n'est pas précisé, renvoie true si aucun élément de la collection n'est false ou nil | ||
* Enumerable#find_all {} ([[http://ruby-doc.org/core-2.0/Enumerable.html#method-i-find_all|doc]]) : renvoie une nouvelle collection constituée des éléments de la collection appellante répondant à la condition BLOCK. Exemple sur un tableau values | * Enumerable#find_all {} ([[http://ruby-doc.org/core-2.0/Enumerable.html#method-i-find_all|doc]]) : renvoie une nouvelle collection constituée des éléments de la collection appellante répondant à la condition BLOCK. Exemple sur un tableau values | ||
<code ruby> | <code ruby> | ||
Ligne 33: | Ligne 46: | ||
end | end | ||
</code> | </code> | ||
+ | |||
+ | ===== Object ===== | ||
+ | * Object#is_a?(Class) : renvoie true si Object est de type Class | ||
+ | |||
+ | ===== String ===== | ||
+ | Voir la page consacrée aux [[ruby:strings|Strings]] |