Sha256: ff082dabc0c616fae5616629e00ae98cd23bc88bcbcf407f5f25b4d5f51e4176

Contents?: true

Size: 1.34 KB

Versions: 27

Compression:

Stored size: 1.34 KB

Contents

require 'facebooker/model'
module Facebooker
  class Group
    ##
    # The model of a user's relationship to a group.  Users can occupy different positions within a group (e.g. 'owner')
    class Membership
      include Model
      attr_accessor :position, :gid, :uid
    end
    include Model
    attr_accessor :pic, :pic_small, :pic_big, :name, :creator, :recent_news, :gid, :update_time, :group_subtype, :group_type, :website, :office, :description, :venue, :nid
    
    id_is :gid
    
    ##
    # Get the full list of members as populated User objects.  First time fetches group members via Facebook API call.  
    # Subsequent calls return cached values.
    # This is a convenience method for getting all of the Membership instances and instantiating User instances for each Membership.
    def members
      @members ||= memberships.map do |membership|
        User.new(membership.uid, session)
      end
    end
    
    ##
    # Get a list of Membership instances associated with this Group.  First call retrieves the Membership instances via a Facebook
    # API call.  Subsequent calls are retrieved from in-memory cache.
    def memberships
      @memberships ||= session.post('facebook.groups.getMembers', :gid => gid).map do |hash|
        Membership.from_hash(hash) do |membership|
          membership.gid = gid
        end
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 6 rubygems

Version Path
al-facebooker-1.0.12.1 lib/facebooker/models/group.rb
al-facebooker-1.0.12 lib/facebooker/models/group.rb
corey-facebooker-1.0.28.1 lib/facebooker/models/group.rb
mborromeo-facebooker-1.0.28 lib/facebooker/models/group.rb
mborromeo-facebooker-1.0.29 lib/facebooker/models/group.rb
mborromeo-facebooker-1.0.30 lib/facebooker/models/group.rb
mborromeo-facebooker-1.0.31 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.13 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.14 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.15 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.16 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.19 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.20 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.21 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.22 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.23 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.24 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.25 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.26 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.27 lib/facebooker/models/group.rb