rublox 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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