discorb 0.13.2 → 0.15.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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +2 -0
  3. data/.github/workflows/build_version.yml +1 -1
  4. data/.github/workflows/codeql-analysis.yml +70 -0
  5. data/.github/workflows/lint-push.yml +20 -0
  6. data/.github/workflows/lint.yml +16 -0
  7. data/.rubocop.yml +70 -0
  8. data/CODE_OF_CONDUCT.md +128 -0
  9. data/Changelog.md +34 -0
  10. data/Gemfile +7 -3
  11. data/README.md +1 -1
  12. data/Rakefile +22 -22
  13. data/discorb.gemspec +13 -1
  14. data/docs/faq.md +8 -8
  15. data/examples/commands/bookmarker.rb +2 -1
  16. data/examples/commands/hello.rb +1 -0
  17. data/examples/commands/inspect.rb +3 -2
  18. data/examples/components/authorization_button.rb +2 -1
  19. data/examples/components/select_menu.rb +2 -1
  20. data/examples/extension/main.rb +1 -0
  21. data/examples/extension/message_expander.rb +1 -0
  22. data/examples/simple/eval.rb +3 -2
  23. data/examples/simple/ping_pong.rb +1 -0
  24. data/examples/simple/rolepanel.rb +1 -0
  25. data/examples/simple/wait_for_message.rb +4 -3
  26. data/exe/discorb +8 -7
  27. data/lib/discorb/allowed_mentions.rb +64 -0
  28. data/lib/discorb/app_command/command.rb +274 -0
  29. data/lib/discorb/app_command/handler.rb +168 -0
  30. data/lib/discorb/app_command.rb +2 -404
  31. data/lib/discorb/asset.rb +3 -1
  32. data/lib/discorb/{file.rb → attachment.rb} +42 -35
  33. data/lib/discorb/audit_logs.rb +3 -3
  34. data/lib/discorb/channel.rb +65 -61
  35. data/lib/discorb/client.rb +36 -33
  36. data/lib/discorb/common.rb +29 -22
  37. data/lib/discorb/components/button.rb +106 -0
  38. data/lib/discorb/components/select_menu.rb +157 -0
  39. data/lib/discorb/components/text_input.rb +96 -0
  40. data/lib/discorb/components.rb +11 -276
  41. data/lib/discorb/dictionary.rb +13 -2
  42. data/lib/discorb/embed.rb +40 -33
  43. data/lib/discorb/emoji.rb +21 -5
  44. data/lib/discorb/emoji_table.rb +1 -1
  45. data/lib/discorb/error.rb +4 -6
  46. data/lib/discorb/event.rb +13 -11
  47. data/lib/discorb/exe/about.rb +1 -0
  48. data/lib/discorb/exe/irb.rb +4 -3
  49. data/lib/discorb/exe/new.rb +6 -7
  50. data/lib/discorb/exe/run.rb +2 -1
  51. data/lib/discorb/exe/setup.rb +8 -5
  52. data/lib/discorb/exe/show.rb +1 -0
  53. data/lib/discorb/extend.rb +19 -14
  54. data/lib/discorb/extension.rb +5 -1
  55. data/lib/discorb/gateway.rb +82 -29
  56. data/lib/discorb/guild.rb +58 -80
  57. data/lib/discorb/guild_template.rb +5 -5
  58. data/lib/discorb/http.rb +52 -170
  59. data/lib/discorb/integration.rb +32 -3
  60. data/lib/discorb/intents.rb +9 -4
  61. data/lib/discorb/interaction/autocomplete.rb +5 -4
  62. data/lib/discorb/interaction/command.rb +34 -9
  63. data/lib/discorb/interaction/components.rb +5 -2
  64. data/lib/discorb/interaction/modal.rb +33 -0
  65. data/lib/discorb/interaction/response.rb +41 -12
  66. data/lib/discorb/interaction/root.rb +1 -0
  67. data/lib/discorb/interaction.rb +2 -1
  68. data/lib/discorb/invite.rb +1 -1
  69. data/lib/discorb/log.rb +4 -3
  70. data/lib/discorb/member.rb +4 -6
  71. data/lib/discorb/message.rb +38 -241
  72. data/lib/discorb/message_meta.rb +157 -0
  73. data/lib/discorb/modules.rb +47 -23
  74. data/lib/discorb/permission.rb +2 -2
  75. data/lib/discorb/presence.rb +6 -3
  76. data/lib/discorb/rate_limit.rb +15 -21
  77. data/lib/discorb/role.rb +3 -3
  78. data/lib/discorb/sticker.rb +2 -2
  79. data/lib/discorb/user.rb +3 -3
  80. data/lib/discorb/utils/colored_puts.rb +1 -0
  81. data/lib/discorb/voice_state.rb +7 -2
  82. data/lib/discorb/webhook.rb +9 -6
  83. data/lib/discorb.rb +2 -1
  84. data/sig/discorb.rbs +5836 -6714
  85. data/template-replace/scripts/arrow.rb +1 -0
  86. data/template-replace/scripts/favicon.rb +1 -0
  87. data/template-replace/scripts/index.rb +2 -1
  88. data/template-replace/scripts/locale_ja.rb +5 -4
  89. data/template-replace/scripts/sidebar.rb +1 -0
  90. data/template-replace/scripts/version.rb +7 -10
  91. data/template-replace/scripts/yard_replace.rb +5 -4
  92. metadata +30 -5
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  def replace_arrow(dir)
2
3
  Dir.glob("#{dir}/**/*.html") do |file|
3
4
  content = File.read(file)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "fileutils"
2
3
 
3
4
  def add_favicon(dir)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "fileutils"
2
3
 
3
4
  def replace_index(dir, version)
@@ -5,7 +6,7 @@ def replace_index(dir, version)
5
6
  next if (m = file.match(/[0-9]+\.[0-9]+\.[0-9]+(-[a-z]+)?/)) && m[0] != version
6
7
 
7
8
  content = File.read(file)
8
- content.gsub!(/(?<=["\/])_index.html/, "a_index.html")
9
+ content.gsub!(%r{(?<=["/])_index.html}, "a_index.html")
9
10
  File.write(file, content)
10
11
  end
11
12
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  LOCALES = {
2
3
  "ja" => {
3
4
  selector: {
@@ -14,15 +15,15 @@ LOCALES = {
14
15
  },
15
16
  },
16
17
 
17
- }
18
+ }.freeze
18
19
 
19
20
  def replace_sidebar_name(dir)
20
- regex = /<a target="_self" href="(.+)_list\.html">\s*([a-zA-Z ]+?)\s*<\/a>/
21
+ regex = %r{<a target="_self" href="(.+)_list\.html">\s*([a-zA-Z ]+?)\s*</a>}
21
22
 
22
23
  Dir.glob("#{dir}/*_list.html") do |file|
23
24
  content = File.read(file)
24
25
  new_content = content.dup
25
- content.scan(regex) do |url, name|
26
+ content.scan(regex) do |_url, name|
26
27
  new_content.gsub!(
27
28
  Regexp.last_match[0],
28
29
  Regexp.last_match[0].gsub(name, LOCALES[ENV["rake_locale"]][:selector][name])
@@ -33,7 +34,7 @@ def replace_sidebar_name(dir)
33
34
  end
34
35
 
35
36
  def replace_title(dir)
36
- regex = /(?:<h1 id="full_list_header">|<title>)([a-zA-Z ]+?)(?:<\/title>|<\/h1>)/
37
+ regex = %r{(?:<h1 id="full_list_header">|<title>)([a-zA-Z ]+?)(?:</title>|</h1>)}
37
38
 
38
39
  Dir.glob("#{dir}/*.html") do |file|
39
40
  content = File.read(file)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  def replace_sidebar(file)
2
3
  html = File.read(file)
3
4
  files_html = <<-HTML
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  def build_version_sidebar(dir, version)
2
3
  raw = File.read("template-replace/resources/version_list.html")
3
4
  template = raw.match(/<!--template-->(.*)<!--endtemplate-->/m)[1]
@@ -9,14 +10,12 @@ def build_version_sidebar(dir, version)
9
10
  .split("\n")
10
11
  .sort_by { |v| Gem::Version.new(v[1..]) }
11
12
  .reverse
12
- .each.with_index do |tag|
13
+ .each do |tag|
13
14
  i += 1
14
15
  sha = `git rev-parse #{tag}`.force_encoding("utf-8").strip
15
16
  tag_version = tag.delete_prefix("v")
16
- cls = i % 2 == 0 ? "even" : "odd"
17
- if tag_version == version
18
- cls += " current"
19
- end
17
+ cls = i.even? ? "even" : "odd"
18
+ cls += " current" if tag_version == version
20
19
  res += template
21
20
  .gsub("!version!", tag_version)
22
21
  .gsub("!path!", "/" + tag_version)
@@ -24,17 +23,15 @@ def build_version_sidebar(dir, version)
24
23
  .gsub("!sha!", sha)
25
24
  end
26
25
  i += 1
27
- cls = i % 2 == 0 ? "even" : "odd"
28
- if version == "main"
29
- cls += " current"
30
- end
26
+ cls = i.even? ? "even" : "odd"
27
+ cls += " current" if version == "main"
31
28
  res.insert 0, template
32
29
  .gsub("!version!", "main")
33
30
  .gsub("!path!", "/main")
34
31
  .gsub("!class!", cls)
35
32
  .gsub("!sha!", "Latest on GitHub")
36
33
  i += 1
37
- cls = i % 2 == 0 ? "even" : "odd"
34
+ cls = i.even? ? "even" : "odd"
38
35
  res.insert 0, template
39
36
  .gsub("!version!", "Latest")
40
37
  .gsub("!path!", "")
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "yard"
2
3
 
3
4
  def yard_replace(dir, version)
@@ -22,11 +23,11 @@ def yard_replace(dir, version)
22
23
  <h1 class="noborder title">Documentation by YARD 0.9.26</h1>
23
24
  HTML3
24
25
  HTML4
25
- if version == "main"
26
- display_version = "(main)"
26
+ display_version = if version == "main"
27
+ "(main)"
27
28
  else
28
- display_version = "v" + version
29
- end
29
+ "v" + version
30
+ end
30
31
  contents.gsub!(/Documentation by YARD \d+\.\d+\.\d+/, "discorb #{display_version} documentation")
31
32
  File.write(file, contents)
32
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: discorb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.2
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sevenc-nanashi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-31 00:00:00.000000000 Z
11
+ date: 2022-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async
@@ -66,7 +66,16 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.3'
69
- description:
69
+ description: |+
70
+ == discorb
71
+ discorb is a Discord API wrapper for Ruby, Using {socketry/async}[https://github.com/socketry/async].
72
+
73
+ === Contributing
74
+ Bug reports, feature requests, and pull requests are welcome on {the GitHub repository}[https://github.com/discorb-lib/discorb].
75
+
76
+ === License
77
+ This gem is licensed under the MIT License.
78
+
70
79
  email:
71
80
  - sevenc-nanashi@sevenbot.jp
72
81
  executables:
@@ -74,16 +83,22 @@ executables:
74
83
  extensions: []
75
84
  extra_rdoc_files: []
76
85
  files:
86
+ - ".gitattributes"
77
87
  - ".github/ISSUE_TEMPLATE/bug_report.md"
78
88
  - ".github/ISSUE_TEMPLATE/config.yml"
79
89
  - ".github/ISSUE_TEMPLATE/feature_request.md"
80
90
  - ".github/PULL_REQUEST_TEMPLATE.md"
81
91
  - ".github/workflows/build_main.yml"
82
92
  - ".github/workflows/build_version.yml"
93
+ - ".github/workflows/codeql-analysis.yml"
83
94
  - ".github/workflows/crowdin.yml"
95
+ - ".github/workflows/lint-push.yml"
96
+ - ".github/workflows/lint.yml"
84
97
  - ".github/workflows/package_register.yml"
85
98
  - ".gitignore"
99
+ - ".rubocop.yml"
86
100
  - ".yardopts"
101
+ - CODE_OF_CONDUCT.md
87
102
  - CONTRIBUTING.md
88
103
  - Changelog.md
89
104
  - Gemfile
@@ -130,15 +145,22 @@ files:
130
145
  - examples/simple/wait_for_message.rb
131
146
  - exe/discorb
132
147
  - lib/discorb.rb
148
+ - lib/discorb/allowed_mentions.rb
133
149
  - lib/discorb/app_command.rb
150
+ - lib/discorb/app_command/command.rb
151
+ - lib/discorb/app_command/handler.rb
134
152
  - lib/discorb/application.rb
135
153
  - lib/discorb/asset.rb
154
+ - lib/discorb/attachment.rb
136
155
  - lib/discorb/audit_logs.rb
137
156
  - lib/discorb/channel.rb
138
157
  - lib/discorb/client.rb
139
158
  - lib/discorb/color.rb
140
159
  - lib/discorb/common.rb
141
160
  - lib/discorb/components.rb
161
+ - lib/discorb/components/button.rb
162
+ - lib/discorb/components/select_menu.rb
163
+ - lib/discorb/components/text_input.rb
142
164
  - lib/discorb/dictionary.rb
143
165
  - lib/discorb/embed.rb
144
166
  - lib/discorb/emoji.rb
@@ -154,7 +176,6 @@ files:
154
176
  - lib/discorb/exe/show.rb
155
177
  - lib/discorb/extend.rb
156
178
  - lib/discorb/extension.rb
157
- - lib/discorb/file.rb
158
179
  - lib/discorb/flag.rb
159
180
  - lib/discorb/gateway.rb
160
181
  - lib/discorb/gateway_requests.rb
@@ -168,12 +189,14 @@ files:
168
189
  - lib/discorb/interaction/autocomplete.rb
169
190
  - lib/discorb/interaction/command.rb
170
191
  - lib/discorb/interaction/components.rb
192
+ - lib/discorb/interaction/modal.rb
171
193
  - lib/discorb/interaction/response.rb
172
194
  - lib/discorb/interaction/root.rb
173
195
  - lib/discorb/invite.rb
174
196
  - lib/discorb/log.rb
175
197
  - lib/discorb/member.rb
176
198
  - lib/discorb/message.rb
199
+ - lib/discorb/message_meta.rb
177
200
  - lib/discorb/modules.rb
178
201
  - lib/discorb/permission.rb
179
202
  - lib/discorb/presence.rb
@@ -206,6 +229,7 @@ metadata:
206
229
  source_code_uri: https://github.com/discorb-lib/discorb
207
230
  changelog_uri: https://discorb-lib.github.io/file.Changelog.html
208
231
  documentation_uri: https://discorb-lib.github.io
232
+ rubygems_mfa_required: 'true'
209
233
  post_install_message:
210
234
  rdoc_options: []
211
235
  require_paths:
@@ -224,5 +248,6 @@ requirements: []
224
248
  rubygems_version: 3.2.32
225
249
  signing_key:
226
250
  specification_version: 4
227
- summary: A discord API wrapper written in Ruby
251
+ summary: A Discord API wrapper for Ruby, Using socketry/async.
228
252
  test_files: []
253
+ ...