Sha256: 88a9d0a1d277c5f26b70269e917a01108b2d73a6041b9bb57cac02ba8e9677d6
Contents?: true
Size: 1 KB
Versions: 16
Compression:
Stored size: 1 KB
Contents
module PhraseApp module InContextEditor class ApiCollection def initialize(api_client, action, ids=[], query=nil) raise "PhraseApp API client can't handle action #{action}" unless api_client.respond_to?(action) @api_client = api_client @action = action @ids = ids @query = query end def collection results = [] page = 1 per_page = 100 paginated, err = send_request(page, per_page) results << paginated while paginated.size == per_page break if page > 100 page = page + 1 paginated, err = send_request(page, per_page) results << paginated if paginated.present? end results.flatten.uniq end private def send_request(page, per_page) if @query.present? @api_client.send(@action, *@ids, page, per_page, @query) else @api_client.send(@action, *@ids, page, per_page) end end end end end
Version data entries
16 entries across 16 versions & 1 rubygems