Tag: ruby

Interpréter une sequence unicode en ruby

Il peut être nécessaire d'interpréter une séquence unicode en ruby. Voici un exemple : puts 's\u00E9par\u00E9' # Affiche "s\u00E9par\u00E9" Là vous pourriez dire qu'il suffit de do...

Utiliser Visual Studio Code pour développeur rubyonrails

Je regarde de temps en temps les alternatives à rubymine (J'ai eu pas mal de problème de lenteur avec le debuggeur sur MacOSX...). J'avais testé VS Code il y a quelques temps mais je...

Je n'aime pas la syntaxe Hash ruby 1.9+

Bon à chaque fois que je dis ça, je m'attire des enemies, voici un cas pénible en syntaxe 1.9 : # Clé integer 2.3.3 :054 > { 4 => 'truc' } => {4=>"truc"} 2.3....

Faire un timelapse avec un raspberrypi et une lampe commandée par un relais

Ok j'ai craqué, certe un peu plus tard que tout le monde mais j'ai craqué : j'ai acheté un raspberrypi. A la base je compte faire un photomaton mais j'ai pas mal d'autres projets a...

Ruby : attention à la base 8 (octal)

Hier un collège me dit, je comprends pas j'ai une erreur quand j'itère sur mon array. Exemple simplifié du code :  arr = [03,09,42,57] Voici l'erreur : Invalid octal digit En fait...

Activer les logs sql dans la console rails

Une fois la console rails démarrée (rails c), il suffit de faire : ActiveRecord::Base.logger = Logger.new STDOUT

Utiliser la forme réduite de rescue

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)

Comment connaitre les changements qu'il y a eu sur un objet ActiveRecord immédiatement après un save ?

Avant de faire un save il est possible de connaitre les changements/savoir si un objet ActiveRecord a changé en appelant .changes ou changed? Mais après un save ces fonctions renv...

Paranoia : suppression logique des objets ActiveRecord

Il peut être pratique de faire croire aux communs des mortels que vous supprimez réellement des objets quand ils cliquent sur le bouton de suppression et de ne pourtant pas supprimer...

Comment ne plus utiliser le default_scope ?

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'uti...

Commentaire multiligne en Ruby

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 ho...

Utiliser Meld sous linux pour voir un diff git sur un fichier local avec sa précédente version.

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 (att...

MiniMagick Composite : composition de deux images en préservant la transparence

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,...

Sprockets::FileNotFound in Beautiful#dashboard : couldn't find file 'jquery.ui.all'

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...

Comment j'aurai dû gagner un samsung galaxy S5 avec materiel.net et twitter !

Tous les midi, materiel.net (merci à eux) lance un concours : trouver une vignette parmi les pages de leur site.  Pourtant chaud-bouillant, tous les midi, je me fais battre à plates ...

Transformer un array d'objet ActiveRecord en hash avec comme clé l'id et l'objet en valeur

La petite astuce du jour : Comment transformer un Array d'objet ActiveRecord en Hash avec comme clé l'id et l'objet en valeur ? Solution Hash[Family.all.map{ |f| [f.id,f] }] Ce qui d...

Chainer ses méthodes sans redouter un "NoMethodError" ou "undefined method for NilClass" avec try

Il peut être pratique de faire un : @voiture.roues.first.gonflage Voiture étant un objet de la classe Voiture. Roue est une classe et elle belongs_to Voiture gonflage est un attribut...

Utiliser hstore avec le gem Apartment

Il m'est arrivé d'avoir besoin de hstore (stockage key/value dans postgres) avec Apartment. La mise en place n'est pas très compliqué mais il ne faut rien oublier. Le readme de Apart...

Changement de comportement entre deux versions de ruby

Je compare ici ruby 1.8.7 et ruby 1.9.3 (je pense que l'on peut généraliser à rb 1.8 vs rb 1.9). Ce post sera mis à jour au fur et à mesure de ces découvertes ! Le parsing des dates ...

Interfacer RubyCas avec une application RubyOnRails et Devise

RubyCas gère exclusivement le Single Sign On (SSO). En aucun cas il ne gère la gestion des utilisateurs (création de compte, mot de passe oublié, compte verrouillé, etc) : pour tout ...

Single Sign On (authentification centralisée) avec RubyCas

RubyCas-Server est une application sinatra qui respecte la norme CAS (central authentification service). Elle permet le single sign on. (Wiki RubyCas : https://github.com/rubycas/rub...

Eviter de tester la non nullité lors d'un chaînage de méthode en ruby avec try (avec RubyOnRails)

Il peut arriver d'avoir ce genre de code : command.contact_delivery.name Ici vous êtes obligé de tester que command et contact_delivery ne sont pas nil. RubyOnRails a ajouté une méth...

ActionMailer : envoyer un email avec une adresse par défaut ou personnalisée

Il peut arriver qu'on veuille envoyer un email avec une adresse par défaut ou personnalisée. Pour cela, vous pouvez utiliser VotreMailer.default_params[:from] pour éviter de copier/c...

Sunspot : la recherche simple pour une application rubyonrails avec Solr

J'avais déjà parlé de UltraSphinx et ThinkingSphinx. Il y a mieux (enfin je trouve) : SunSpot qui utilise Solr. Pour l'utiliser il suffit de mettre ces gems dans votre Gemfile et de ...

Installer RMagick la solution ultime

Bon j'ai déjà fait pas mal de post sur le sujet voici la méthode qui marche (sur ubuntu / debian) sudo apt-get install libmagickwand-dev sudo gem install rmagick -v '2.13.1' Si ça ne...

Générer un sitemap au déploiement pour une application rubyonrails

Il peut être intéressant de générer des sitemaps dans le cas où toutes les pages ne sont pas linkée (comprendre qu'elles n'ont pas de lien). Le gem sitemap generator permet de faire ...

Assets pipeline : precompile assets avec Capistrano

La solution ultime à tous mes problèmes de déploiement. 1) Mettre ceci dans environments/production.rb : config.assets.precompile += ["*.css", "*.js"] ça perme...

Appartment : le gem qui permet de faire du multi-tenancy avec Postgresql

Le multi-tenancy revient à avoir une seule base de données avec les données de plusieurs clients (on aurait pu aussi mettre une clé étrangère sur tous les models mais c'est plus long...

Beautiful Scaffold version 0.1.1

Plein de nouveautés dans Beautiful Scaffold. Tout d'abord les versions ne sont pas compatibles entre elles, donc vous ne devez pas changer la version de beautiful-scaffold dans votre...

ActiveResource Rails 3 et Rails 3.2 : 406 not Acceptable

J'utilise ActiveResource entre deux applications web. Je suis en train de migrer l'application de rails 3.0 vers rails 3.2 et là j'ai une erreur : ActiveResource::ClientError: Failed...

content_for et yield ou capture

Comme d'habitude on vient me demander de changer des choses sur les interfaces au travail, comme d'habitude je cherche le compromis entre Ergonomie / Performance / Fainéantise.  J'av...

Les objets ruby sont passés en référence ou en valeur dans les méthodes ?

Bon à la suite d'une discussion avec BobMaerten et PagedeGeek, voici le fruit de mes recherches (merci c'est plus clair dans ma tête :-) Donc en fait les integer sont traités différe...

Appeler une classe à partir d'une chaine de caractère en ruby

Vous avez par exemple une classe Product, vous voudriez l'appeler à partir d'une chaine. Voici le bout de code qui vous permettra de le faire : "product".classify.constanti...

Liste des TimeZone de RubyOnRails

Voilà la commande magique qui renvoie la liste des TimeZone de Rails : ActiveSupport::TimeZone.all Si vous voulez les afficher en console : ActiveSupport::TimeZone.all.map(&:tzin...

Sudo avec RVM : rvmsudo

Vous avez installé ruby avec RVM, et quand vous faites : sudo ruby -v Vous obtenez ceci : sudo: ruby: command not found Il est temps d'utiliser rvmsudo ! Essayez : rvmsudo ruby -v  ...

Beautiful Scaffold est releasé

Beautiful Scaffold est un générateur rails 3 qui permet de créer une interface d'administration (un scaffold de rails) complet :  - Filtre et recherche - Pagination des données - Exp...

Créer une application rubyonrails avec une version spécifique de rails

Comment faire pour utiliser une version spécifique de rails ? Ce n'est pas très compliqué : rails _VERSION_. Exemples  rails _3.0.7_ new myapp rails _3.1.3_ new myapp rails _3.2.0_ n...

Les ressources / articles web dev de ces derniers jours

Voici les quelques ressources que j'ai trouvé intéressante ces derniers jours (ça fait office de post-it en ce qui me concerne). Framework html / css / js : https://www.99lime.com/ j...

Text : le gem qui contient un liste d'algorithme de chaine (distance de levenshtein, Soundex, Metaphone,...)

Le gem ruby text rend disponible certains algorithmes pour les chaines de caractères (Soundex, levenshtein, Metaphone). Ce rubygem peut-être pratique pour connaitre les similitudes e...

Faire un zip d'une arborescence en ruby avec rubyzip

Donc le petit code cadeau du jour : faire un zip d'une arborescence en ruby (1.8 et 1.9) avec rubyzip. require 'rubygems' require 'zip/zip' require 'zip/zipfilesystem' # Dossier ...

Puts ne vous suffit plus, pretty print pp est là

Quand on n'utilise pas de débuggeur, Puts est très pratique. Il peut également être intéressant de pretty_printer dans un fichier : require 'pp' # Pour afficher en console (ou dans l...

Timecop : le gem qui permet de voyager dans le temps et le stopper comme Hiro Nakamura

Timecop est donc un gem qui permet de voyager dans le temps et le stopper. De la même manière que FakeWeb, j'ai découvert Timecop sur https://railscasts.com/episodes/276-testing-time...

FakeWeb : un gem qui permet de simuler une réponse via Net::http en ruby

Le gem est apparu dans un railscast, il n'y a pas longtemps. Voici la doc : https://fakeweb.rubyforge.org/ qui est très bien faites d'ailleurs. Pratique pour les tests unitaires et f...

Emploi : Développeur Web RubyOnRails sur Paris et Lille

J'ai dans mes contacts deux entreprises qui cherchent des développeur Web RubyOnRails. Wype, une jeune Web Agency Parisienne est à la recherche d'un développeur web RubyOnRails (CDI,...

Apprendre le langage de programmation ruby

Voilà vu récemment sur korben (Merci korben de faire la promotion de ruby)(https://korben.info/rubymonk-apprendre-le-ruby.html), je ne pouvais passer à coté d'une news sur ruby ! Don...

Gem prawn pdf pour rails : enfin une vrai documentation

Vous avez dû remarquer que j'ai récemment écrit quelques posts sur prawn la librairie ruby (et rails) pour générer des documents pdf je suis en train (pour une application) de passer...

Rails Prawn pdf : undefined method for #

Bon après quelques temps de recherche dans la doc de prawn sur github et sur majesticseacreature, j'ai trouvé par hasard.  Donc si vous avez cette erreur : undefined method `XXX' for...

Number to human : chiffre en lettre en ruby avec rubyonrails

Bon voilà dans rubyonrails, il y a un helper : number_to_human, qui est bien intéressant : https://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_t...

Rails generate scaffold_controller

La commande "rails generate scaffold_controller" permet de générer les vues / routes / controller associés à un model déjà existant. Malheureusement il ne va pas chercher l...

Albino le gem ruby qui colorise votre code - syntax highlighter

Il existe un gem qui colorise votre code, il permet de mettre en évidence la syntaxe de votre code. Installation : sudo aptitude install python-setuptools sudo easy_install pygments ...

ActiveAdmin interface d'administration personnalisable pour application rubyonrails

ActiveAdmin est un générateur d'interface d'administration personnalisable pour application rubyonrails, au programme export xml, csv, json, filtre personnalisable, pagination, .... ...

Comment passer un hash de paramêtres à la méthode can de CanCan

Vous connaissez certainement CanCan le système de gestion des droits pour les applications rubyonrails. Can admet 2 paramêtres fixe : - Le premier est une action ou un alias de plusi...

Backports : le gem qui fait ce qu'il dit : utiliser les fonctions de ruby 1.9 avec ruby 1.8

Votre application n'est pas encore prête à passer à ruby 1.9, mais ça vous arrangerez bien d'avoir des nouvelles fonctions de ruby 1.9 pas de problème il existe le gem backports Voic...

Valium le gem qui allège votre CPU et votre mémoire lors d'une récupération limitée des champs d'un objet

Il arrive souvent que l'on ai besoin que de certains champs lors de la récupération d'objets sérialisés en base de données. Par exemple imaginons que nous ayons 10000 utilisateurs (a...

RubyOnRails was changed change pour les attributs des models

Dans les models rubyonrails il existe une tripotée de méthodes pour les attributs. Vous pouvez avoir un aperçu de ces méthodes dans le module ActiveRecord::Dirty (https://ar.rubyonra...

Ruby hash et struct ils ont chacun leur cas d'utilisation

Si vous utilisez les hash pour stocker tout et n'importe quoi, vous allez perdre en performance. L'intérêt d'un hash est comme il se définit d'ailleurs un tableau indexé. Il vous per...

Cramp : framework d'application asynchrone et temps réel

Cramp est un  framework d'application asynchrone et temps réel, bon je vous laisse le lien et le soin de matter un peu la doc. Au programme WebSocket et Streaming API. Il est distrib...

Utiliser ERB avec ruby sans rails

ERB est le moteur de template utilisé par RubyOnRails. Il peut être intéressant de l'utiliser avec ruby seulement. Je vous préviens ce n'est pas très compliqué, mais il y a une petit...

Retrouve le premier enregistrement DNS sur une IP (reverse DNS)

Voici la fonction ruby équivalent à la fonction php gethostbyaddr() qui permet de faire du reverse DNS (renvoie le PTR record ou pointer record associé à une ip) require 'socket' put...

Varargs en ruby pour gérer les OR sql dans un ActiveRelation

J'ai eu besoin récemment de faire des "ou" (or) avec ActiveRecord, pas moyen de faire des ActiveRelation car à chaque méthode where() appelée, ActiveRecord fait un "et...

Conversion de base en ruby

Pour le puzzle 5 de Google Chromebook, j'ai eu besoin de changer de base pour faire des tests. (je n'ai pas trouvé l'énigme) La fonction to_s de ruby permet donc de convertir l'integ...

RubyOnRails 3 ActiveRecord un cas d'utilisation d'has_many/belongs_to

Bon voici un bon cas bien complexe de relation à gérer avec rubyonrails 3 et ActiveRecord : Le but est de représenter les relations familiales (family_relationship) de personne (cont...

Google Chromebook puzzle arithmétique 3

Bon après 1h30 de recherche à deux, on a trouvé une bonne partie, il manque un petit quelque chose (qu'on réussi à deviner avec un peu de bon sens), ce qui nous manque doit être réso...

Connexion avec Tor sous linux et utilisation avec un script ruby

Vous connaissez certainement tor (https://www.torproject.org/index.html.fr), le réseau décentralisé qui permet de se connecter anonymement. Pour l'installer sous linux accrochez-vous...

Surcharger les accesseurs par défaut dans les models de rails3

Il peut être intéressant de surcharger des accesseurs, par exemple changer le comportement d'un attribut et éviter de changer tout son code. Voici un petit exemple : class Product ...

Netbeans 7.0 pour faire du rubyonrails

Bon alors vous pouvez utilisé netbeans 7.0 pour faire du rubyonrails. 1) Téléchargez netbeans 7.0 ( https://netbeans.org/downloads/ ), elle n'existe pas encore en français, prenez l...

Votez pour le support d'un debugger ruby pour Redcar

Bon voilà si vous souhaitez le support du debugger pour ruby dans redcar : allez voter : https://redcar.uservoice.com/forums/69985-feature-requests/suggestions/1641385-ruby-debugger...

is_a, kind_of, connaitre la classe d'un objet ruby

Les objets ont tous la classe, euh pardon ont tous une classe. Il y a deux manières en ruby de trouver la classe d'un objet : is_a? et kind_of?  Exemple : irb(main):011:0> test1...

Un générateur de sitemap qui crawle votre site Web

J'étais en train de terminer un script ruby qui construit un sitemap pour les gandi blog, et lors de la recherche de la spécification du sitemap xml je suis tombé dessus ce générateu...

Activerecord-import le gem nécessaire pour les gros imports de données

Le Activerecord-import permet de faire des gros imports de données. Lors d'un gros import de données, au lieu de faire des saves à tire-larigot, il vaut mieux mettre les objets à sau...

Petites actuces pour rubyonrails 3

Voici des petites actuces pour rubyonrails 3. Obtenir le controlleur courant controller.controller_name Obtenir la méthode courante controller.action_name Récupérer l'host request.en...

to_json : inclure (include) des sous models et des méthodes dans la serialisation

Bon le to_json c'est cool mais il vous manque des informations dans votre sérialisation ? Pas de soucis il existe des options à to_json : :include => :model_a_inclure(s) ou pour u...

Pretty Printer du json en rails console (rubyonrails 3)

Voici deux fonctions qui permettent d'afficher du JSON joliement. Elles nécessitent le gem json donc dans le Gemfile : gem 'json', '>= 1.2.0' Donc ensuite :  bundle install Ensuit...

Benchmark - Chronométrer son code Ruby avec Benchmark

Voici le code qui permet de mesurer l'execution de votre code ruby : require "benchmark" time = Benchmark.measure do   # Placer votre code à mesurer ici end    Rails.logger...

Exemples d'utilisation de la class net::http de ruby

Voici de simples exemples de cas d'utilisation de la class net::http de ruby; tout est sur github à cette adresse : https://github.com/augustl/net-http-cheat-sheet - Post de form - U...

Une fonction pour vider les tables associées aux models - rubyonrails 3

Voici une fonction pour vider les tables associées aux models dans une application rubyonrails 3. Soit en console, soit dans votre code, vous pouvez faire : ActiveRecord::Base.class_...

Rendu json avec rails 3

Si vous souhaitez faire un rendu json : voilà comment procéder : Dans routes.rb : get "show_product/:id(.:format)" => "products#show_product" Dans votre contro...

Récupérer la liste des tables de la base de données dans une application rubyonrails 3 ActiveRecord::Base.connection.tables

Comme d'habitude tout est dans le titre :  Voici comment récupérer la liste des tables de la base de données dans une application rubyonrails 3 ActiveRecord::Base.connection.tables =...

Tutorial Rubyonrails 3 - Partie 4 - ActiveRelation et scopes - Arel

Partie 4 – Rails3 -  ActiveRelation et scopes N’hésitez à mettre des commentaires / à corriger mes fautes / à rajouter des choses ! Vous avez vu dans la partie 2 : post = Post....

Serveur et client Websocket en ruby et client javascript

Les websockets (protocole : ws) permettent d'avoir une communication en mode connecté avec le serveur (alors que http est déconnecté) La lib websocket se trouve ici avec les exemples...

Télécharger un fichier distant en ruby

Voici comment on peut télécharger un fichier distant en ruby : require 'open-uri' newf = File.open('recup.sh','w') open('https://blog.escarworld.com/assets/images/install-ree-nginx-...

Script - Installation Ruby enterprise edition (REE) + Passenger + Nginx et Rmagick

Bon vous allez me dire encore... ouai c'est vrai, mais là le script est écrit ! Testé sur Debian et Ubuntu, il installe Ruby enterprise edition feb-2010, passenger 3.0, Nginx 0.8.53,...

Tutorial Rubyonrails 3 - Partie 3 - Création des relations entre les models (détail relation et migration)

Partie 3 – Rails3 -  Création des relations entre les models (détail relation et migration) N’hésitez à mettre des commentaires / à corriger mes fautes / à rajouter des choses ! ...

Votez pour rubyonrails

Sondage sur les langages web coté server : https://www.developpez.net/forums/d990473/webmasters-developpement-web/general-conception-web/langage-serveur-prefere-web/ Allez voter pou...

Synthese vocale en ruby avec espeak-ruby (espeak + lame)

Un gem vient de sortir, il utilise les librairies espeak et lame. Il génére un MP3 correspondant à du texte : https://rors.org/2010/10/21/espeak-ruby.html Essayez la demo c'est terri...

Installation du gem sqlite3-ruby - sqlite3-ruby only supports sqlite3 versions 3.6.16+, please upgrade!

Vous êtes sous debian ou une vieille ubuntu et vous avez ce problème : sqlite3-ruby only supports sqlite3 versions 3.6.16+, please upgrade! Pas de panique, il faut compiler sqlite3 p...

readline rvm ruby 1.8.7 ou ruby 1.9.2

Erreur : `require': no such file to load -- readline Pour résoudre cette erreur, il faut installer le package readline avec rvm puis réinstaller ruby avec rvm. Pas de panique ça p...

Theme_support pour rails 2 et rails3 themeing

Theme support était à l'origine un plugin qui permettait d'avoir des thèmes pour son application ruby on rails 1.X ou 2.X. Voici comment cela fonctionne. Un répertoire themes à la r...

openssl rvm ruby 1.8.7 ou ruby 1.9.2

Erreur : `require': no such file to load -- openssl Pour résoudre cette erreur, il faut installer le package openssl avec rvm puis réinstaller ruby avec rvm. Pas de panique ça prend ...

De Ruby 1.8.7 à Ruby 1.9.2, changement et différence

Un joli slideshow sur les différences entre ruby 1.8 et ruby 1.9. C'est ici que ça se passe (flèche droite pour aller à la "diapo" suivante) https://slideshow.rubyforge.or...

Installer rubyonrails 3.0.0 et ruby 1.9.2 avec rvm sur ubuntu 10.04

Je suppose que vous avez déjà un ruby (1.8.7) qui fonctionne. Il faut installer curl et git, si vous ne les avez pas : sudo aptitude install curl git-core Installation de RVM (ruby...

Alwaysdata - Hébergement gratuit d'application rubyonrails

Alwaysdata permet d'héberger des applications rubyonrails gratuitement. Voici l'offre gratuite : Espace disque 10 Mo Trafic mensuel 1 Go Mémoire vive 40 Mo Les gem installées décompt...

Installer Rubinius sur ubuntu

Comment installer la plus rapide implémentation de ruby du moment ? sudo aptitude install libreadline-dev git clone git://github.com/evanphx/rubinius.git cd rubinius ./configure rake...

Passez à rails 3, prenez des bonnes habitudes

Bon il y a pas mal de choses qui changent entre rails 2.3 et rails 3, voici une liste de vidéos histoire de connaitre les nouveautés et de gagner du temps. https://rubyonrails.org/s...

RubyOnRails et la méthode "all?"

Cette méthode permet d'économiser quelques lignes de code... Elle permet faire une série de tests dans une boucle et renvoie true uniquement si tous les tests sont à true. Un exemple...

Pas possible d'utiliser rmagick 2.13.1 sur ubuntu 10.04 ou debian sans compiler imagemagick

Et oui pour utiliser la nouvelle version de rmagick (2.13.1) il faut une version plus récente d'imagemagick que ce qu'il y a sur les dépots d'ubuntu et de debian. Il faut donc se tap...

Installer Rmagick sur ubuntu 9.10 server sans encombre

Pour installer RMagick sur ubuntu 9.10 server : sudo aptitude install libmagick9-dev sudo gem install rmagick Plus recent : https://blog.escarworld.com/post/2010/05/19/Pas-possible-d...

Compass VS Less css compiler (compilateur css) avec Ruby

Un compilateur css kesako ? Vous réviez d'utiliser des variables dans vos css, les fichiers qui passent par les compilateurs css supportent les variables mais aussi les mixins (liste...

NetBeans 6.8 pour développer en ruby avec RubyOnRails

J'ai pas encore migré de NetBeans 6.7.1 à NetBeans 6.8 sur tous les postes (Portable, fixe, Boulot). Il n'y avait apparemment aucunes modifications intéressante pour moi. En fait il...

RubyOnRails - Parser une chaine JSON - Erreur Invalid JSON string

Pour parser du JSON deux méthodes : Utiliser les composants de base de rubyonrails : mon_hash = ActiveSupport::JSON.decode(ma_chaine_json) Cette manière de faire est moins performan...

RubyOnRails, les fonctions et le calcul sur les dates

J'adore rubyonrails pour ses méthodes pour le traitement et le calcul des dates. Quelques unes de ces méthodes (à utiliser sans modération dans les named_scopes) t = Time.now t.mday...

RubyOnRails et les erreurs 500 (Internal Server Error) personnalisées et dynamiques

Vous en avez marre des vilaines erreurs 500 des applications rails ? Non je ne vais pas vous montrer comment utiliser CSS avec le fichier "public/500.html". BIen mieux : l...

Conversion d'encodage de caractères avec Iconv et Ruby

Vous voulez convertir simplement des caractères ISO-8859-1 vers UTF8 ou UTF8 vers ISO-8859-1. Et bien c'est pas compliqué : ISO-8859-1 vers UTF8 : @c = Iconv.new('utf-8','iso-8859-1...

Compression d'un répertoire en zip avec ruby

Comment archiver un répertoire complet en zip en ruby ? De nouveau ça vient de hidalgoemmanuel : Tout le code ce trouve sur le lien suivant (n'oubliez pas le gem rubyzip) : https://h...

Envoi de fichier par ftp en ruby

Comment envoyer un fichier en ruby sur un serveur ftp ? Et bien une fonction simple mais efficace, même si les conventions minuscule/MAJUSCULE ne sont pas respectées on ne lui en vo...

Rubular et les expressions régulières en ruby

Vous avez besoin d'une regexp en ruby (expression régulière) et la tester sur des données particulières ? Si vous lisez ce billet c'est que vous ne connaissez pas encore rubular. Ce...

Ruby - Comment connaitre la liste des attributs d'une classe présents dans la base de données

Bon voilà j'avais envie de parler de cette fonction : column_names Product.column_names Ceci renvoie la liste des colonnes de la table dans la base de données : => "name"...

Ruby et les float

Un peu de calcul. Voilà ce que me donne IRB la console Ruby : irb(main):002:0> 1.16*100 => 116.0 irb(main):003:0> (1.16*100).truncate => 115 irb(main):004:0> (116.0).t...

Escarworld, le jeu d'escargot

Voilà mon projet qui est le plus vieux et oui plus d'un ans et demi maintenant. Il s'agit d'un jeu d'élevage d'escargots, il n'a pas la vocation d'être réaliste (en gros c'est pas p...

Un projet, deux projets, j'ai trop de projets

Depuis le milieu de mon stage à GDF (oui j'avais un peu de temps pour réfléchir), je me suis dit : "ho et puis si je faisais un petit jeu web." (autre que les petits othell...