Module: Goodreads::Reviews

Included in:
Client
Defined in:
lib/goodreads/client/reviews.rb

Instance Method Summary collapse

Instance Method Details

#recent_reviews(params = {}) ⇒ Object

Recent reviews from all members.

params - Select only non-cropped reviews



7
8
9
10
11
12
13
14
# File 'lib/goodreads/client/reviews.rb', line 7

def recent_reviews(params = {})
  skip_cropped = params.delete(:skip_cropped) || false
  data = request("/review/recent_reviews", params)
  return unless data["reviews"] && data["reviews"].key?("review")
  reviews = data["reviews"]["review"].map { |r| Hashie::Mash.new(r) }
  reviews = reviews.select { |r| !r.body.include?(r.url) } if skip_cropped
  reviews
end

#review(id) ⇒ Object

Get review details



18
19
20
21
# File 'lib/goodreads/client/reviews.rb', line 18

def review(id)
  data = request("/review/show", id: id)
  Hashie::Mash.new(data["review"])
end

#reviews(params = {}) ⇒ Object

Get list of reviews



25
26
27
28
29
30
31
32
33
# File 'lib/goodreads/client/reviews.rb', line 25

def reviews(params = {})
  data = request("/review/list", params.merge(v: "2"))
  reviews = data["reviews"]["review"]
  if reviews.present?
    reviews.map { |review| Hashie::Mash.new(review) }
  else
    []
  end
end