Il est souvent utile d'abstraire une fonctionnalité dans une classe en Ruby. Cela peut aller d'un simple objet de service pour réaliser une série d'actions sur un ou plusieurs objets à un client pour une API.
Nous allons voir par l’exemple dans cet article comment définir un client pour un service (nous utiliserons Redis) et l’utiliser dans une classe Ruby. Nous ferons en sorte de pouvoir configurer le client lors d'une phase d'initialisation, puis nous verrons comment utiliser le client.
1. Le décor
Commençons avec le Gemfile :
Comme nous allons faire un client Redis, il nous faut une librairie pour parler avec Redis. Notre client agira en abstraction supplémentaire, par-dessus le client Redis de base.Nous allons aussi suivre un processus TDD (Test Driven Development), donc il nous faut Rspec :
Il nous faudra aussi une instance de Redis. Pour faire simple, nous pouvons utiliser un container Docker redis. Voici un docker-compose.yml prêt à l'emploi :
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première