discordrb 3.5.0 → 3.6.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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.devcontainer/Dockerfile +13 -0
  3. data/.devcontainer/devcontainer.json +29 -0
  4. data/.devcontainer/postcreate.sh +4 -0
  5. data/.github/workflows/ci.yml +78 -0
  6. data/.github/workflows/codeql.yml +3 -3
  7. data/.github/workflows/deploy.yml +54 -0
  8. data/.github/workflows/release.yml +45 -0
  9. data/.rubocop.yml +52 -2
  10. data/CHANGELOG.md +95 -0
  11. data/README.md +5 -5
  12. data/discordrb-webhooks.gemspec +1 -1
  13. data/discordrb.gemspec +16 -11
  14. data/lib/discordrb/api/application.rb +84 -8
  15. data/lib/discordrb/api/channel.rb +51 -13
  16. data/lib/discordrb/api/interaction.rb +15 -6
  17. data/lib/discordrb/api/invite.rb +1 -1
  18. data/lib/discordrb/api/server.rb +96 -60
  19. data/lib/discordrb/api/user.rb +12 -2
  20. data/lib/discordrb/api/webhook.rb +20 -5
  21. data/lib/discordrb/api.rb +16 -20
  22. data/lib/discordrb/bot.rb +139 -53
  23. data/lib/discordrb/cache.rb +15 -1
  24. data/lib/discordrb/commands/command_bot.rb +7 -17
  25. data/lib/discordrb/commands/parser.rb +7 -7
  26. data/lib/discordrb/container.rb +46 -0
  27. data/lib/discordrb/data/activity.rb +1 -1
  28. data/lib/discordrb/data/application.rb +1 -0
  29. data/lib/discordrb/data/attachment.rb +23 -3
  30. data/lib/discordrb/data/avatar_decoration.rb +26 -0
  31. data/lib/discordrb/data/call.rb +22 -0
  32. data/lib/discordrb/data/channel.rb +140 -15
  33. data/lib/discordrb/data/collectibles.rb +45 -0
  34. data/lib/discordrb/data/embed.rb +10 -3
  35. data/lib/discordrb/data/emoji.rb +20 -1
  36. data/lib/discordrb/data/integration.rb +3 -0
  37. data/lib/discordrb/data/interaction.rb +164 -27
  38. data/lib/discordrb/data/member.rb +145 -28
  39. data/lib/discordrb/data/message.rb +198 -51
  40. data/lib/discordrb/data/overwrite.rb +2 -0
  41. data/lib/discordrb/data/primary_server.rb +60 -0
  42. data/lib/discordrb/data/profile.rb +2 -7
  43. data/lib/discordrb/data/reaction.rb +2 -1
  44. data/lib/discordrb/data/recipient.rb +1 -1
  45. data/lib/discordrb/data/role.rb +151 -22
  46. data/lib/discordrb/data/server.rb +115 -41
  47. data/lib/discordrb/data/server_preview.rb +68 -0
  48. data/lib/discordrb/data/snapshot.rb +110 -0
  49. data/lib/discordrb/data/user.rb +68 -8
  50. data/lib/discordrb/data/voice_region.rb +1 -0
  51. data/lib/discordrb/data/webhook.rb +2 -5
  52. data/lib/discordrb/data.rb +6 -0
  53. data/lib/discordrb/errors.rb +5 -2
  54. data/lib/discordrb/events/await.rb +1 -1
  55. data/lib/discordrb/events/channels.rb +37 -0
  56. data/lib/discordrb/events/generic.rb +2 -0
  57. data/lib/discordrb/events/guilds.rb +6 -1
  58. data/lib/discordrb/events/interactions.rb +135 -42
  59. data/lib/discordrb/events/invites.rb +2 -0
  60. data/lib/discordrb/events/members.rb +19 -2
  61. data/lib/discordrb/events/message.rb +39 -8
  62. data/lib/discordrb/events/presence.rb +2 -0
  63. data/lib/discordrb/events/raw.rb +1 -0
  64. data/lib/discordrb/events/reactions.rb +2 -0
  65. data/lib/discordrb/events/roles.rb +2 -0
  66. data/lib/discordrb/events/threads.rb +10 -6
  67. data/lib/discordrb/events/typing.rb +1 -0
  68. data/lib/discordrb/events/voice_server_update.rb +1 -0
  69. data/lib/discordrb/events/voice_state_update.rb +1 -0
  70. data/lib/discordrb/events/webhooks.rb +1 -0
  71. data/lib/discordrb/gateway.rb +29 -13
  72. data/lib/discordrb/paginator.rb +3 -3
  73. data/lib/discordrb/permissions.rb +54 -43
  74. data/lib/discordrb/version.rb +1 -1
  75. data/lib/discordrb/websocket.rb +0 -10
  76. data/lib/discordrb.rb +17 -1
  77. metadata +53 -25
  78. data/.circleci/config.yml +0 -152
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 256d58c280ec27b90dbe4c160b04853b72fede9123336085343141e4d0e6ad4a
4
- data.tar.gz: 8f4db65b7491433052cc99b1a0e633fc773efd8076edbd4ad44a5bc3ed4b5a14
3
+ metadata.gz: 22a5d0696568b896315a4a63cbd262028f24cba3406461f1f9b59764194153a5
4
+ data.tar.gz: f5f516dd8e0e25512df14ab6a8b6ce68dc326e821ac92b3d9fae9f6fa84924ea
5
5
  SHA512:
6
- metadata.gz: ed49c17ab20befc243747a942d4401b513670220d76632b796df000e9232bebd5d6f58c6ce7a1bb5a16f03d8d88ec1b2c5c6131e1ddd20784cf4b7248111a979
7
- data.tar.gz: 01fb50074b67c0bcb3c96ed2cc4e76aad57600e94fa22793c588e66c98fddd796f7a7087817b9d7926975e28e956d950ce7fd1d778e73edf26c32be49dabbedb
6
+ metadata.gz: 92fe5293a9deb5ebd253f579926ea9741835e4b019fa9cc5ae398ac3975a6d040ef611316bde03f07eabbc09cd78a468931e9e2c07a1448e5d4339cdbbbbd1b1
7
+ data.tar.gz: 456d37be600b66b43ecfa38b31d0f72113b308ebcc32f54d407f65ee6828d17b3f38ec495799eace92bc2951efcef121ad3ba572dab70bd848efd40f17293025
@@ -0,0 +1,13 @@
1
+ # Which Ruby version to use. You may need to use a more restrictive version,
2
+ # e.g. `3.0`
3
+ ARG VARIANT=3.3
4
+
5
+ # Pull Microsoft's ruby devcontainer base image
6
+ FROM mcr.microsoft.com/devcontainers/ruby:${VARIANT}
7
+
8
+ # Install libsodium dependency for voice channel interactions
9
+ RUN apt update -yq && apt install -y libsodium-dev
10
+
11
+ # Ensure we're running the latest bundler, as what ships with the Ruby image may
12
+ # not be current, and bundler will auto-downgrade to match the Gemfile.lock
13
+ RUN gem install bundler
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "Ruby",
3
+ "build": {
4
+ "dockerfile": "Dockerfile"
5
+ },
6
+
7
+ // Configure tool-specific properties.
8
+ "customizations": {
9
+ // Configure properties specific to VS Code.
10
+ "vscode": {
11
+ // Add the IDs of extensions you want installed when the container is created.
12
+ "extensions": [
13
+ "shopify.ruby-lsp"
14
+ ]
15
+ }
16
+ },
17
+
18
+ // Set the environment variables
19
+ // "runArgs": ["--env-file",".env"],
20
+
21
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
22
+ // "forwardPorts": [],
23
+
24
+ // Use 'postCreateCommand' to run commands after the container is created.
25
+ "postCreateCommand": "bash .devcontainer/postcreate.sh",
26
+
27
+ // Set `remoteUser` to `root` to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
28
+ "remoteUser": "vscode"
29
+ }
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+
3
+ bundle config set path vendor/bundle
4
+ bundle install --jobs=1
@@ -0,0 +1,78 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ jobs:
9
+ # --- Test on multiple Ruby versions ---
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ ruby: [3.2, 3.3, 3.4]
15
+ container:
16
+ image: ruby:${{ matrix.ruby }}-alpine
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - name: Install OS packages
20
+ run: apk add git build-base ruby-dev libsodium-dev
21
+ - name: Cache bundle
22
+ uses: actions/cache@v4
23
+ with:
24
+ path: vendor/bundle
25
+ key: bundle-${{ hashFiles('Gemfile', 'discordrb.gemspec') }}-${{ matrix.ruby }}
26
+ restore-keys: |
27
+ bundle-${{ matrix.ruby }}
28
+ - name: Install dependencies
29
+ run: bundle install --path vendor/bundle
30
+ - name: Run RSpec
31
+ run: |
32
+ mkdir -p rspec
33
+ bundle exec rspec --format progress --format RspecJunitFormatter -o rspec/rspec.xml
34
+ - name: Upload test results
35
+ uses: actions/upload-artifact@v4
36
+ with:
37
+ name: rspec-results-${{ matrix.ruby }}
38
+ path: rspec/rspec.xml
39
+
40
+ # --- Rubocop ---
41
+ rubocop:
42
+ runs-on: ubuntu-latest
43
+ container:
44
+ image: ruby:3.3-alpine
45
+ steps:
46
+ - uses: actions/checkout@v4
47
+ - name: Install OS packages
48
+ run: apk add git build-base ruby-dev libsodium-dev
49
+ - name: Cache bundle
50
+ uses: actions/cache@v4
51
+ with:
52
+ path: vendor/bundle
53
+ key: bundle-${{ hashFiles('Gemfile', 'discordrb.gemspec') }}-rubocop
54
+ - name: Install dependencies
55
+ run: bundle install --path vendor/bundle
56
+ - name: Run Rubocop
57
+ run: bundle exec rubocop
58
+
59
+ # --- Generate YARD docs ---
60
+ yard:
61
+ runs-on: ubuntu-latest
62
+ container:
63
+ image: ruby:3.3-alpine
64
+ steps:
65
+ - uses: actions/checkout@v4
66
+ - name: Install OS packages
67
+ run: apk add git build-base ruby-dev libsodium-dev
68
+ - name: Cache bundle
69
+ uses: actions/cache@v4
70
+ with:
71
+ path: vendor/bundle
72
+ key: bundle-${{ hashFiles('Gemfile', 'discordrb.gemspec') }}-yard
73
+ - name: Install dependencies
74
+ run: bundle install --path vendor/bundle
75
+ - name: Run YARD
76
+ run: |
77
+ mkdir -p docs
78
+ bundle exec yard --output-dir docs
@@ -33,7 +33,7 @@ jobs:
33
33
 
34
34
  # Initializes the CodeQL tools for scanning.
35
35
  - name: Initialize CodeQL
36
- uses: github/codeql-action/init@v2
36
+ uses: github/codeql-action/init@v3
37
37
  with:
38
38
  languages: ${{ matrix.language }}
39
39
  # If you wish to specify custom queries, you can do so here or in a config file.
@@ -47,7 +47,7 @@ jobs:
47
47
  # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
48
48
  # If this step fails, then you should remove it and run the build manually (see below)
49
49
  - name: Autobuild
50
- uses: github/codeql-action/autobuild@v2
50
+ uses: github/codeql-action/autobuild@v3
51
51
 
52
52
  # ℹ️ Command-line programs to run using the OS shell.
53
53
  # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -60,6 +60,6 @@ jobs:
60
60
  # ./location_of_script_within_repo/buildscript.sh
61
61
 
62
62
  - name: Perform CodeQL Analysis
63
- uses: github/codeql-action/analyze@v2
63
+ uses: github/codeql-action/analyze@v3
64
64
  with:
65
65
  category: "/language:${{matrix.language}}"
@@ -0,0 +1,54 @@
1
+ name: Deploy Docs
2
+
3
+ on:
4
+ push:
5
+ branches: [main] # deploy only on merges to main
6
+ tags:
7
+ - "v*" # deploy when a version tag (e.g., v1.0.0) is created
8
+
9
+ jobs:
10
+ deploy:
11
+ runs-on: ubuntu-latest
12
+ container:
13
+ image: ruby:3.3-alpine
14
+
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Install OS packages
19
+ run: apk add git build-base ruby-dev libsodium-dev
20
+
21
+ - name: Cache bundle
22
+ uses: actions/cache@v4
23
+ with:
24
+ path: vendor/bundle
25
+ key: bundle-${{ hashFiles('Gemfile', 'discordrb.gemspec') }}-yard
26
+
27
+ - name: Install dependencies
28
+ run: bundle install --path vendor/bundle
29
+
30
+ - name: Generate YARD documentation
31
+ run: |
32
+ mkdir -p docs
33
+ bundle exec yard --output-dir docs
34
+
35
+ - name: Determine deploy folder
36
+ id: set_folder
37
+ run: |
38
+ if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
39
+ echo "folder=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
40
+ else
41
+ echo "folder=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
42
+ fi
43
+ echo "Deploying to folder: ${{ steps.set_folder.outputs.folder }}"
44
+
45
+ - name: Deploy to GitHub Pages
46
+ uses: peaceiris/actions-gh-pages@v4
47
+ with:
48
+ github_token: ${{ secrets.GITHUB_TOKEN }}
49
+ publish_dir: docs
50
+ publish_branch: gh-pages
51
+ destination_dir: ${{ steps.set_folder.outputs.folder }}
52
+ keep_files: true
53
+ user_name: "GitHub Actions"
54
+ user_email: "ci-build@shardlab.dev"
@@ -0,0 +1,45 @@
1
+ name: Publish RubyGems + GitHub Packages
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ publish:
9
+ runs-on: ubuntu-latest
10
+ permissions:
11
+ contents: read
12
+ packages: write
13
+
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - name: Validate tag matches gemspecs
18
+ run: |
19
+ TAG_VERSION="${GITHUB_REF#refs/tags/v}"
20
+ for gemspec in *.gemspec; do
21
+ GEM_VERSION=$(ruby -e "puts Gem::Specification.load('$gemspec').version")
22
+ if [ "$TAG_VERSION" != "$GEM_VERSION" ]; then
23
+ echo "::error::$gemspec version ($GEM_VERSION) does not match tag ($TAG_VERSION)"
24
+ exit 1
25
+ fi
26
+ done
27
+
28
+ - uses: rubygems/release-gem@v1
29
+ with:
30
+ api_key: ${{ secrets.RUBYGEMS_API_KEY }}
31
+
32
+ - name: Publish to GitHub Packages
33
+ env:
34
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35
+ run: |
36
+ OWNER=$(echo "${GITHUB_REPOSITORY}" | cut -d'/' -f1)
37
+ for gemspec in *.gemspec; do
38
+ gem build "$gemspec"
39
+ done
40
+ for gem_file in *.gem; do
41
+ echo "Publishing $gem_file to GitHub Packages..."
42
+ gem push "$gem_file" \
43
+ --key github \
44
+ --host "https://rubygems.pkg.github.com/${OWNER}" || true
45
+ done
data/.rubocop.yml CHANGED
@@ -1,4 +1,4 @@
1
- require:
1
+ plugins:
2
2
  - rubocop-performance
3
3
  - rubocop-rake
4
4
 
@@ -8,7 +8,7 @@ inherit_mode:
8
8
 
9
9
  AllCops:
10
10
  NewCops: enable
11
- TargetRubyVersion: 2.7
11
+ TargetRubyVersion: 3.3
12
12
 
13
13
  # Disable line length checks
14
14
  Layout/LineLength:
@@ -66,3 +66,53 @@ Style/SingleLineBlockParams:
66
66
  Methods:
67
67
  - reduce: [m, e]
68
68
  - inject: [m, e]
69
+
70
+ ###################################
71
+ ## NEW COPS TO MAKE DECISIONS ON ##
72
+ ###################################
73
+
74
+ # TODO: Decide how you want to handle this:
75
+ # https://rubydoc.info/gems/rubocop/RuboCop/Cop/Style/HashSyntax
76
+ Style/HashSyntax:
77
+ EnforcedShorthandSyntax: either
78
+
79
+ Style/ArgumentsForwarding:
80
+ Enabled: false
81
+
82
+ Performance/StringIdentifierArgument:
83
+ Enabled: false
84
+
85
+ Style/ComparableClamp:
86
+ Enabled: false
87
+
88
+ Style/SuperArguments:
89
+ Enabled: false
90
+
91
+ Naming/BlockForwarding:
92
+ Enabled: false
93
+
94
+ Style/RedundantSelfAssignmentBranch:
95
+ Enabled: false
96
+
97
+ Performance/MapCompact:
98
+ Enabled: false
99
+
100
+ Gemspec/RequiredRubyVersion:
101
+ Enabled: false
102
+
103
+ Gemspec/DevelopmentDependencies:
104
+ Enabled: false
105
+
106
+ Style/RedundantReturn:
107
+ Enabled: false
108
+
109
+ Style/RedundantParentheses:
110
+ Enabled: false
111
+
112
+ # This will probably be a breaking change, but should happen
113
+ Style/ReturnNilInPredicateMethodDefinition:
114
+ Enabled: false
115
+
116
+ # FIXME: Disabled due to breaking tests, should probably refactor the code instead
117
+ Style/SafeNavigation:
118
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -5,7 +5,102 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.6.0] - 2025-10-22
9
+
10
+ [3.5.0]: https://github.com/shardlab/discordrb/releases/tag/v3.6.0
11
+
12
+ [View diff for this release.](https://github.com/shardlab/discordrb/compare/v3.5.0..v3.6.0)
13
+
14
+ ### Summary
15
+
16
+ ## What's Changed
17
+
18
+ - feat: Bot#invite_url - scope & redirect_uri params by @Birdie0 in https://github.com/shardlab/discordrb/pull/241
19
+ - Update ping.rb by @gustavomgama in https://github.com/shardlab/discordrb/pull/243
20
+ - Fix buttons and string selects without emojis breaking due to API change by @wouterdedroog in https://github.com/shardlab/discordrb/pull/249
21
+ - Update webhook URLs to v9 by @advaith1 in https://github.com/shardlab/discordrb/pull/264
22
+ - Update Version Requirements to resolve CircleCI failures by @joshbuker in https://github.com/shardlab/discordrb/pull/265
23
+ - Add default_member_permissions and contexts fields to application commands by @wouterdedroog in https://github.com/shardlab/discordrb/pull/254
24
+ - add min/max_length support for string option and min/max_value for integer by @Birdie0 in https://github.com/shardlab/discordrb/pull/252
25
+ - Feat: search guild members by @Droid00000 in https://github.com/shardlab/discordrb/pull/277
26
+ - Add crossposts. by @Droid00000 in https://github.com/shardlab/discordrb/pull/280
27
+ - Message Flags by @Droid00000 in https://github.com/shardlab/discordrb/pull/292
28
+ - Allow supressing embeds on Message by @Quintasan in https://github.com/shardlab/discordrb/pull/240
29
+ - feat: message threads by @Droid00000 in https://github.com/shardlab/discordrb/pull/295
30
+ - feat: attachments in interaction responses by @Droid00000 in https://github.com/shardlab/discordrb/pull/296
31
+ - Remove User Login. by @Droid00000 in https://github.com/shardlab/discordrb/pull/273
32
+ - Custom Intents by @Droid00000 in https://github.com/shardlab/discordrb/pull/283
33
+ - feature: channel pins update event by @Droid00000 in https://github.com/shardlab/discordrb/pull/294
34
+ - Ruby 3.1 EOL & Workflows by @Droid00000 in https://github.com/shardlab/discordrb/pull/304
35
+ - Update link of Documentation in README.md by @soukouki in https://github.com/shardlab/discordrb/pull/287
36
+ - chore: rubocop Style/BitwisePredicate by @Daniel-Worrall in https://github.com/shardlab/discordrb/pull/289
37
+ - feat: resume gateway URL by @Droid00000 in https://github.com/shardlab/discordrb/pull/308
38
+ - fix: don't send heartbeats unless we're connected by @Droid00000 in https://github.com/shardlab/discordrb/pull/309
39
+ - Ruby Webhooks EOL Version Bump by @Droid00000 in https://github.com/shardlab/discordrb/pull/306
40
+ - bugfixes: emoji parsing & removing timeouts by @Droid00000 in https://github.com/shardlab/discordrb/pull/305
41
+ - Bugfix - Discordrb::Message#reacted_with by @y-bonfire in https://github.com/shardlab/discordrb/pull/288
42
+ - Fix permission overwrites mapping by @ceud in https://github.com/shardlab/discordrb/pull/267
43
+ - feat: missing member & user attributes by @Droid00000 in https://github.com/shardlab/discordrb/pull/313
44
+ - feat: add server avatar by @swarley in https://github.com/shardlab/discordrb/pull/146
45
+ - feat: autocomplete interactions by @Droid00000 in https://github.com/shardlab/discordrb/pull/299
46
+ - fix: broken members on MESSAGE_CREATE due to recent changes by @Droid00000 in https://github.com/shardlab/discordrb/pull/315
47
+ - cache active threads on GUILD_CREATE events by @Droid00000 in https://github.com/shardlab/discordrb/pull/316
48
+ - fix: allow raw and application command event handlers to co-exist by @Droid00000 in https://github.com/shardlab/discordrb/pull/310
49
+ - Fix Guild Bans by @Droid00000 in https://github.com/shardlab/discordrb/pull/279
50
+ - fix: remove WSCS's monkey patch by @Droid00000 in https://github.com/shardlab/discordrb/pull/325
51
+ - feat: server tags by @Droid00000 in https://github.com/shardlab/discordrb/pull/323
52
+ - fix: lazily cache un-cached members by @Droid00000 in https://github.com/shardlab/discordrb/pull/322
53
+ - fix: lazily request author for messages by @swarley in https://github.com/shardlab/discordrb/pull/130
54
+ - feat: increased pinned message limits by @Droid00000 in https://github.com/shardlab/discordrb/pull/324
55
+ - Fix CI by @Daniel-Worrall in https://github.com/shardlab/discordrb/pull/312
56
+ - feat: application command permission overwrites by @Droid00000 in https://github.com/shardlab/discordrb/pull/326
57
+ - feat: missing role attributes by @Droid00000 in https://github.com/shardlab/discordrb/pull/303
58
+ - feat: server previews by @Droid00000 in https://github.com/shardlab/discordrb/pull/332
59
+ - feat: gradient roles by @Droid00000 in https://github.com/shardlab/discordrb/pull/337
60
+ - feat: missing attachment attributes by @Droid00000 in https://github.com/shardlab/discordrb/pull/338
61
+ - feat: NSFW by @Droid00000 in https://github.com/shardlab/discordrb/pull/336
62
+ - feat: Channel#send_message! by @Droid00000 in https://github.com/shardlab/discordrb/pull/335
63
+ - docs: hide all initializers by @Droid00000 in https://github.com/shardlab/discordrb/pull/345
64
+ - feat: base64 encoder by @Droid00000 in https://github.com/shardlab/discordrb/pull/346
65
+ - fix: actually set the icon by @Droid00000 in https://github.com/shardlab/discordrb/pull/347
66
+ - feat: message types by @Droid00000 in https://github.com/shardlab/discordrb/pull/349
67
+ - feat: Add message type methods by @swarley in https://github.com/shardlab/discordrb/pull/85
68
+ - style: use (...) syntax to forward arguments by @Droid00000 in https://github.com/shardlab/discordrb/pull/348
69
+ - fix: return raw error codes by @Droid00000 in https://github.com/shardlab/discordrb/pull/317
70
+ - add thread channel parmaeters to Channel#update by @mrhappyma in https://github.com/shardlab/discordrb/pull/344
71
+ - fix: forward &block on send_message! by @Droid00000 in https://github.com/shardlab/discordrb/pull/342
72
+ - feat: missing permissions by @Droid00000 in https://github.com/shardlab/discordrb/pull/341
73
+ - Fix - Allow mixing groups and subcommands by @itsthedevman in https://github.com/shardlab/discordrb/pull/244
74
+ - fix: use response-data to update server members by @Droid00000 in https://github.com/shardlab/discordrb/pull/362
75
+ - feat: allow creation of forum posts by @Droid00000 in https://github.com/shardlab/discordrb/pull/360
76
+ - feat: Message#mentions? by @Droid00000 in https://github.com/shardlab/discordrb/pull/356
77
+ - fix: include names on server previews by @Droid00000 in https://github.com/shardlab/discordrb/pull/355
78
+ - feat: add server attribute to MESSAGE_DELETE by @Droid00000 in https://github.com/shardlab/discordrb/pull/358
79
+ - feat: handle USER_UPDATE events by @Droid00000 in https://github.com/shardlab/discordrb/pull/357
80
+ - fix: server boost caching by @Droid00000 in https://github.com/shardlab/discordrb/pull/359
81
+ - feat: application emojis by @Droid00000 in https://github.com/shardlab/discordrb/pull/314
82
+ - feat: message forwards by @Droid00000 in https://github.com/shardlab/discordrb/pull/340
83
+ - feat: fix thread caching by @Droid00000 in https://github.com/shardlab/discordrb/pull/363
84
+ - feat: gh actions by @swarley in https://github.com/shardlab/discordrb/pull/371
85
+
86
+ ## New Contributors
87
+
88
+ - @gustavomgama made their first contribution in https://github.com/shardlab/discordrb/pull/243
89
+ - @wouterdedroog made their first contribution in https://github.com/shardlab/discordrb/pull/249
90
+ - @advaith1 made their first contribution in https://github.com/shardlab/discordrb/pull/264
91
+ - @joshbuker made their first contribution in https://github.com/shardlab/discordrb/pull/265
92
+ - @Droid00000 made their first contribution in https://github.com/shardlab/discordrb/pull/277
93
+ - @Quintasan made their first contribution in https://github.com/shardlab/discordrb/pull/240
94
+ - @soukouki made their first contribution in https://github.com/shardlab/discordrb/pull/287
95
+ - @y-bonfire made their first contribution in https://github.com/shardlab/discordrb/pull/288
96
+ - @ceud made their first contribution in https://github.com/shardlab/discordrb/pull/267
97
+ - @mrhappyma made their first contribution in https://github.com/shardlab/discordrb/pull/344
98
+ - @itsthedevman made their first contribution in https://github.com/shardlab/discordrb/pull/244
99
+
100
+ **Full Changelog**: https://github.com/shardlab/discordrb/compare/v3.5.0...v3.6.0
101
+
8
102
  ## [3.5.0] - 2023-07-05
103
+
9
104
  [3.5.0]: https://github.com/shardlab/discordrb/releases/tag/v3.5.0
10
105
 
11
106
  [View diff for this release.](https://github.com/shardlab/discordrb/compare/v3.4.2..v3.5.0)
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [![Gem](https://img.shields.io/gem/v/discordrb.svg)](https://rubygems.org/gems/discordrb)
4
4
  [![Gem](https://img.shields.io/gem/dt/discordrb.svg)](https://rubygems.org/gems/discordrb)
5
5
  [![CircleCI](https://circleci.com/gh/shardlab/discordrb.svg?style=svg)](https://circleci.com/gh/shardlab/discordrb)
6
- [![Inline docs](https://inch-ci.org/github/shardlab/discordrb.svg?branch=main)](https://drb.shardlab.dev/v3.4.0/)
6
+ [![Inline docs](https://inch-ci.org/github/shardlab/discordrb.svg?branch=main)](https://drb.shardlab.dev/v3.6.0/)
7
7
  [![Join Discord](https://img.shields.io/badge/discord-join-7289DA.svg)](https://discord.gg/cyK3Hjm)
8
8
 
9
9
  An implementation of the [Discord](https://discord.com/) API using Ruby.
@@ -19,7 +19,7 @@ An implementation of the [Discord](https://discord.com/) API using Ruby.
19
19
  - [Development](https://github.com/shardlab/discordrb#development), [Contributing](https://github.com/shardlab/discordrb#contributing)
20
20
  - [License](https://github.com/shardlab/discordrb#license)
21
21
 
22
- See also: [Documentation](https://drb.shardlab.dev/v3.4.0/), [Tutorials](https://github.com/shardlab/discordrb/wiki)
22
+ See also: [Documentation](https://drb.shardlab.dev/v3.6.0/), [Tutorials](https://github.com/shardlab/discordrb/wiki)
23
23
 
24
24
  ## Introduction
25
25
 
@@ -44,8 +44,8 @@ If you enjoy using the library, consider getting involved with the community to
44
44
 
45
45
  ## Dependencies
46
46
 
47
- * Ruby >= 2.7 supported
48
- * An installed build system for native extensions (on Windows, make sure you download the "Ruby+Devkit" version of [RubyInstaller](https://rubyinstaller.org/downloads/))
47
+ - Ruby >= 3.2 supported
48
+ - An installed build system for native extensions (on Windows, make sure you download the "Ruby+Devkit" version of [RubyInstaller](https://rubyinstaller.org/downloads/))
49
49
 
50
50
  ### Voice dependencies
51
51
 
@@ -131,7 +131,7 @@ If you've made an open source project on GitHub that uses discordrb, consider ad
131
131
 
132
132
  Also included is a webhooks client, which can be used as a separate gem `discordrb-webhooks`. This special client can be used to form requests to Discord webhook URLs in a high-level manner.
133
133
 
134
- - [`discordrb-webhooks` documentation](https://drb.shardlab.dev/v3.4.0/Discordrb/Webhooks.html)
134
+ - [`discordrb-webhooks` documentation](https://drb.shardlab.dev/v3.6.0/Discordrb/Webhooks.html)
135
135
  - [More information about webhooks](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks)
136
136
  - [Embed visualizer tool](https://leovoel.github.io/embed-visualizer/) - Includes a discordrb code generator for forming embeds
137
137
 
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_dependency 'rest-client', '>= 2.0.0'
24
24
 
25
- spec.required_ruby_version = '>= 2.7'
25
+ spec.required_ruby_version = '>= 3.2'
26
26
  spec.metadata = {
27
27
  'rubygems_mfa_required' => 'true'
28
28
  }
data/discordrb.gemspec CHANGED
@@ -3,6 +3,7 @@
3
3
  lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'discordrb/version'
6
+ require 'discordrb/webhooks/version'
6
7
 
7
8
  Gem::Specification.new do |spec|
8
9
  spec.name = 'discordrb'
@@ -19,29 +20,33 @@ Gem::Specification.new do |spec|
19
20
  spec.bindir = 'exe'
20
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
22
  spec.metadata = {
23
+ 'bug_tracker_uri' => 'https://github.com/shardlab/discordrb/issues',
22
24
  'changelog_uri' => 'https://github.com/shardlab/discordrb/blob/main/CHANGELOG.md',
25
+ 'documentation_uri' => 'https://github.com/shardlab/discordrb/wiki',
26
+ 'source_code_uri' => 'https://github.com/shardlab/discordrb',
23
27
  'rubygems_mfa_required' => 'true'
24
28
  }
25
29
  spec.require_paths = ['lib']
26
30
 
31
+ spec.add_dependency 'base64', '~> 0.2.0'
27
32
  spec.add_dependency 'ffi', '>= 1.9.24'
28
33
  spec.add_dependency 'opus-ruby'
29
34
  spec.add_dependency 'rest-client', '>= 2.0.0'
30
- spec.add_dependency 'websocket-client-simple', '>= 0.3.0'
35
+ spec.add_dependency 'websocket-client-simple', '>= 0.9.0'
31
36
 
32
- spec.add_dependency 'discordrb-webhooks', '~> 3.5.0'
37
+ spec.add_dependency 'discordrb-webhooks', "~> #{Discordrb::Webhooks::VERSION}"
33
38
 
34
- spec.required_ruby_version = '>= 2.7'
39
+ spec.required_ruby_version = '>= 3.2'
35
40
 
36
41
  spec.add_development_dependency 'bundler', '>= 1.10', '< 3'
37
42
  spec.add_development_dependency 'rake', '~> 13.0'
38
- spec.add_development_dependency 'redcarpet', '~> 3.5.0' # YARD markdown formatting
39
- spec.add_development_dependency 'rspec', '~> 3.11.0'
40
- spec.add_development_dependency 'rspec_junit_formatter', '~> 0.5.1'
43
+ spec.add_development_dependency 'redcarpet', '~> 3.5' # YARD markdown formatting
44
+ spec.add_development_dependency 'rspec', '~> 3.0'
45
+ spec.add_development_dependency 'rspec_junit_formatter', '~> 0.6.0'
41
46
  spec.add_development_dependency 'rspec-prof', '~> 0.0.7'
42
- spec.add_development_dependency 'rubocop', '~> 1.36.0'
43
- spec.add_development_dependency 'rubocop-performance', '~> 1.0'
44
- spec.add_development_dependency 'rubocop-rake', '~> 0.6.0'
45
- spec.add_development_dependency 'simplecov', '~> 0.21.0'
46
- spec.add_development_dependency 'yard', '~> 0.9.9'
47
+ spec.add_development_dependency 'rubocop', '~> 1.77.0'
48
+ spec.add_development_dependency 'rubocop-performance', '~> 1.25.0'
49
+ spec.add_development_dependency 'rubocop-rake', '~> 0.7.0'
50
+ spec.add_development_dependency 'simplecov', '~> 0.21'
51
+ spec.add_development_dependency 'yard', '~> 0.9.37'
47
52
  end