Sha256: 57966e84284e45b8eeb59e3d17a7a8e3aa01851dd5a7a94e2cfd38ff4db10b8f

Contents?: true

Size: 1.84 KB

Versions: 4

Compression:

Stored size: 1.84 KB

Contents

unless typeof define is 'function' and define.amd
  module = @GooglePlus ||= {}
  @define = (name, deps, callback) ->
    module.Reader = callback(jQuery)

define 'googleplus.reader', ['jquery'], ($) ->
  class
    constructor: (options) ->
      @id = options.id
      @key = options.key
      @reset()

    reset: ->
      @token = null
      @collection = []
      @position = 0
      return

    find: (id) ->
      deferred = $.Deferred()

      @get(id)
        .done (result) =>
          deferred.resolve(@process([result]))
          return

        .fail (details...) =>
          deferred.reject(details...)
          return

      deferred.promise()

    next: (count) ->
      deferred = $.Deferred()

      nextPosition = @position + count

      if nextPosition <= @collection.length
        elements = @collection.slice(@position, nextPosition)
        @position = nextPosition
        deferred.resolve(elements)

      else
        @list()
          .done (result) =>
            @collection.push(item) for item in @process(result.items)
            nextPosition = Math.min(nextPosition, @collection.length)
            elements = @collection.slice(@position, nextPosition)
            @position = nextPosition
            deferred.resolve(elements)
            return

          .fail (details...) =>
            deferred.reject(details...)
            return

      deferred.promise()

    get: (id) ->
      url = "https://www.googleapis.com/plus/v1/activities/#{id}?key=#{@key}"
      $.ajax(url: url, crossDomain: true, dataType: 'jsonp')

    list: ->
      url = "https://www.googleapis.com/plus/v1/people/#{@id}/activities/public?key=#{@key}"
      url = "#{url}&pageToken=#{@token}" if @token
      $.ajax(url: url, crossDomain: true, dataType: 'jsonp').done (result) =>
        @token = result.nextPageToken
        return

    process: (items) ->
      items

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
googleplus-reader-0.2.0 lib/assets/javascripts/googleplus.reader.js.coffee
googleplus-reader-0.1.0 lib/assets/javascripts/googleplus.reader.js.coffee
googleplus-reader-0.0.7 lib/assets/javascripts/googleplus.reader.js.coffee
googleplus-reader-0.0.6 lib/assets/javascripts/googleplus.reader.js.coffee