我有一個YAML文件books.yaml
:如何搜索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真的很陌生,這似乎是一個相當艱鉅的任務。有沒有人有任何想法?
事實上,'file_name'指YAML文件並沒有,只是初始化三個描述'@ title''@ author'一個單獨的書類和'@ category' –
是的,我知道了,但如果您加載文件兩次,我認爲這有點令人困惑。不要提,你將失去所有來自add_book方法的對象。如果你想保留file_name,我認爲這樣做會更好,如果你使這個方法是靜態的:def self.search_library(file_name,term)... –
我明白你在說什麼,我的老師也指出了這一點。謝謝您的幫助! –