Je dispose d'un fichier YAML books.yaml
:Comment rechercher un fichier YAML?
- !ruby.object:Book
title: Ruby for Newbz
author: LeeRoy Jenkins
category: Educational
J'ai déjà une méthode qui ajoute des livres à ce dossier, mais je besoin d'une méthode qui permet de rechercher le fichier YAML en utilisant une expression régulière. Si aucun livre ne correspond au titre, il devrait déclencher une exception NoBookfound
. S'il existe des correspondances, cette liste doit être renvoyée à l'appelant.
Voici mon code existant:
require 'yaml'
require './book'
class Library
attr_accessor :books
def initialize file_name = false
@books = file_name ? YAML::load(File.read(file_name)) : []
end
def add_book(book)
@books.push(book)
end
def search_library(file_name , book)
if
YAML::load(File.read(file_name)).include?(book) == false
raise 'No Book Found'
end
end
end
C'est quelque chose que j'ai essayé pour la partie d'exception, mais je sens que je suis loin. Je suis vraiment nouveau à Ruby et cela semble être une tâche assez difficile. Quelqu'un a-t-il une idée?
En fait, 'file_name' se réfère au fichier YAML et il y a une classe séparée du livre initialisant juste les trois descripteurs' '@ title' @ author' et' @ category' –
Oui, je l'ai, mais Je pense que c'est un peu déroutant si vous chargez le fichier deux fois. Non, pour ne pas mentionner que vous allez perdre tous les objets de la méthode add_book. Si vous voulez garder le nom de fichier, je pense que ce serait mieux si vous faites de cette méthode statique: def self.search_library (nom de fichier, terme) ... –
Je vois ce que vous dites, mon instructeur l'a également souligné. Merci pour l'aide! –