Methods
Public Class methods
[ show source ]
# File demo/lib/books.rb, line 8
8: def initialize( path )
9: @db = File.open( path ) { |file| YAML.load( file ) }
10:
11: @authors = Hash.new { |hash,key| hash[key] = Array.new }
12: @series = Hash.new { |hash,key| hash[key] = Array.new }
13: @genres = Hash.new { |hash,key| hash[key] = Array.new }
14:
15: @db[ 'books' ].each do |book|
16: auths = book[ 'author' ]
17: auths = [ auths ] unless auths.is_a? Array
18: auths.each { |author| @authors[ author ] << book }
19: @series[ book[ 'series' ] ] << book if book[ 'series' ]
20: @genres[ book[ 'genre' ] ] << book
21: end
22: end
Public Instance methods
[ show source ]
# File demo/lib/books.rb, line 36
36: def authors
37: @authors.keys
38: end
[ show source ]
# File demo/lib/books.rb, line 32
32: def books
33: @db[ 'books' ]
34: end
[ show source ]
# File demo/lib/books.rb, line 24
24: def creation_date
25: @db[ 'creation-date' ]
26: end
[ show source ]
# File demo/lib/books.rb, line 48
48: def find_book( rules )
49: @db[ 'books' ].each do |book|
50: return book if matches( book, rules )
51: end
52: nil
53: end
[ show source ]
# File demo/lib/books.rb, line 55
55: def find_books( rules )
56: books = []
57: @db[ 'books' ].each do |book|
58: books << book if matches( book, rules )
59: end
60: books
61: end
[ show source ]
# File demo/lib/books.rb, line 40
40: def genres
41: @genres.keys
42: end
[ show source ]
# File demo/lib/books.rb, line 44
44: def series
45: @series.keys
46: end
[ show source ]
# File demo/lib/books.rb, line 28
28: def updated_date
29: @db[ 'last-updated' ]
30: end