Développement Web Ruby
par Sylvain CLAUDEL

Derniers posts

jNotify : plugin jquery pour l'affichage de message de notification

Date d'édition 2011-02-17 à 10:50

J'ai trouvé ce plugin vraiment clean donc j'en fait profiter !

Il permet d'avoir des messages box d'avertissement, succès ou d'erreur qui disparaissent au bout d'un délai personnalisable (overlay ou non).

Voici un page de démo : https://www.myjqueryplugins.com/jNotify/demo

Téléchargement : https://www.myjqueryplugins.com/jNotify

Source : https://js4design.com/jnotify-affichez-une-boite-de-notification-animee-1137

Logiciel de calcul des scores du tarot

Date d'édition 2011-02-16 à 20:34

Pendant les vacances c'était tournoi de tarot avec la famille le problème c'est pour calculer les points (petite, garde, 2 bouts, petit au bout, 42 points, calcul des parts des scores) alors j'ai développé une petite application de calcul des points donc si vous remarquez des bugs envoyez-moi un mail ou laissez un commentaire ici.

Voici le lien logiciel de calcul des scores au tarot.

Plugin jquery Isotope : le quicksand ^ 10

Date d'édition 2011-02-15 à 16:11

Vous connaissez Quicksand ? Mais si le plugin jquery qui affiche / masque / ordonne des éléments de manière super classe. (https://razorjack.net/quicksand/ (Licence MIT)).

Et bien voici le plugin jquery Isotope (https://isotope.metafizzy.co/). Il fait la même chose mais avec des fonctions d'optimisation de place

Petit bémol tout de même il n'est gratuit que pour une utilisation non commerciale.

CSS 3 : border-image démystifié

Date d'édition 2011-02-14 à 15:17

Il y a une nouvelle propriété css dans css3 qui permet de faire ce que l'on a toujours voulu faire en html / css : Faire une boite de notre cru avec dégradé ombre interne externe... Le problème c'est qu'il fallait faire une image et cette image n'était pas extensible. C'est à ce moment là qu'intervient border-image (mettez les préfixes qui vont bien -webkit- -moz- ...)

Syntaxe :

border-image:url(monimage.png) top right bottom left {stretch|repeat|round};

Exemple :

border-image: url("../images/fonds_bloc.png") 14 18 20 15 stretch;

border-width: 14px 18px 20px 15px;

Il est bien de combiner à cette propriété la largeur des borders c'est pour cela que j'ai ajouter border-width.

top right bottom et left : ils correspondent aux bordures de notre image (en pixel si l'image est matricielle ou en pourcent pour les images vectorielles) vous noterez que pour les images matricielles il ne faut pas ajouter l'unité px

les borders width : ils correspondent eux aux bordures de notre bloc (en pixel). Pour avoir la même échelle des bordures il est bien de mettre la même valeur pour borders width et top right bottom left.

Enfin un moyen mémo technique pour se souvenir de l'ordre des tailles de bordures : on commence par top puis dans le sens horaire (voir source).

Voici un exemple réel (il faut un navigateur qui supporte les border-image) : 

https://dl.crisalid.net/

La boite bleue est contruite avec ceci, voici l'image utilisée :

https://dl.crisalid.net/images/new/fonds_bloc.png

Pour plus de doc et des exemples suivez ma source :

https://www.lrbabe.com/sdoms/borderImage/index.html#nogo

Les petits bouts de code bogués dans les applications RubyOnRails 3

Date d'édition 2011-02-04 à 09:03

Voici quelques exemples de portion de code buggé :

1) Gestion des id et relations

Exemple de mauvais code :

family = Family.new(:name => "Bla")

product = Product.new(:family_id => family)

On a ici une confusion entre l'objet et l'id de l'objet, rails est magique mais pas tout le temps :

Soit on fait :

product = Product.new(:family_id => family.id)

Soit :

product = Product.new(:family => family)

Et non

product = Product.new(:family_id => family)


2) Utilisation de find_by_sql

Exemple de mauvais code :

families = Family.find_by_sql("SELECT * FROM families f JOIN products p ON p.family_id = f.id")

Family.find(families.first.id)

#Génére une erreur

Dans cet exemple de code, ActiveRecord ne sait pas quels ids mapper dans les objets family. Il se peut que ce soit les ids des produits qui sont dans les champs ids des objets ruby.

Pour ne pas avoir ce problème il ne faut retourner que les champs de l'objet :

families = Family.find_by_sql("SELECT f.* FROM families f JOIN products p ON p.family_id = f.id")

Le mapping est dans ce cas correct !

3) Sauvegarde en cascade :

# Ici on a family has_many products et product belongs_to family

p = Product.new(:name => "Produit1")

f = Family.new(:name => "Family1")

Ceci sauvegarde la famille en cascade :

p.family = f

p.save

#true

Ceci ne sauvegarde pas le produit en cascade :

f.products << p

f.save

#false

Si vous avez d'autres exemples laissez des commentaires !


Développement ruby et geekeries - rivsc