我有一个 YAML 文件books.yaml
:
- !ruby.object:Book
title: Ruby for Newbz
author: LeeRoy Jenkins
category: Educational
我已经有一个向这个文件添加书籍的方法,但我需要一个可以使用正则表达式搜索 YAML 文件的方法。如果没有书与标题匹配,那么它应该引发异常NoBookfound
。如果有任何匹配项,则应将该列表返回给调用者。
这是我现有的代码:
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
这是我为异常部分尝试的东西,但我觉得我很遥远。我对 Ruby 真的很陌生,这似乎是一项非常艰巨的任务。有没有人有任何想法?