Sha256: 75e78116fcc80e6b3066b7846fc9ba2ac3f7275f9ef02de93162ab98445952df

Contents?: true

Size: 1.33 KB

Versions: 26

Compression:

Stored size: 1.33 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
    
    
    ##
    # 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

26 entries across 26 versions & 8 rubygems

Version Path
al-facebooker-1.0.9 lib/facebooker/models/group.rb
cwninja-facebooker-1.0.8 lib/facebooker/models/group.rb
djanowski-facebooker-1.0.1 lib/facebooker/models/group.rb
djanowski-facebooker-1.0.10 lib/facebooker/models/group.rb
djanowski-facebooker-1.0.11 lib/facebooker/models/group.rb
djanowski-facebooker-1.0.12 lib/facebooker/models/group.rb
djanowski-facebooker-1.0.2 lib/facebooker/models/group.rb
djanowski-facebooker-1.0.4 lib/facebooker/models/group.rb
djanowski-facebooker-1.0.7 lib/facebooker/models/group.rb
djanowski-mmangino-facebooker-1.0.4 lib/facebooker/models/group.rb
hashrocket-clearance-0.4.0 test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/group.rb
hashrocket-clearance-0.4.1 test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/group.rb
hashrocket-clearance-0.4.2 test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/group.rb
hashrocket-clearance-0.4.3 test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/group.rb
mmangino-facebooker-1.0.10 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.11 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.12 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.2 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.3 lib/facebooker/models/group.rb
mmangino-facebooker-1.0.4 lib/facebooker/models/group.rb