rublox 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,60 +1,60 @@
1
- # frozen_string_literal: true
2
-
3
- require "rublox/models/group_shout"
4
- require "rublox/models/limited_user"
5
- require "rublox/derive/group"
6
-
7
- module Rublox
8
- # @note This class is handled internally by the public interface such as
9
- # {Client#group_from_id}. You should not be creating it yourself.
10
- # The {FullGroup} class corresponds to a full group response you can get via
11
- # https://groups.roblox.com/v1/groups/groupId. You can use it to get information
12
- # about groups.
13
- #
14
- # See {Group} for methods you can call on groups!
15
- class FullGroup
16
- include Group
17
-
18
- # @return [Integer] the group's ID
19
- attr_reader :id
20
-
21
- # @return [String] the group's name
22
- attr_reader :name
23
-
24
- # @return [String] the group's description
25
- attr_reader :description
26
-
27
- # @return [LimitedUser, nil] the group's owner, can be nil if the group has
28
- # no owner
29
- attr_reader :owner
30
-
31
- # @return [GroupShout, nil] the group's shout, can be nil if the group has
32
- # no shout
33
- attr_reader :shout
34
-
35
- # @return [Integer] the count of how many members the group has
36
- attr_reader :member_count
37
-
38
- # @return [true, false] is the group locked?
39
- attr_reader :locked
40
-
41
- # @return [true, false] is the group private/invite only?
42
- attr_reader :private
43
-
44
- # @param data [Hash]
45
- # @param client [Client]
46
- def initialize(data, client)
47
- @id = data["id"]
48
- @name = data["name"]
49
- @description = data["description"]
50
- @owner = LimitedUser.new(data["owner"], client) if data["owner"]
51
- @shout = GroupShout.new(data["shout"], client, @id) if data["shout"]
52
- @member_count = data["memberCount"]
53
- # isLocked is only returned if the group is locked, else it is just null (awesome)
54
- @locked = !data["isLocked"].nil?
55
- @private = data["publicEntryAllowed"]
56
-
57
- @client = client
58
- end
59
- end
60
- end
1
+ # frozen_string_literal: true
2
+
3
+ require "rublox/models/group_shout"
4
+ require "rublox/models/limited_user"
5
+ require "rublox/derive/group"
6
+
7
+ module Rublox
8
+ # @note This class is handled internally by the public interface such as
9
+ # {Client#group_from_id}. You should not be creating it yourself.
10
+ # The {FullGroup} class corresponds to a full group response you can get via
11
+ # https://groups.roblox.com/v1/groups/groupId. You can use it to get information
12
+ # about groups.
13
+ #
14
+ # See {Group} for methods you can call on groups!
15
+ class FullGroup
16
+ include Group
17
+
18
+ # @return [Integer] the group's ID
19
+ attr_reader :id
20
+
21
+ # @return [String] the group's name
22
+ attr_reader :name
23
+
24
+ # @return [String] the group's description
25
+ attr_reader :description
26
+
27
+ # @return [LimitedUser, nil] the group's owner, can be nil if the group has
28
+ # no owner
29
+ attr_reader :owner
30
+
31
+ # @return [GroupShout, nil] the group's shout, can be nil if the group has
32
+ # no shout
33
+ attr_reader :shout
34
+
35
+ # @return [Integer] the count of how many members the group has
36
+ attr_reader :member_count
37
+
38
+ # @return [true, false] is the group locked?
39
+ attr_reader :locked
40
+
41
+ # @return [true, false] is the group private/invite only?
42
+ attr_reader :private
43
+
44
+ # @param data [Hash]
45
+ # @param client [Client]
46
+ def initialize(data, client)
47
+ @id = data["id"]
48
+ @name = data["name"]
49
+ @description = data["description"]
50
+ @owner = LimitedUser.new(data["owner"], client) if data["owner"]
51
+ @shout = GroupShout.new(data["shout"], client, @id) if data["shout"]
52
+ @member_count = data["memberCount"]
53
+ # isLocked is only returned if the group is locked, else it is just null (awesome)
54
+ @locked = !data["isLocked"].nil?
55
+ @private = data["publicEntryAllowed"]
56
+
57
+ @client = client
58
+ end
59
+ end
60
+ end
@@ -1,49 +1,49 @@
1
- # frozen_string_literal: true
2
-
3
- require "time"
4
-
5
- require "rublox/derive/user"
6
-
7
- module Rublox
8
- # @note This class is handled internally by the public interface such as
9
- # {Client#user_from_id}. You should not be creating it yourself.
10
- # The {FullUser} class corresponds to a full user response you can get via
11
- # https://users.roblox.com/v1/users/userId. You can use it to get information
12
- # about users.
13
- #
14
- # See {User} for methods you can call on users!
15
- class FullUser
16
- include User
17
-
18
- # @return [Integer] the user's ID
19
- attr_reader :id
20
-
21
- # @return [String] the user's username
22
- attr_reader :username
23
-
24
- # @return [String] the user's display name
25
- attr_reader :display_name
26
-
27
- # @return [String] the user's profile description
28
- attr_reader :description
29
-
30
- # @return [true, false] is the user banned?
31
- attr_reader :banned
32
-
33
- # @return [Time] the user's join date
34
- attr_reader :join_date
35
-
36
- # @param data [Hash]
37
- # @param client [Client]
38
- def initialize(data, client)
39
- @id = data["id"]
40
- @username = data["name"]
41
- @display_name = data["displayName"]
42
- @description = data["description"]
43
- @banned = data["banned"]
44
- @join_date = Time.iso8601(data["created"])
45
-
46
- @client = client
47
- end
48
- end
49
- end
1
+ # frozen_string_literal: true
2
+
3
+ require "time"
4
+
5
+ require "rublox/derive/user"
6
+
7
+ module Rublox
8
+ # @note This class is handled internally by the public interface such as
9
+ # {Client#user_from_id}. You should not be creating it yourself.
10
+ # The {FullUser} class corresponds to a full user response you can get via
11
+ # https://users.roblox.com/v1/users/userId. You can use it to get information
12
+ # about users.
13
+ #
14
+ # See {User} for methods you can call on users!
15
+ class FullUser
16
+ include User
17
+
18
+ # @return [Integer] the user's ID
19
+ attr_reader :id
20
+
21
+ # @return [String] the user's username
22
+ attr_reader :username
23
+
24
+ # @return [String] the user's display name
25
+ attr_reader :display_name
26
+
27
+ # @return [String] the user's profile description
28
+ attr_reader :description
29
+
30
+ # @return [true, false] is the user banned?
31
+ attr_reader :banned
32
+
33
+ # @return [Time] the user's join date
34
+ attr_reader :join_date
35
+
36
+ # @param data [Hash]
37
+ # @param client [Client]
38
+ def initialize(data, client)
39
+ @id = data["id"]
40
+ @username = data["name"]
41
+ @display_name = data["displayName"]
42
+ @description = data["description"]
43
+ @banned = data["banned"]
44
+ @join_date = Time.iso8601(data["created"])
45
+
46
+ @client = client
47
+ end
48
+ end
49
+ end
@@ -1,54 +1,54 @@
1
- # frozen_string_literal: true
2
-
3
- module Rublox
4
- # @note This class is handled internally by the public interface such as
5
- # such as {Group#member_by_user}. You should not be creating it yourself.
6
- # The {GroupMember} class corresponds to a member response, which contains
7
- # information about the user, their role and group.
8
- class GroupMember
9
- # @return [LimitedUser] the user object tied to this member
10
- attr_reader :user
11
-
12
- # @return {GroupRole} the role object tied to this member
13
- attr_reader :role
14
-
15
- # @return [FullGroup] the group object tied to this member
16
- attr_reader :group
17
-
18
- # @param user [FullUser, LimitedUser]
19
- # @param role [GroupRole]
20
- # @param group [FullGroup]
21
- # @param client [Client]
22
- def initialize(user, role, group, client)
23
- @user = user
24
- @role = role
25
- @group = group
26
- @client = client
27
- end
28
-
29
- # @note Use this if you need the state of the member changed. If you only
30
- # want the role's state updated without updating the member's state, use
31
- # {GroupRole#refresh}
32
- # @example
33
- # client = Rublox::Client.new
34
- # group = client.group_from_id(7384468)
35
- # member = group.member_by_id(1)
36
- # puts member.role.rank # -> 1
37
- # # Assume Roblox now has the Owner role
38
- # updated_member = member.refresh_role
39
- # puts updated_member.role.rank # -> 255
40
- # @return [GroupMember] a new {GroupMember} with a new {#role}, if it has been changed.
41
- def refresh_role
42
- data = @client.http_client.get(
43
- URL.endpoint("groups", "/v2/users/#{@user.id}/groups/roles")
44
- )["data"].find { |role| role["group"]["id"] == @group.id }
45
-
46
- GroupMember.new(
47
- @user,
48
- GroupRole.new(data["role"], @group, @client),
49
- @group,
50
- @client
51
- )
52
- end
53
- end
54
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Rublox
4
+ # @note This class is handled internally by the public interface such as
5
+ # such as {Group#member_by_user}. You should not be creating it yourself.
6
+ # The {GroupMember} class corresponds to a member response, which contains
7
+ # information about the user, their role and group.
8
+ class GroupMember
9
+ # @return [LimitedUser] the user object tied to this member
10
+ attr_reader :user
11
+
12
+ # @return {GroupRole} the role object tied to this member
13
+ attr_reader :role
14
+
15
+ # @return [FullGroup] the group object tied to this member
16
+ attr_reader :group
17
+
18
+ # @param user [FullUser, LimitedUser]
19
+ # @param role [GroupRole]
20
+ # @param group [FullGroup]
21
+ # @param client [Client]
22
+ def initialize(user, role, group, client)
23
+ @user = user
24
+ @role = role
25
+ @group = group
26
+ @client = client
27
+ end
28
+
29
+ # @note Use this if you need the state of the member changed. If you only
30
+ # want the role's state updated without updating the member's state, use
31
+ # {GroupRole#refresh}
32
+ # @example
33
+ # client = Rublox::Client.new
34
+ # group = client.group_from_id(7384468)
35
+ # member = group.member_by_id(1)
36
+ # puts member.role.rank # -> 1
37
+ # # Assume Roblox now has the Owner role
38
+ # updated_member = member.refresh_role
39
+ # puts updated_member.role.rank # -> 255
40
+ # @return [GroupMember] a new {GroupMember} with a new {#role}, if it has been changed.
41
+ def refresh_role
42
+ data = @client.http_client.get(
43
+ URL.endpoint("groups", "/v2/users/#{@user.id}/groups/roles")
44
+ )["data"].find { |role| role["group"]["id"] == @group.id }
45
+
46
+ GroupMember.new(
47
+ @user,
48
+ GroupRole.new(data["role"], @group, @client),
49
+ @group,
50
+ @client
51
+ )
52
+ end
53
+ end
54
+ end