Skip to content

Commit be61cae

Browse files
committed
Add Book model as PORO
1 parent e2ed3be commit be61cae

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

app/models/book.rb

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
class Book
2+
attr_reader :title, :filename
3+
DIR_PATH = 'app/views/books'
4+
5+
def initialize(title, filename)
6+
@title = title
7+
@filename = filename
8+
end
9+
10+
class << self
11+
def all
12+
Dir.glob("#{DIR_PATH}/*").sort
13+
end
14+
15+
def find(title)
16+
Dir.glob("#{DIR_PATH}/#{title}/*.html.erb").sort.map do |filename|
17+
self.new(title, File.basename(filename, '.*'))
18+
end
19+
end
20+
21+
def exist?(title, filename)
22+
self.find(title).map(&:filename).include?(filename)
23+
end
24+
end
25+
26+
def path
27+
"#{DIR_PATH}/#{self.title}/#{self.filename}"
28+
end
29+
30+
def exist?
31+
Book.find(self.title).map(&:filename).include?(self.filename)
32+
end
33+
end

0 commit comments

Comments
 (0)