class ARBookFinder::Book
Attributes
ar_points[R]
ar_quiz_availability[R]
ar_quiz_number[R]
atos_book_level[R]
cover[R]
interest_level[R]
language[R]
publishers[R]
rating[R]
series[R]
summary[R]
title[R]
topics[R]
type[R]
url[R]
word_count[R]
Public Class Methods
new(url)
click to toggle source
# File lib/ar_book_finder/book.rb, line 11 def initialize(url) @url = url @publishers = [] end
Public Instance Methods
fetch()
click to toggle source
# File lib/ar_book_finder/book.rb, line 16 def fetch BookDetailProcessor.new(@url).process load(BookDetailParser.new(Capybara.page.html).parse) self end
Private Instance Methods
load(parsed_data)
click to toggle source
# File lib/ar_book_finder/book.rb, line 23 def load(parsed_data) parsed_data.keys.each do |k| instance_variable_set("@#{k}", parsed_data[k]) unless [:ar_quiz_availability, :topics, :series, :publishers].include?(k) end load_ar_quiz_availability(parsed_data[:ar_quiz_availability]) load_topics(parsed_data[:topics]) load_series(parsed_data[:series]) load_publishers(parsed_data[:publishers]) end
load_ar_quiz_availability(ar_quiz_availability)
click to toggle source
# File lib/ar_book_finder/book.rb, line 37 def load_ar_quiz_availability(ar_quiz_availability) @ar_quiz_availability = ar_quiz_availability.split(',').collect { |v| v.strip.gsub(' ', '') } end
load_publishers(publishers)
click to toggle source
# File lib/ar_book_finder/book.rb, line 51 def load_publishers(publishers) publishers.each { |p| @publishers << Publisher.new(p) } end
load_series(series)
click to toggle source
# File lib/ar_book_finder/book.rb, line 47 def load_series(series) @series = series.split(';').collect { |v| v.strip } end
load_topics(topics)
click to toggle source
# File lib/ar_book_finder/book.rb, line 41 def load_topics(topics) @topics = topics.split(';').collect do |topic| topic.split('-').collect { |v| v.strip } end end