Outils pour utilisateurs

Outils du site


ruby:les_bases

Ruby : les bases

Tout ce qui concerne spécifiquement le Framework Rails

Les tableaux

Voir la page consacrée aux tableaux

Les dictionnaires

Voir la page consacrée aux dictionnaires

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

  • 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 Hash, la méthode Restaurant#cost

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
  • Enumerable#all? {|item| BLOCK} (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 {} (doc) : renvoie une nouvelle collection constituée des éléments de la collection appellante répondant à la condition BLOCK. Exemple sur un tableau values
# renvoie un tableau contenant tous les éléments de values non doublonnés. Permet donc de dédoublonner un tableau
values.find_all { |x| values.count(x) == 1 }
  • Énumération rapide
for i in RANGE
...
end
 
# même résultat mais plus Rubyesque
RANGE.each do |i|
...
end

Object

  • Object#is_a?(Class) : renvoie true si Object est de type Class

String

Voir la page consacrée aux Strings

ruby/les_bases.txt · Dernière modification: 2016/10/17 13:56 (modification externe)