role_fu 0.3.3 → 0.5.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +27 -1
- data/README.md +42 -1
- data/gemfiles/rails_7.2.gemfile.lock +117 -123
- data/gemfiles/rails_8.0.gemfile.lock +181 -187
- data/gemfiles/rails_8.1.gemfile.lock +183 -189
- data/lib/generators/role_fu/templates/role_fu.rb +7 -0
- data/lib/role_fu/configuration.rb +13 -0
- data/lib/role_fu/resourceable.rb +31 -0
- data/lib/role_fu/roleable.rb +19 -0
- data/lib/role_fu/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: baa4ff8c1fb945a9a511b86be18ecf899e03b72713faebaa2f903068a556fd26
|
|
4
|
+
data.tar.gz: cc7f9603db34f8363232db64520bfbc2f80cdd67b7488a508555dffaeba47fcf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6fc1e0fccbd72b33b2d6df3d4ccee047d513347dae12f6ab05a8b8626c7d2e115e0206044a02b72b1443cde6628686de1898ccce982859762b724c444eca6dcf
|
|
7
|
+
data.tar.gz: c4ab6403ff5658dfa5f9a7335da11fabeaea677e5b33c4b42353e8ec1e310deb64f3157da7420ce3ae310ca9aee34b60ed77372804dbe6d526816fe78fa2d812
|
data/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,30 @@
|
|
|
1
|
-
## [
|
|
1
|
+
## [0.5.0] - 2026-07-15
|
|
2
|
+
|
|
3
|
+
### BREAKING CHANGES
|
|
4
|
+
|
|
5
|
+
- **Drop Ruby 3.2 support**: Minimum required Ruby version is now 3.3+
|
|
6
|
+
- Updated `required_ruby_version` from `>= 3.2.0` to `>= 3.3.0`
|
|
7
|
+
- Removed Ruby 3.2 from CI test matrix
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- **Dependencies**: Updated development and test dependencies (Rails 8.1.3, concurrent-ruby 1.3.7, and security patches for activesupport, erb, and json).
|
|
12
|
+
|
|
13
|
+
## [0.4.0] - 2026-02-08
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **Dynamic Shortcuts**:
|
|
18
|
+
- Call methods like `user.is_admin?` or `user.is_manager?(org)` directly.
|
|
19
|
+
- Configurable pattern (`config.dynamic_shortcuts_pattern`), defaults to `is_%{role}?`.
|
|
20
|
+
- Custom patterns supported (e.g. `in_%{role}_group?`).
|
|
21
|
+
- **Enhanced Resourceable**:
|
|
22
|
+
- Added `has_many :users, through: :roles` association for direct user access (e.g. `org.users`).
|
|
23
|
+
- Added `users_grouped_by_role` to get a hash of users per role.
|
|
24
|
+
- Added `destroy_role(role_name)` for bulk cleanup on a resource.
|
|
25
|
+
- Added convenience methods/aliases: `users_with_roles`, `applied_roles`.
|
|
26
|
+
- **Generator**:
|
|
27
|
+
- Updated install template to include new configuration options.
|
|
2
28
|
|
|
3
29
|
## [0.3.3] - 2026-02-07
|
|
4
30
|
|
data/README.md
CHANGED
|
@@ -235,8 +235,14 @@ class Organization < ApplicationRecord
|
|
|
235
235
|
end
|
|
236
236
|
|
|
237
237
|
org = Organization.first
|
|
238
|
+
org.users # All users with ANY role (via has_many :through)
|
|
238
239
|
org.users_with_role(:manager)
|
|
239
|
-
org.
|
|
240
|
+
org.users_with_roles # All users with ANY role on this org
|
|
241
|
+
org.available_roles # ["manager", "admin"]
|
|
242
|
+
org.users_grouped_by_role # { "manager" => [user1], "admin" => [user2] }
|
|
243
|
+
|
|
244
|
+
# Cleanup
|
|
245
|
+
org.destroy_role(:manager) # Removes the "manager" role and all its assignments from this org
|
|
240
246
|
|
|
241
247
|
# Scopes
|
|
242
248
|
Organization.with_role(:manager, user)
|
|
@@ -254,9 +260,44 @@ RoleFu.configure do |config|
|
|
|
254
260
|
|
|
255
261
|
# Enable Rolify-style permissive checks (Global roles override resource checks)
|
|
256
262
|
config.global_roles_override = true
|
|
263
|
+
|
|
264
|
+
# Enable dynamic shortcuts (e.g. user.is_admin?)
|
|
265
|
+
# Default is nil (disabled). Recommended: "is_%{role}?"
|
|
266
|
+
config.dynamic_shortcuts_pattern = "is_%{role}?"
|
|
257
267
|
end
|
|
258
268
|
```
|
|
259
269
|
|
|
270
|
+
## Dynamic Shortcuts
|
|
271
|
+
|
|
272
|
+
RoleFu supports dynamic methods for quick role checking if you configure a pattern.
|
|
273
|
+
|
|
274
|
+
**Configuration:**
|
|
275
|
+
|
|
276
|
+
```ruby
|
|
277
|
+
# In config/initializers/role_fu.rb
|
|
278
|
+
RoleFu.configure do |config|
|
|
279
|
+
config.dynamic_shortcuts_pattern = "is_%{role}?"
|
|
280
|
+
end
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**Usage:**
|
|
284
|
+
|
|
285
|
+
```ruby
|
|
286
|
+
user.is_admin? # Equivalent to user.has_role?(:admin)
|
|
287
|
+
user.is_manager?(org) # Equivalent to user.has_role?(:manager, org)
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**Custom Pattern:**
|
|
291
|
+
|
|
292
|
+
If you use groups:
|
|
293
|
+
|
|
294
|
+
```ruby
|
|
295
|
+
config.dynamic_shortcuts_pattern = "in_%{role}_group?"
|
|
296
|
+
|
|
297
|
+
# Usage:
|
|
298
|
+
user.in_admin_group? # Equivalent to user.has_role?(:admin)
|
|
299
|
+
```
|
|
300
|
+
|
|
260
301
|
## Custom Aliases (e.g. Groups)
|
|
261
302
|
|
|
262
303
|
If you prefer different terminology (e.g., "Groups" instead of "Roles"), you can alias the methods in your models:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: ..
|
|
3
3
|
specs:
|
|
4
|
-
role_fu (0.
|
|
4
|
+
role_fu (0.5.0)
|
|
5
5
|
activerecord (>= 7.2)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
@@ -87,46 +87,47 @@ GEM
|
|
|
87
87
|
ast (2.4.3)
|
|
88
88
|
base64 (0.3.0)
|
|
89
89
|
benchmark (0.5.0)
|
|
90
|
-
bigdecimal (4.
|
|
90
|
+
bigdecimal (4.1.2)
|
|
91
91
|
builder (3.3.0)
|
|
92
|
-
cgi (0.5.
|
|
93
|
-
concurrent-ruby (1.3.
|
|
92
|
+
cgi (0.5.2)
|
|
93
|
+
concurrent-ruby (1.3.7)
|
|
94
94
|
connection_pool (3.0.2)
|
|
95
|
-
crass (1.0.
|
|
95
|
+
crass (1.0.7)
|
|
96
96
|
date (3.5.1)
|
|
97
97
|
diff-lcs (1.6.2)
|
|
98
|
-
docile (1.4.1)
|
|
99
98
|
drb (2.2.3)
|
|
100
|
-
erb (6.0.
|
|
99
|
+
erb (6.0.4)
|
|
101
100
|
erubi (1.13.1)
|
|
102
|
-
globalid (1.
|
|
101
|
+
globalid (1.4.0)
|
|
103
102
|
activesupport (>= 6.1)
|
|
104
|
-
i18n (1.
|
|
103
|
+
i18n (1.15.2)
|
|
105
104
|
concurrent-ruby (~> 1.0)
|
|
106
105
|
io-console (0.8.2)
|
|
107
|
-
irb (1.
|
|
106
|
+
irb (1.18.0)
|
|
108
107
|
pp (>= 0.6.0)
|
|
108
|
+
prism (>= 1.3.0)
|
|
109
109
|
rdoc (>= 4.0.0)
|
|
110
110
|
reline (>= 0.4.2)
|
|
111
|
-
json (2.
|
|
112
|
-
language_server-protocol (3.17.0.
|
|
113
|
-
lefthook (2.1.
|
|
111
|
+
json (2.21.1)
|
|
112
|
+
language_server-protocol (3.17.0.6)
|
|
113
|
+
lefthook (2.1.10)
|
|
114
114
|
lint_roller (1.1.0)
|
|
115
115
|
logger (1.7.0)
|
|
116
|
-
loofah (2.25.
|
|
116
|
+
loofah (2.25.1)
|
|
117
117
|
crass (~> 1.0.2)
|
|
118
118
|
nokogiri (>= 1.12.0)
|
|
119
|
-
mail (2.9.
|
|
119
|
+
mail (2.9.1)
|
|
120
120
|
logger
|
|
121
121
|
mini_mime (>= 0.1.1)
|
|
122
122
|
net-imap
|
|
123
123
|
net-pop
|
|
124
124
|
net-smtp
|
|
125
|
-
marcel (1.1
|
|
125
|
+
marcel (1.2.1)
|
|
126
126
|
mini_mime (1.1.5)
|
|
127
|
-
minitest (6.0.
|
|
127
|
+
minitest (6.0.6)
|
|
128
|
+
drb (~> 2.0)
|
|
128
129
|
prism (~> 1.5)
|
|
129
|
-
net-imap (0.6.
|
|
130
|
+
net-imap (0.6.4.1)
|
|
130
131
|
date
|
|
131
132
|
net-protocol
|
|
132
133
|
net-pop (0.1.2)
|
|
@@ -136,36 +137,33 @@ GEM
|
|
|
136
137
|
net-smtp (0.5.1)
|
|
137
138
|
net-protocol
|
|
138
139
|
nio4r (2.7.5)
|
|
139
|
-
nokogiri (1.19.
|
|
140
|
+
nokogiri (1.19.4-aarch64-linux-gnu)
|
|
140
141
|
racc (~> 1.4)
|
|
141
|
-
nokogiri (1.19.
|
|
142
|
+
nokogiri (1.19.4-aarch64-linux-musl)
|
|
142
143
|
racc (~> 1.4)
|
|
143
|
-
nokogiri (1.19.
|
|
144
|
+
nokogiri (1.19.4-arm-linux-gnu)
|
|
144
145
|
racc (~> 1.4)
|
|
145
|
-
nokogiri (1.19.
|
|
146
|
+
nokogiri (1.19.4-arm-linux-musl)
|
|
146
147
|
racc (~> 1.4)
|
|
147
|
-
nokogiri (1.19.
|
|
148
|
+
nokogiri (1.19.4-arm64-darwin)
|
|
148
149
|
racc (~> 1.4)
|
|
149
|
-
nokogiri (1.19.
|
|
150
|
+
nokogiri (1.19.4-x86_64-darwin)
|
|
150
151
|
racc (~> 1.4)
|
|
151
|
-
nokogiri (1.19.
|
|
152
|
+
nokogiri (1.19.4-x86_64-linux-gnu)
|
|
152
153
|
racc (~> 1.4)
|
|
153
|
-
nokogiri (1.19.
|
|
154
|
+
nokogiri (1.19.4-x86_64-linux-musl)
|
|
154
155
|
racc (~> 1.4)
|
|
155
|
-
parallel (1.
|
|
156
|
-
parser (3.3.
|
|
156
|
+
parallel (2.1.0)
|
|
157
|
+
parser (3.3.11.1)
|
|
157
158
|
ast (~> 2.4.1)
|
|
158
159
|
racc
|
|
159
|
-
pp (0.6.
|
|
160
|
+
pp (0.6.4)
|
|
160
161
|
prettyprint
|
|
161
162
|
prettyprint (0.2.0)
|
|
162
163
|
prism (1.9.0)
|
|
163
|
-
psych (5.3.1)
|
|
164
|
-
date
|
|
165
|
-
stringio
|
|
166
164
|
racc (1.8.1)
|
|
167
|
-
rack (3.2.
|
|
168
|
-
rack-session (2.1.
|
|
165
|
+
rack (3.2.6)
|
|
166
|
+
rack-session (2.1.2)
|
|
169
167
|
base64 (>= 0.1.0)
|
|
170
168
|
rack (>= 3.0.0)
|
|
171
169
|
rack-test (2.2.0)
|
|
@@ -190,8 +188,8 @@ GEM
|
|
|
190
188
|
activesupport (>= 5.0.0)
|
|
191
189
|
minitest
|
|
192
190
|
nokogiri (>= 1.6)
|
|
193
|
-
rails-html-sanitizer (1.
|
|
194
|
-
loofah (~> 2.
|
|
191
|
+
rails-html-sanitizer (1.7.0)
|
|
192
|
+
loofah (~> 2.25)
|
|
195
193
|
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
|
196
194
|
railties (7.2.3)
|
|
197
195
|
actionpack (= 7.2.3)
|
|
@@ -204,12 +202,17 @@ GEM
|
|
|
204
202
|
tsort (>= 0.2)
|
|
205
203
|
zeitwerk (~> 2.6)
|
|
206
204
|
rainbow (3.1.1)
|
|
207
|
-
rake (13.
|
|
208
|
-
|
|
205
|
+
rake (13.4.2)
|
|
206
|
+
rbs (4.0.3)
|
|
207
|
+
logger
|
|
208
|
+
prism (>= 1.6.0)
|
|
209
|
+
tsort
|
|
210
|
+
rdoc (8.0.0)
|
|
209
211
|
erb
|
|
210
|
-
|
|
212
|
+
prism (>= 1.6.0)
|
|
213
|
+
rbs (>= 4.0.0)
|
|
211
214
|
tsort
|
|
212
|
-
regexp_parser (2.
|
|
215
|
+
regexp_parser (2.12.0)
|
|
213
216
|
reline (0.6.3)
|
|
214
217
|
io-console (~> 0.5)
|
|
215
218
|
rspec (3.13.2)
|
|
@@ -221,51 +224,47 @@ GEM
|
|
|
221
224
|
rspec-expectations (3.13.5)
|
|
222
225
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
223
226
|
rspec-support (~> 3.13.0)
|
|
224
|
-
rspec-mocks (3.13.
|
|
227
|
+
rspec-mocks (3.13.8)
|
|
225
228
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
226
229
|
rspec-support (~> 3.13.0)
|
|
227
230
|
rspec-support (3.13.7)
|
|
228
|
-
rubocop (1.
|
|
231
|
+
rubocop (1.87.0)
|
|
229
232
|
json (~> 2.3)
|
|
230
233
|
language_server-protocol (~> 3.17.0.2)
|
|
231
234
|
lint_roller (~> 1.1.0)
|
|
232
|
-
parallel (
|
|
235
|
+
parallel (>= 1.10)
|
|
233
236
|
parser (>= 3.3.0.2)
|
|
234
237
|
rainbow (>= 2.2.2, < 4.0)
|
|
235
238
|
regexp_parser (>= 2.9.3, < 3.0)
|
|
236
|
-
rubocop-ast (>= 1.
|
|
239
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
237
240
|
ruby-progressbar (~> 1.7)
|
|
238
241
|
unicode-display_width (>= 2.4.0, < 4.0)
|
|
239
|
-
rubocop-ast (1.
|
|
242
|
+
rubocop-ast (1.50.0)
|
|
240
243
|
parser (>= 3.3.7.2)
|
|
241
244
|
prism (~> 1.7)
|
|
242
245
|
rubocop-performance (1.26.1)
|
|
243
246
|
lint_roller (~> 1.1)
|
|
244
247
|
rubocop (>= 1.75.0, < 2.0)
|
|
245
248
|
rubocop-ast (>= 1.47.1, < 2.0)
|
|
246
|
-
rubocop-rspec (3.
|
|
249
|
+
rubocop-rspec (3.10.2)
|
|
247
250
|
lint_roller (~> 1.1)
|
|
248
|
-
|
|
251
|
+
regexp_parser (>= 2.0)
|
|
252
|
+
rubocop (~> 1.86, >= 1.86.2)
|
|
249
253
|
ruby-progressbar (1.13.0)
|
|
250
254
|
securerandom (0.4.1)
|
|
251
|
-
simplecov (0.
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
sqlite3 (2.9.
|
|
258
|
-
sqlite3 (2.9.
|
|
259
|
-
sqlite3 (2.9.
|
|
260
|
-
|
|
261
|
-
sqlite3 (2.9.0-arm64-darwin)
|
|
262
|
-
sqlite3 (2.9.0-x86_64-darwin)
|
|
263
|
-
sqlite3 (2.9.0-x86_64-linux-gnu)
|
|
264
|
-
sqlite3 (2.9.0-x86_64-linux-musl)
|
|
265
|
-
standard (1.53.0)
|
|
255
|
+
simplecov (1.0.1)
|
|
256
|
+
sqlite3 (2.9.5-aarch64-linux-gnu)
|
|
257
|
+
sqlite3 (2.9.5-aarch64-linux-musl)
|
|
258
|
+
sqlite3 (2.9.5-arm-linux-gnu)
|
|
259
|
+
sqlite3 (2.9.5-arm-linux-musl)
|
|
260
|
+
sqlite3 (2.9.5-arm64-darwin)
|
|
261
|
+
sqlite3 (2.9.5-x86_64-darwin)
|
|
262
|
+
sqlite3 (2.9.5-x86_64-linux-gnu)
|
|
263
|
+
sqlite3 (2.9.5-x86_64-linux-musl)
|
|
264
|
+
standard (1.55.0)
|
|
266
265
|
language_server-protocol (~> 3.17.0.2)
|
|
267
266
|
lint_roller (~> 1.0)
|
|
268
|
-
rubocop (~> 1.
|
|
267
|
+
rubocop (~> 1.87.0)
|
|
269
268
|
standard-custom (~> 1.0.0)
|
|
270
269
|
standard-performance (~> 1.8)
|
|
271
270
|
standard-custom (1.0.2)
|
|
@@ -274,9 +273,8 @@ GEM
|
|
|
274
273
|
standard-performance (1.9.0)
|
|
275
274
|
lint_roller (~> 1.1)
|
|
276
275
|
rubocop-performance (~> 1.26.0)
|
|
277
|
-
stringio (3.2.0)
|
|
278
276
|
thor (1.5.0)
|
|
279
|
-
timeout (0.6.
|
|
277
|
+
timeout (0.6.1)
|
|
280
278
|
tsort (0.2.0)
|
|
281
279
|
tzinfo (2.0.6)
|
|
282
280
|
concurrent-ruby (~> 1.0)
|
|
@@ -284,11 +282,11 @@ GEM
|
|
|
284
282
|
unicode-emoji (~> 4.1)
|
|
285
283
|
unicode-emoji (4.2.0)
|
|
286
284
|
useragent (0.16.11)
|
|
287
|
-
websocket-driver (0.8.
|
|
285
|
+
websocket-driver (0.8.2)
|
|
288
286
|
base64
|
|
289
287
|
websocket-extensions (>= 0.1.0)
|
|
290
288
|
websocket-extensions (0.1.5)
|
|
291
|
-
zeitwerk (2.
|
|
289
|
+
zeitwerk (2.8.2)
|
|
292
290
|
|
|
293
291
|
PLATFORMS
|
|
294
292
|
aarch64-linux-gnu
|
|
@@ -330,102 +328,98 @@ CHECKSUMS
|
|
|
330
328
|
ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
|
|
331
329
|
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
|
|
332
330
|
benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c
|
|
333
|
-
bigdecimal (4.
|
|
331
|
+
bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd
|
|
334
332
|
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
|
|
335
|
-
cgi (0.5.
|
|
336
|
-
concurrent-ruby (1.3.
|
|
333
|
+
cgi (0.5.2) sha256=61ca30298171190fd4fa0d8018e57ada456eae9b7a2b78526debf7f0a0e6f8bb
|
|
334
|
+
concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0
|
|
337
335
|
connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
|
|
338
|
-
crass (1.0.
|
|
336
|
+
crass (1.0.7) sha256=94868719948664c89ddcaf0a37c65048413dfcb1c869470a5f7a7ceb5390b295
|
|
339
337
|
date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
|
|
340
338
|
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
|
|
341
|
-
docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
|
|
342
339
|
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
|
|
343
|
-
erb (6.0.
|
|
340
|
+
erb (6.0.4) sha256=38e3803694be357fe2bfe312487c74beaf9fb4e5beb3e22498952fe1645b95d9
|
|
344
341
|
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
|
|
345
|
-
globalid (1.
|
|
346
|
-
i18n (1.
|
|
342
|
+
globalid (1.4.0) sha256=037f12fbf1d9d7a014d501c2d5c77356fd4ddd96d7a7991d6700bba96706f427
|
|
343
|
+
i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5
|
|
347
344
|
io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
|
|
348
|
-
irb (1.
|
|
349
|
-
json (2.
|
|
350
|
-
language_server-protocol (3.17.0.
|
|
351
|
-
lefthook (2.1.
|
|
345
|
+
irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
|
|
346
|
+
json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583
|
|
347
|
+
language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
|
|
348
|
+
lefthook (2.1.10) sha256=cc9c06bd8ea689e8b8016eab9769e54d696d07951860c1c6d28e8f6812e61b65
|
|
352
349
|
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
|
|
353
350
|
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
|
354
|
-
loofah (2.25.
|
|
355
|
-
mail (2.9.
|
|
356
|
-
marcel (1.1
|
|
351
|
+
loofah (2.25.1) sha256=d436c73dbd0c1147b16c4a41db097942d217303e1f7728704b37e4df9f6d2e04
|
|
352
|
+
mail (2.9.1) sha256=06574eca475253d6c18145dd70af80d0eb970182d55053497c5f4d797ea160e8
|
|
353
|
+
marcel (1.2.1) sha256=1678e9360e32f9eafa917c80029e2f6d10b2715c66a4b87b6d0da9b9cd1f859f
|
|
357
354
|
mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
|
|
358
|
-
minitest (6.0.
|
|
359
|
-
net-imap (0.6.
|
|
355
|
+
minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1
|
|
356
|
+
net-imap (0.6.4.1) sha256=29f0360d75a7efd3539f16ac1957dea5c0a51ddeceb348db4553c3120914ea0d
|
|
360
357
|
net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
|
|
361
358
|
net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
|
|
362
359
|
net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736
|
|
363
360
|
nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1
|
|
364
|
-
nokogiri (1.19.
|
|
365
|
-
nokogiri (1.19.
|
|
366
|
-
nokogiri (1.19.
|
|
367
|
-
nokogiri (1.19.
|
|
368
|
-
nokogiri (1.19.
|
|
369
|
-
nokogiri (1.19.
|
|
370
|
-
nokogiri (1.19.
|
|
371
|
-
nokogiri (1.19.
|
|
372
|
-
parallel (1.
|
|
373
|
-
parser (3.3.
|
|
374
|
-
pp (0.6.
|
|
361
|
+
nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f
|
|
362
|
+
nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af
|
|
363
|
+
nokogiri (1.19.4-arm-linux-gnu) sha256=a301313e38bb065d68239e79734bcd6f56fb6efaacebde29e9abf2a4735340ca
|
|
364
|
+
nokogiri (1.19.4-arm-linux-musl) sha256=588923c101bcfa78869734d247d25b598674323e7f22474fc468f6e5647311eb
|
|
365
|
+
nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527
|
|
366
|
+
nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551
|
|
367
|
+
nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a
|
|
368
|
+
nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b
|
|
369
|
+
parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356
|
|
370
|
+
parser (3.3.11.1) sha256=d17ace7aabe3e72c3cc94043714be27cc6f852f104d81aa284c2281aecc65d54
|
|
371
|
+
pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570
|
|
375
372
|
prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
|
|
376
373
|
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
|
|
377
|
-
psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974
|
|
378
374
|
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
|
379
|
-
rack (3.2.
|
|
380
|
-
rack-session (2.1.
|
|
375
|
+
rack (3.2.6) sha256=5ed78e1f73b2e25679bec7d45ee2d4483cc4146eb1be0264fc4d94cb5ef212c2
|
|
376
|
+
rack-session (2.1.2) sha256=595434f8c0c3473ae7d7ac56ecda6cc6dfd9d37c0b2b5255330aa1576967ffe8
|
|
381
377
|
rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
|
|
382
378
|
rackup (2.3.1) sha256=6c79c26753778e90983761d677a48937ee3192b3ffef6bc963c0950f94688868
|
|
383
379
|
rails (7.2.3) sha256=9a9812eb131189676e64665f6883fc9c4051f412cc87ef9e3fa242a09c609bff
|
|
384
380
|
rails-dom-testing (2.3.0) sha256=8acc7953a7b911ca44588bf08737bc16719f431a1cc3091a292bca7317925c1d
|
|
385
|
-
rails-html-sanitizer (1.
|
|
381
|
+
rails-html-sanitizer (1.7.0) sha256=28b145cceaf9cc214a9874feaa183c3acba036c9592b19886e0e45efc62b1e89
|
|
386
382
|
railties (7.2.3) sha256=6eb010a6bfe6f223e783f739ddfcbdb5b88b1f3a87f7739f0a0685e466250422
|
|
387
383
|
rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
|
|
388
|
-
rake (13.
|
|
389
|
-
|
|
390
|
-
|
|
384
|
+
rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
|
|
385
|
+
rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14
|
|
386
|
+
rdoc (8.0.0) sha256=03bf8c08a9639658855a0cfd77c0abca8325c227693f7f33f82957811348c469
|
|
387
|
+
regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb
|
|
391
388
|
reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
|
|
392
|
-
role_fu (0.
|
|
389
|
+
role_fu (0.5.0)
|
|
393
390
|
rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
|
|
394
391
|
rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
|
|
395
392
|
rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
|
|
396
|
-
rspec-mocks (3.13.
|
|
393
|
+
rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
|
|
397
394
|
rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
|
|
398
|
-
rubocop (1.
|
|
399
|
-
rubocop-ast (1.
|
|
395
|
+
rubocop (1.87.0) sha256=b9d9ddf55116a513f8ef2c7ae660662d8b49301f118d3f0df61865b33a5c188d
|
|
396
|
+
rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
|
|
400
397
|
rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
|
|
401
|
-
rubocop-rspec (3.
|
|
398
|
+
rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2
|
|
402
399
|
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
|
403
400
|
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
|
|
404
|
-
simplecov (0.
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
sqlite3 (2.9.
|
|
408
|
-
sqlite3 (2.9.
|
|
409
|
-
sqlite3 (2.9.
|
|
410
|
-
sqlite3 (2.9.
|
|
411
|
-
sqlite3 (2.9.
|
|
412
|
-
sqlite3 (2.9.
|
|
413
|
-
|
|
414
|
-
sqlite3 (2.9.0-x86_64-linux-musl) sha256=ef716ba7a66d7deb1ccc402ac3a6d7343da17fac862793b7f0be3d2917253c90
|
|
415
|
-
standard (1.53.0) sha256=f3c9493385db7079d0abce6f7582f553122156997b81258cd361d3480eeacf9c
|
|
401
|
+
simplecov (1.0.1) sha256=419d93c40484159d20b40e26e9a83cdd4c3afa2f3fd443bb8946c301cd658d75
|
|
402
|
+
sqlite3 (2.9.5-aarch64-linux-gnu) sha256=78075b6337d3d182c6d2b4691049ed45cd220826160c9ea18946bf6a1de200dc
|
|
403
|
+
sqlite3 (2.9.5-aarch64-linux-musl) sha256=18c801185deb4adc01ddb281e8f672a39e3d1729979ca91e39439cd3eac0402d
|
|
404
|
+
sqlite3 (2.9.5-arm-linux-gnu) sha256=1bdfca0c7d63998c60b0f4a8e3c8df2d33800ccc4abd2d612eddbbbc92a4c48b
|
|
405
|
+
sqlite3 (2.9.5-arm-linux-musl) sha256=bae1109d12b2e9f588455967729b008e1ff4feb7761749df695019c9079913c6
|
|
406
|
+
sqlite3 (2.9.5-arm64-darwin) sha256=d0cf444a70fc9395d513cfbcc1e6719e224aa645314e3824cb0474c721425aa2
|
|
407
|
+
sqlite3 (2.9.5-x86_64-darwin) sha256=8e9caae38bd7ebb29cbeee3e7ab1d12dc2327d9a1b92c7fcf0dda05589627a81
|
|
408
|
+
sqlite3 (2.9.5-x86_64-linux-gnu) sha256=233dbcb6714148dd23bc5aeb33e8efd6eac974969564ddd5794c23d5f52b231e
|
|
409
|
+
sqlite3 (2.9.5-x86_64-linux-musl) sha256=e7d3a7474e8af0f96150c21abc203fbab5437206bfcdf11deab7741c0ca516f2
|
|
410
|
+
standard (1.55.0) sha256=8a8f2c3e681a4db3aafde1b301561b0f3d7c5f06c160167cb744a4d7baf0426e
|
|
416
411
|
standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b
|
|
417
412
|
standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2
|
|
418
|
-
stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
|
|
419
413
|
thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
|
|
420
|
-
timeout (0.6.
|
|
414
|
+
timeout (0.6.1) sha256=78f57368a7e7bbadec56971f78a3f5ecbcfb59b7fcbb0a3ed6ddc08a5094accb
|
|
421
415
|
tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
|
|
422
416
|
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
|
|
423
417
|
unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
|
|
424
418
|
unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
|
|
425
419
|
useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
|
|
426
|
-
websocket-driver (0.8.
|
|
420
|
+
websocket-driver (0.8.2) sha256=97c556b019bf3410b4961002ac501621e9322d3f8a7bc02161a09301cc4c4146
|
|
427
421
|
websocket-extensions (0.1.5) sha256=1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241
|
|
428
|
-
zeitwerk (2.
|
|
422
|
+
zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12
|
|
429
423
|
|
|
430
424
|
BUNDLED WITH
|
|
431
425
|
4.0.5
|