class GooglePlay
Constants
- BASE_URL
- SORT_ORDERS
- VERSION
Public Class Methods
new()
click to toggle source
# File lib/google-play.rb, line 13 def initialize @client = HTTPClient.new end
Public Instance Methods
app(id)
click to toggle source
# File lib/google-play.rb, line 17 def app(id) res = @client.get("#{GooglePlay::BASE_URL}/store/apps/details", {:id => id}) raise GooglePlay::App::NotFoundError.new("'#{id}' is not found") if res.status_code == 404 parse_app(res.content) end
reviews(id, opts = {}) { |r| ... }
click to toggle source
# File lib/google-play.rb, line 23 def reviews(id, opts = {}) page = opts[:page] || :all sort_order = opts[:sort_order] || :newest if page.is_a?(Integer) return fetch_reviews(id, page, sort_order) else all_reviews = [] i = 0 loop do reviews = fetch_reviews(id, i, sort_order) return all_reviews if (all_reviews.size > 0) and (all_reviews.last.id == reviews.last.id) if block_given? reviews.each do |r| return all_reviews unless yield(r) all_reviews << r end else all_reviews += reviews end i += 1 end return all_reviews end end
Private Instance Methods
fetch_reviews(id, page, sort_order)
click to toggle source
# File lib/google-play.rb, line 50 def fetch_reviews(id, page, sort_order) sort_order_num = GooglePlay::SORT_ORDERS.find_index { |s| sort_order == s } || 0 res = @client.post("#{GooglePlay::BASE_URL}/store/getreviews", { :id => id, :pageNum => page, :reviewSortOrder => sort_order_num, :reviewType => 1 }) html = JSON.parse(res.content.split("\n")[2] + ']')[0][2] raise GooglePlay::App::NotFoundError.new("'#{id}' is not found") if html.size == 0 parse_review(html) end