Class: SteamGroup
- Inherits:
-
Object
- Object
- SteamGroup
- Defined in:
- lib/steam/community/steam_group.rb
Overview
The SteamGroup class represents a group in the Steam Community
Instance Attribute Summary collapse
-
#custom_url ⇒ String
readonly
Returns the custom URL of this group.
-
#group_id64 ⇒ Fixnum
readonly
Returns this group’s 64bit SteamID.
Attributes included from Cacheable
Instance Method Summary collapse
-
#base_url ⇒ String
Returns the base URL for this group’s page.
-
#fetch ⇒ Object
Loads the members of this group.
-
#initialize(id, fetch = true, bypass_cache = false) ⇒ SteamGroup
constructor
Creates a new ‘SteamGroup` instance for the group with the given ID.
-
#member_count ⇒ Fixnum
Returns the number of members this group has.
-
#members ⇒ Array<SteamId>
Returns the members of this group.
Methods included from XMLData
Methods included from Cacheable
Constructor Details
#initialize(id, fetch = true, bypass_cache = false) ⇒ SteamGroup
Creates a new ‘SteamGroup` instance for the group with the given ID
39 40 41 42 43 44 45 46 |
# File 'lib/steam/community/steam_group.rb', line 39 def initialize(id) if id.is_a? Numeric @group_id64 = id else @custom_url = id.downcase end @members = [] end |
Instance Attribute Details
#custom_url ⇒ String (readonly)
Returns the custom URL of this group
The custom URL is a admin specified unique string that can be used instead of the 64bit SteamID as an identifier for a group.
27 28 29 |
# File 'lib/steam/community/steam_group.rb', line 27 def custom_url @custom_url end |
#group_id64 ⇒ Fixnum (readonly)
Returns this group’s 64bit SteamID
32 33 34 |
# File 'lib/steam/community/steam_group.rb', line 32 def group_id64 @group_id64 end |
Instance Method Details
#base_url ⇒ String
Returns the base URL for this group’s page
This URL is different for groups having a custom URL.
53 54 55 56 57 58 59 |
# File 'lib/steam/community/steam_group.rb', line 53 def base_url if @custom_url.nil? "http://steamcommunity.com/gid/#@group_id64" else "http://steamcommunity.com/groups/#@custom_url" end end |
#fetch ⇒ Object
Loads the members of this group
This might take several HTTP requests as the Steam Community splits this data over several XML documents if the group has lots of members.
67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/steam/community/steam_group.rb', line 67 def fetch if @member_count.nil? || @member_count == @members.size page = 0 else page = 1 end begin total_pages = fetch_page(page += 1) end while page < total_pages end |
#member_count ⇒ Fixnum
Returns the number of members this group has
If the members have already been fetched the size of the member array is returned. Otherwise the the first page of the member listing is fetched and the member count and the first batch of members is stored.
86 87 88 89 90 91 92 93 |
# File 'lib/steam/community/steam_group.rb', line 86 def member_count if @member_count.nil? total_pages = fetch_page(1) @fetch_time = Time.now if total_pages == 1 end @member_count end |
#members ⇒ Array<SteamId>
Returns the members of this group
If the members haven’t been fetched yet, this is done now.
101 102 103 104 |
# File 'lib/steam/community/steam_group.rb', line 101 def members fetch if @members.size != @member_count @members end |