Module: Rublox

Defined in:
lib/rublox.rb,
lib/rublox/derive/user.rb,
lib/rublox/util/errors.rb,
lib/rublox/derive/group.rb,
lib/rublox/derive/model.rb,
lib/rublox/bases/base_user.rb,
lib/rublox/models/presence.rb,
lib/rublox/util/api_helper.rb,
lib/rublox/bases/base_group.rb,
lib/rublox/models/full_user.rb,
lib/rublox/models/full_group.rb,
lib/rublox/models/group_shout.rb,
lib/rublox/models/skinny_user.rb

Overview

rublox is a Roblox web API wrapper written in Ruby. It aims to provide an object oriented interface to get and modify data from Roblox’s web API. Docs: rubydoc.info/gems/rublox

Defined Under Namespace

Modules: APIHelper, Bases, Derive, Errors, Models

Class Method Summary collapse

Class Method Details

.authenticated_userModels::SkinnyUser

Returns the current authenticated user.

Returns:



22
23
24
# File 'lib/rublox.rb', line 22

def self.authenticated_user
  Models::SkinnyUser.new(APIHelper.get("https://users.roblox.com/v1/users/authenticated"))
end

.base_group(id) ⇒ Bases::BaseUser

Returns:



68
69
70
# File 'lib/rublox.rb', line 68

def self.base_group(id)
  Bases::BaseGroup.new(id)
end

.base_user(id) ⇒ Bases::BaseUser

Returns:



27
28
29
# File 'lib/rublox.rb', line 27

def self.base_user(id)
  Bases::BaseUser.new(id)
end

.group_from_id(id) ⇒ Models::FullGroup

Returns:



73
74
75
76
77
78
79
# File 'lib/rublox.rb', line 73

def self.group_from_id(id)
  Models::FullGroup.new(APIHelper.get("https://groups.roblox.com/v1/groups/#{id}"))
rescue Errors::UnhandledStatusCodeError => e
  raise Errors::GroupNotFoundError, cause: nil if e.response.status == 400

  raise
end

.roblosecurity=(roblosecurity) ⇒ nil

Sets the .ROBLOSECURITY cookie to send authenticated requests

Returns:

  • (nil)


17
18
19
# File 'lib/rublox.rb', line 17

def self.roblosecurity=(roblosecurity)
  APIHelper.roblosecurity = roblosecurity
end

.user_from_id(id) ⇒ Models::FullUser

Returns:



32
33
34
35
36
37
38
# File 'lib/rublox.rb', line 32

def self.user_from_id(id)
  Models::FullUser.new(APIHelper.get("https://users.roblox.com/v1/users/#{id}"))
rescue Errors::UnhandledStatusCodeError => e
  raise Errors::UserNotFoundError, cause: nil if e.response.status == 404

  raise
end

.user_from_username(username, exclude_banned_users: false) ⇒ Models::SkinnyUser

Returns:



63
64
65
# File 'lib/rublox.rb', line 63

def self.user_from_username(username, exclude_banned_users: false)
  users_from_usernames([username], exclude_banned_users: exclude_banned_users)[0] or raise Errors::UserNotFoundError
end

.user_presence_from_id(id) ⇒ Models::Presence

Returns:



94
95
96
# File 'lib/rublox.rb', line 94

def self.user_presence_from_id(id)
  user_presences_from_ids([id])[0]
end

.user_presences_from_ids(ids) ⇒ Array<Models::Presence>

Returns:



82
83
84
85
86
87
88
89
90
91
# File 'lib/rublox.rb', line 82

def self.user_presences_from_ids(ids)
  APIHelper.post(
    "https://presence.roblox.com/v1/presence/users",
    json: { userIds: ids }
  )["userPresences"].map { |data| Models::Presence.new(data) }
rescue Errors::UnhandledStatusCodeError => e
  raise Errors::PresenceRequestError, cause: nil if e.response.status == 400

  raise
end

.users_from_ids(ids, exclude_banned_users: false) ⇒ Array<Models::SkinnyUser>

Returns:



41
42
43
44
45
46
47
48
49
# File 'lib/rublox.rb', line 41

def self.users_from_ids(ids, exclude_banned_users: false)
  APIHelper.post(
    "https://users.roblox.com/v1/users",
    json: {
      userIds: ids,
      excludeBannedUsers: exclude_banned_users
    }
  )["data"].map { |data| Models::SkinnyUser.new(data) }
end

.users_from_usernames(usernames, exclude_banned_users: false) ⇒ Array<Models::SkinnyUser>

Returns:



52
53
54
55
56
57
58
59
60
# File 'lib/rublox.rb', line 52

def self.users_from_usernames(usernames, exclude_banned_users: false)
  APIHelper.post(
    "https://users.roblox.com/v1/usernames/users",
    json: {
      usernames: usernames,
      excludeBannedUsers: exclude_banned_users
    }
  )["data"].map { |data| Models::SkinnyUser.new(data) }
end