Hello,
Il existe une forme raccourci de begin rescue
Au lieu de faire
begin mon_objet.bidule rescue nil end
on peut utiliser :
(mon_objet.bidule rescue nil)
Aller au contenu | Aller au menu | Aller à la recherche
mercredi 2 décembre 2015
Par rivsc le mercredi 2 décembre 2015, 20:09
Hello,
Il existe une forme raccourci de begin rescue
Au lieu de faire
begin mon_objet.bidule rescue nil end
on peut utiliser :
(mon_objet.bidule rescue nil)
mercredi 19 août 2015
Par rivsc le mercredi 19 août 2015, 11:24
mercredi 17 juin 2015
Par rivsc le mercredi 17 juin 2015, 22:14
Le default_scope est un scope qui est appelé implicitement à chaque requête ActiveRecord sur le modèle en question.
Le problème c'est qu'on l'oublie vite celui-là... Vaut mieux l'utiliser quand on a de bonnes raisons (un order systèmatique)...
En cas de nécessité absolu de ne pas utiliser le default_scope (c'est là qu'on doit légitimement se poser des questions, hein), il existe une méthode : unscoped. Elle vire tous les scopes précédemment utilisés, donc attention à l'ordre dans lequel vous le chaînez.
Documentation officielle sur ces deux méthodes : http://api.rubyonrails.org/classes/ActiveRecord/Scoping/Default/ClassMethods.html#method-i-default_scope
vendredi 5 juin 2015
Par rivsc le vendredi 5 juin 2015, 11:14
Je me souviens avoir cherché, il y a quelques temps sans jamais avoir trouvé une réponse qui fonctionne. Un peu la honte après 5-6 ans de Ruby... Heureusement que ça ne tue pas la honte ^^.
=begin
def une_methode_en_commentaire
puts "Bidule"
end
=end
La petite subtilité que je n'avais peut-être pas saisi à l'époque est qu'il ne faut pas mettre d'espace avant les "=" sinon ça ne fonctionne pas !
mardi 14 avril 2015
Par rivsc le mardi 14 avril 2015, 16:42
L'article d'origine est situé ici : https://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
Je me permets ici juste d'écrire le bout de script en ruby au lieu de python (attention c'est d'une grande complexité ^^).
Donc pour résumer l'article, il faut écrire un script qui renvoie deux paramètres au lieu de sept.
nano /home/sylvain/diff.rb
Mettre les deux lignes ci-dessous dans le script (attention il s'agit d'anti-quote) :
#!/usr/bin/env ruby
`meld #{ARGV[0]} #{ARGV[1]}`
sudo chmod +x /home/sylvain/diff.rb
git config --global diff.external /home/sylvain/diff.rb
git diff monfichier.rb
Ça permet quand même d'avoir un diff plus visuel.
vendredi 30 janvier 2015
Par rivsc le vendredi 30 janvier 2015, 14:37
Pour corriger l'erreur Sprockets::FileNotFound in Beautiful#dashboard : couldn't find file 'jquery.ui.all' dans une application qui utilise beautiful_scaffold il faut remplacer (dans application-bs.js et application-bs.css) :
= require jquery.ui.all
Par
= require jquery-ui
Bon code.
mercredi 28 janvier 2015
Par rivsc le mercredi 28 janvier 2015, 11:00
J'ai joué un peu avec MiniMagick ces derniers temps. Je cherchais à faire une composition de deux images en préservant la transparence.
Après quelques heures de recherche et de test, je me suis mis à tester image magick en ligne de commande. J'avais vraiment un exemple minimaliste et en ligne de commande, ça fonctionnait : la transparence était conservée.
Fatigué de la différence en mini_magick et image magick j'ai lu le code source de mini_magick et je suis tombé sur ça :
https://github.com/minimagick/minimagick/blob/master/lib/mini_magick/image.rb#L427
Tiens mais on peut spécifier un format dans la méthode composite (après coup j'ai un peu honte c'était dans la doc : http://www.rubydoc.info/github/minimagick/minimagick/MiniMagick/Image) le fait de choisir png en format de sortie, minimagick va conserver la transparence.
Bref voici un exemple concret (vous noterez la qualité et la précision de mes peintures numériques ^^) :
require 'mini_magick' # composite -compose Dst-Over -gravity Center fond.png pochoir.png test.png image = MiniMagick::Image.open("pochoir.png") image2 = MiniMagick::Image.open("fond.png") result = image.composite(image2, 'png') do |c| c.compose "dst-over" c.gravity "Center" end result.write("result.png")
« billets précédents - page 2 de 16 - billets suivants »