Avant-propos
- Code source
- Comment contacter l’auteur
- À qui s’adresse ce livre
- Crédits images
- Change log
Introduction
- Partie I : Éléments basiques d’un framework web
1 - Les bases de Rack
- Première rencontre
- Décryptage d’une ligne de log
- Application attendue par Rack
- Données et metadonnées
- Emplacement du config.ru
2 - Une route + un contrôleur + une vue = une application
- Une route
- Lexique français/anglais des termes de routage
- Un petit truc pour débugger
- Un contrôleur
- objet#méthode
- Une vue
- Erreur 500
- Une application
3 - Des routes + des controlleurs + des vues = un framework
- Des routes
- Des contrôleurs
- Des vues
- DRY : Don’t Repeat Yourself
- Un framework
- Envoyer des messages avec send
- Généralisons encore
- Le pourquoi de l’héritage
4 - Le Gemfile
- DSL, ou Domain Specific Language
- Source
- Gem
- Bundle
- Versions
- L’opérateur pessimiste
- Trouver la dernière version d’une gem
- Le Gemfile final
5 - Les bases de la base de données Sqlite3
- Sqlite3 avec Ruby
- Précisions sur les types de données
- Sqlite3 sur la ligne de commande
- DB Browser for Sqlite
- Conclusion
6 - Modèle de données avec Sequel
- Partie physique et partie conceptuelle ?
- Installer Sequel
- Utiliser Sequel pour récupérer les données
- Le modèle Article
7 - Template et binding
- Définition d’un template
- Binding
- Un premier template
- Layout
8 - CRUD
- Encore un blog
- Les 7 actions conventionnelles
- Index
- Show
- Query string
- Delete
- Conclusion temporaire
9 - CRUD (suite)
- new
- Formulaire web
- create
- edit & update
- Champ caché
- Avec ou sans slash ?
- Avant d’en finir
- Conclusion
10 - Les assets (CSS, JavaScript, images)
- Définition
- CSS
- JavaScript
- Les images
- Inclure plusieurs fichiers
- Conclusion
11 - 500, 404 et favicon
- Le dossier public
- robots.txt
- Erreur 500
- Erreur 404
- Favicon
- Comment rafraîchir un @!$$#@ de favicon !
12 - Templates partiels
- Partager un partiel entre plusieurs templates
- Lonesome operator &.
- Un partiel dans le layout principal
- Envoyer de l’information au template principal
13 - Notice
- De quoi parle-t-on ?
- D’abord la surface des choses
- Un premier essai de création
- Une session pour la mémoire
- Une classe Notice
- Conclusion
14 - Un DSL pour les routes
- Un DSL, c’est quoi ?
- Une version super simple mais controversée
- Is eval evil?
- Une seconde version
- Variables de classe
- Conclusion
- Partie II : Éléments avancés d’un framework web
15 - La base de données Postgresql
- Installation
- Configuration
- Création de la base de données
- Création de la table posts
- Utiliser Postgresql dans notre framework
- Vers un framework multi base
- Conclusion
16 - Déploiement sur Heroku
- PaaS
- Avant de continuer
- Création d’une application sur Heroku
- Première tentative de déploiement
- Création de la table posts
- Conclusion
17 - Migrations
- Introduction
- Une première migration
- Ajouter une seconde migration
18 - Middlewares Rack
- Introduction
- Structure d’un middleware
- TrailingSlashRemover
- humans.txt
- API switcher
- Notice
- Conclusion
19 - Le cache HTTP
- Cache HTTP ?
- Mettre en cache pour combien de temps ?
- Comment mettre en œuvre le cache HTTP ?
- Un cache HTTP par défaut
- Un cache HTTP à la demande
- À la demande ou par défaut
- Conclusion
20 - Des logs
- Log des requêtes HTTP
- Un log pour la base de données
- Log personnalisé
- Conclusion
21 - Autres moteurs de template (HAML, markaby, liquid)
- Introduction
- HAML
- Markaby
- Liquid
- Conclusion
22 - API (JSON, XML)
- Les citations de Pulp Fiction
- Expérimentons !
- Mise à jour des données
- Vers un framework «API friendly»
- La gestion des erreurs
- Et XML dans tout ça ?
- Conclusion
23 - Environnements
- Introduction
- Rechargement automatique
- Logs
- Base de données
- CSS
24 - Un générateur
- Rake et les arguments
- Création des 7 actions
- Écriture du fichier
- Avec des actions personnalisées
- shift
- custom
- Conclusion
- Partie III : Un exemple d’application
25 - Présentation de l’application
- Introduction
- Les APIs externes utilisées
- Notre framework
26 - Un backend/API
- Création des fichiers de base
- Création d’un User
- Création d’une collection
- Visualiser un user
- Lister les collections
- Supprimer une collection
- Parlons un petit peu de sécurité quand même
- Boostrap des gifs
- Lister les gifs d’une collection
- Un gif au hasard avec Giphy
- Ajout de l’API Tenor
- Variables d’environnement
- http://thecatapi.com/docs.html
- Les erreurs
- Déploiement en production
- Conclusion
27 - Un frontend
- Introduction
- Connexion
- Liste des murs
- Identification de l’utilisateur
- CSS
- Créer un mur
- Afficher le contenu d’un mur
- Menu
- Supprimer un mur
- Ajouter un gif
- Supprimer un gif
- Notice
- JavaScript
- Si vous ne connaissez pas JavaScript
- Si vous ne connaissez pas JavaScript II
- Si vous ne connaissez pas JavaScript III