rbacan 0.1.2 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +50 -0
- data/Gemfile.lock +287 -115
- data/README.md +287 -36
- data/app/models/rbacan/user_role.rb +1 -0
- data/lib/generators/install/templates/copy_to_seeds.rb +13 -17
- data/lib/generators/install/templates/create_permissions.rb +9 -7
- data/lib/generators/install/templates/create_role_permissions.rb +10 -7
- data/lib/generators/install/templates/create_roles.rb +9 -7
- data/lib/generators/install/templates/create_user_roles.rb +11 -8
- data/lib/generators/install/templates/rbacan.rb +27 -0
- data/lib/rbacan/authorization.rb +46 -0
- data/lib/rbacan/engine.rb +9 -3
- data/lib/rbacan/not_authorized.rb +23 -0
- data/lib/rbacan/permittable.rb +74 -29
- data/lib/rbacan/roles_and_permissions.rb +28 -20
- data/lib/rbacan/route_constraint.rb +50 -0
- data/lib/rbacan/version.rb +1 -1
- data/lib/rbacan/view_helpers.rb +14 -0
- data/lib/rbacan.rb +22 -18
- data/rbacan.gemspec +16 -19
- metadata +46 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2630f72887158aefbf75a65ce46ba0737f33c8bae124dd0a1df0ff5fc8593119
|
|
4
|
+
data.tar.gz: 79b900d3f3364ac4c3a2992af568758bd215b03c375d2eddb55561decbb7273b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 38232503a68a16c6a1b045e8a0dc9988c1a75bc992ecd5156991b35727993b85b496cb907f84c25c4a91758191290cd58f096c740a3a8ea2110b603d2b7d84e3
|
|
7
|
+
data.tar.gz: ebb7c23f339156e260f00b57995d7c0de754163f6c8c680064bd67867a1347f16c090bbe97c787c9ab98988b8b76ae8c75fc2d3622b830b362ab0f35c8f649d7
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [0.2.0] - 2026-03-31
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `Rbacan::Authorization` controller concern with `authorize!` and `authorize_role!` methods
|
|
10
|
+
- `Rbacan::NotAuthorized` exception class with readable messages (includes the missing permission or role name)
|
|
11
|
+
- `Rbacan::ViewHelpers` — `authorized?(permission) { }` block helper, auto-included into ActionView
|
|
12
|
+
- `Rbacan::RouteConstraint` — restrict route namespaces by role or permission via Warden/session
|
|
13
|
+
- `has_role?(role)` — check if a user has a specific role
|
|
14
|
+
- `has_any_role?(*roles)` — check if a user has at least one of the listed roles
|
|
15
|
+
- `can_all?(*permissions)` — check if a user has every listed permission (single query)
|
|
16
|
+
- `User.with_role(role)` scope — query all users with a given role
|
|
17
|
+
- `User.with_permission(permission)` scope — query all users who have a given permission via any role
|
|
18
|
+
- `unauthorized_handler` config option (`:raise`, `:redirect`, or a callable lambda/proc)
|
|
19
|
+
- `unauthorized_redirect_path` config option used when `unauthorized_handler` is `:redirect`
|
|
20
|
+
- DB-level unique indexes on `roles.name` and `permissions.name`
|
|
21
|
+
- Composite unique indexes on `role_permissions (role_id, permission_id)` and `user_roles (user_id, role_id)`
|
|
22
|
+
- Full RSpec test suite (29 examples) with in-memory SQLite setup and transaction rollback isolation
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- `assign_role` was using `find_or_initialize_by` and never persisting the new `UserRole` record — fixed to `find_or_create_by`
|
|
27
|
+
- `Rbacan` module methods (`create_role`, `create_permission`, `assign_permission_to_role`) were calling `.create` on a String class name, raising `NoMethodError` — fixed with `.constantize`
|
|
28
|
+
- `remove_role` was hardcoding `user_id:` in a raw `where` clause — now uses the scoped `user_roles` association
|
|
29
|
+
- `can?` was issuing two queries (one to find the permission, one to check the join) — collapsed into a single `EXISTS` query
|
|
30
|
+
- `RolesAndPermissions` seed methods used `create` which would raise on re-runs — changed to `find_or_create_by`
|
|
31
|
+
- Seed file template referenced an undefined local variable `role_name` — fixed with commented examples
|
|
32
|
+
- Migration files were locked to `ActiveRecord::Migration[5.2]` — now use `current_version` dynamically
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- `rails >= 4.2` dependency bumped to `>= 5.2` (required for `Migration.current_version`)
|
|
37
|
+
- `rake ~> 10.0` dev dependency bumped to `~> 13.0` (Rake 10 is incompatible with Ruby 3+)
|
|
38
|
+
- Initializer template updated to document all available configuration options
|
|
39
|
+
- README fully rewritten to cover all features
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## [0.1.4] - (initial release)
|
|
44
|
+
|
|
45
|
+
- Role and permission models with migrations
|
|
46
|
+
- `assign_role` / `remove_role` on user
|
|
47
|
+
- `can?(permission)` permission check
|
|
48
|
+
- `rails generate rbacan:install` generator
|
|
49
|
+
- `Rbacan::RolesAndPermissions` seed helpers
|
|
50
|
+
- Configurable `permittable_class`
|
data/Gemfile.lock
CHANGED
|
@@ -1,147 +1,319 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
rbacan (0.
|
|
5
|
-
rails (>=
|
|
4
|
+
rbacan (0.2.0)
|
|
5
|
+
rails (>= 5.2)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
action_text-trix (2.1.18)
|
|
11
|
+
railties
|
|
12
|
+
actioncable (8.1.3)
|
|
13
|
+
actionpack (= 8.1.3)
|
|
14
|
+
activesupport (= 8.1.3)
|
|
12
15
|
nio4r (~> 2.0)
|
|
13
16
|
websocket-driver (>= 0.6.1)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
activejob (=
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
zeitwerk (~> 2.6)
|
|
18
|
+
actionmailbox (8.1.3)
|
|
19
|
+
actionpack (= 8.1.3)
|
|
20
|
+
activejob (= 8.1.3)
|
|
21
|
+
activerecord (= 8.1.3)
|
|
22
|
+
activestorage (= 8.1.3)
|
|
23
|
+
activesupport (= 8.1.3)
|
|
24
|
+
mail (>= 2.8.0)
|
|
25
|
+
actionmailer (8.1.3)
|
|
26
|
+
actionpack (= 8.1.3)
|
|
27
|
+
actionview (= 8.1.3)
|
|
28
|
+
activejob (= 8.1.3)
|
|
29
|
+
activesupport (= 8.1.3)
|
|
30
|
+
mail (>= 2.8.0)
|
|
31
|
+
rails-dom-testing (~> 2.2)
|
|
32
|
+
actionpack (8.1.3)
|
|
33
|
+
actionview (= 8.1.3)
|
|
34
|
+
activesupport (= 8.1.3)
|
|
35
|
+
nokogiri (>= 1.8.5)
|
|
36
|
+
rack (>= 2.2.4)
|
|
37
|
+
rack-session (>= 1.0.1)
|
|
24
38
|
rack-test (>= 0.6.3)
|
|
25
|
-
rails-dom-testing (~> 2.
|
|
26
|
-
rails-html-sanitizer (~> 1.
|
|
27
|
-
|
|
28
|
-
|
|
39
|
+
rails-dom-testing (~> 2.2)
|
|
40
|
+
rails-html-sanitizer (~> 1.6)
|
|
41
|
+
useragent (~> 0.16)
|
|
42
|
+
actiontext (8.1.3)
|
|
43
|
+
action_text-trix (~> 2.1.15)
|
|
44
|
+
actionpack (= 8.1.3)
|
|
45
|
+
activerecord (= 8.1.3)
|
|
46
|
+
activestorage (= 8.1.3)
|
|
47
|
+
activesupport (= 8.1.3)
|
|
48
|
+
globalid (>= 0.6.0)
|
|
49
|
+
nokogiri (>= 1.8.5)
|
|
50
|
+
actionview (8.1.3)
|
|
51
|
+
activesupport (= 8.1.3)
|
|
29
52
|
builder (~> 3.1)
|
|
30
|
-
erubi (~> 1.
|
|
31
|
-
rails-dom-testing (~> 2.
|
|
32
|
-
rails-html-sanitizer (~> 1.
|
|
33
|
-
activejob (
|
|
34
|
-
activesupport (=
|
|
53
|
+
erubi (~> 1.11)
|
|
54
|
+
rails-dom-testing (~> 2.2)
|
|
55
|
+
rails-html-sanitizer (~> 1.6)
|
|
56
|
+
activejob (8.1.3)
|
|
57
|
+
activesupport (= 8.1.3)
|
|
35
58
|
globalid (>= 0.3.6)
|
|
36
|
-
activemodel (
|
|
37
|
-
activesupport (=
|
|
38
|
-
activerecord (
|
|
39
|
-
activemodel (=
|
|
40
|
-
activesupport (=
|
|
41
|
-
|
|
42
|
-
activestorage (
|
|
43
|
-
actionpack (=
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
activemodel (8.1.3)
|
|
60
|
+
activesupport (= 8.1.3)
|
|
61
|
+
activerecord (8.1.3)
|
|
62
|
+
activemodel (= 8.1.3)
|
|
63
|
+
activesupport (= 8.1.3)
|
|
64
|
+
timeout (>= 0.4.0)
|
|
65
|
+
activestorage (8.1.3)
|
|
66
|
+
actionpack (= 8.1.3)
|
|
67
|
+
activejob (= 8.1.3)
|
|
68
|
+
activerecord (= 8.1.3)
|
|
69
|
+
activesupport (= 8.1.3)
|
|
70
|
+
marcel (~> 1.0)
|
|
71
|
+
activesupport (8.1.3)
|
|
72
|
+
base64
|
|
73
|
+
bigdecimal
|
|
74
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
75
|
+
connection_pool (>= 2.2.5)
|
|
76
|
+
drb
|
|
77
|
+
i18n (>= 1.6, < 2)
|
|
78
|
+
json
|
|
79
|
+
logger (>= 1.4.2)
|
|
80
|
+
minitest (>= 5.1)
|
|
81
|
+
securerandom (>= 0.3)
|
|
82
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
|
83
|
+
uri (>= 0.13.1)
|
|
84
|
+
base64 (0.3.0)
|
|
85
|
+
bigdecimal (4.1.0)
|
|
86
|
+
builder (3.3.0)
|
|
87
|
+
concurrent-ruby (1.3.6)
|
|
88
|
+
connection_pool (3.0.2)
|
|
89
|
+
crass (1.0.6)
|
|
90
|
+
date (3.5.1)
|
|
91
|
+
diff-lcs (1.6.2)
|
|
92
|
+
drb (2.2.3)
|
|
93
|
+
erb (6.0.2)
|
|
94
|
+
erubi (1.13.1)
|
|
95
|
+
generator_spec (0.9.5)
|
|
58
96
|
activesupport (>= 3.0.0)
|
|
59
97
|
railties (>= 3.0.0)
|
|
60
|
-
globalid (
|
|
61
|
-
activesupport (>=
|
|
62
|
-
i18n (1.
|
|
98
|
+
globalid (1.3.0)
|
|
99
|
+
activesupport (>= 6.1)
|
|
100
|
+
i18n (1.14.8)
|
|
63
101
|
concurrent-ruby (~> 1.0)
|
|
64
|
-
|
|
102
|
+
io-console (0.8.2)
|
|
103
|
+
irb (1.17.0)
|
|
104
|
+
pp (>= 0.6.0)
|
|
105
|
+
prism (>= 1.3.0)
|
|
106
|
+
rdoc (>= 4.0.0)
|
|
107
|
+
reline (>= 0.4.2)
|
|
108
|
+
json (2.19.3)
|
|
109
|
+
logger (1.7.0)
|
|
110
|
+
loofah (2.25.1)
|
|
65
111
|
crass (~> 1.0.2)
|
|
66
|
-
nokogiri (>= 1.
|
|
67
|
-
mail (2.
|
|
112
|
+
nokogiri (>= 1.12.0)
|
|
113
|
+
mail (2.9.0)
|
|
114
|
+
logger
|
|
68
115
|
mini_mime (>= 0.1.1)
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
mini_mime (1.
|
|
74
|
-
mini_portile2 (2.
|
|
75
|
-
minitest (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
116
|
+
net-imap
|
|
117
|
+
net-pop
|
|
118
|
+
net-smtp
|
|
119
|
+
marcel (1.1.0)
|
|
120
|
+
mini_mime (1.1.5)
|
|
121
|
+
mini_portile2 (2.8.9)
|
|
122
|
+
minitest (6.0.2)
|
|
123
|
+
drb (~> 2.0)
|
|
124
|
+
prism (~> 1.5)
|
|
125
|
+
net-imap (0.6.3)
|
|
126
|
+
date
|
|
127
|
+
net-protocol
|
|
128
|
+
net-pop (0.1.2)
|
|
129
|
+
net-protocol
|
|
130
|
+
net-protocol (0.2.2)
|
|
131
|
+
timeout
|
|
132
|
+
net-smtp (0.5.1)
|
|
133
|
+
net-protocol
|
|
134
|
+
nio4r (2.7.5)
|
|
135
|
+
nokogiri (1.19.2)
|
|
136
|
+
mini_portile2 (~> 2.8.2)
|
|
137
|
+
racc (~> 1.4)
|
|
138
|
+
nokogiri (1.19.2-x86_64-linux-gnu)
|
|
139
|
+
racc (~> 1.4)
|
|
140
|
+
pp (0.6.3)
|
|
141
|
+
prettyprint
|
|
142
|
+
prettyprint (0.2.0)
|
|
143
|
+
prism (1.9.0)
|
|
144
|
+
psych (5.3.1)
|
|
145
|
+
date
|
|
146
|
+
stringio
|
|
147
|
+
racc (1.8.1)
|
|
148
|
+
rack (3.2.5)
|
|
149
|
+
rack-session (2.1.1)
|
|
150
|
+
base64 (>= 0.1.0)
|
|
151
|
+
rack (>= 3.0.0)
|
|
152
|
+
rack-test (2.2.0)
|
|
153
|
+
rack (>= 1.3)
|
|
154
|
+
rackup (2.3.1)
|
|
155
|
+
rack (>= 3)
|
|
156
|
+
rails (8.1.3)
|
|
157
|
+
actioncable (= 8.1.3)
|
|
158
|
+
actionmailbox (= 8.1.3)
|
|
159
|
+
actionmailer (= 8.1.3)
|
|
160
|
+
actionpack (= 8.1.3)
|
|
161
|
+
actiontext (= 8.1.3)
|
|
162
|
+
actionview (= 8.1.3)
|
|
163
|
+
activejob (= 8.1.3)
|
|
164
|
+
activemodel (= 8.1.3)
|
|
165
|
+
activerecord (= 8.1.3)
|
|
166
|
+
activestorage (= 8.1.3)
|
|
167
|
+
activesupport (= 8.1.3)
|
|
168
|
+
bundler (>= 1.15.0)
|
|
169
|
+
railties (= 8.1.3)
|
|
170
|
+
rails-dom-testing (2.3.0)
|
|
171
|
+
activesupport (>= 5.0.0)
|
|
172
|
+
minitest
|
|
97
173
|
nokogiri (>= 1.6)
|
|
98
|
-
rails-html-sanitizer (1.
|
|
99
|
-
loofah (~> 2.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
174
|
+
rails-html-sanitizer (1.7.0)
|
|
175
|
+
loofah (~> 2.25)
|
|
176
|
+
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)
|
|
177
|
+
railties (8.1.3)
|
|
178
|
+
actionpack (= 8.1.3)
|
|
179
|
+
activesupport (= 8.1.3)
|
|
180
|
+
irb (~> 1.13)
|
|
181
|
+
rackup (>= 1.0.0)
|
|
182
|
+
rake (>= 12.2)
|
|
183
|
+
thor (~> 1.0, >= 1.2.2)
|
|
184
|
+
tsort (>= 0.2)
|
|
185
|
+
zeitwerk (~> 2.6)
|
|
186
|
+
rake (13.3.1)
|
|
187
|
+
rdoc (7.2.0)
|
|
188
|
+
erb
|
|
189
|
+
psych (>= 4.0.0)
|
|
190
|
+
tsort
|
|
191
|
+
reline (0.6.3)
|
|
192
|
+
io-console (~> 0.5)
|
|
193
|
+
rspec (3.13.2)
|
|
194
|
+
rspec-core (~> 3.13.0)
|
|
195
|
+
rspec-expectations (~> 3.13.0)
|
|
196
|
+
rspec-mocks (~> 3.13.0)
|
|
197
|
+
rspec-core (3.13.6)
|
|
198
|
+
rspec-support (~> 3.13.0)
|
|
199
|
+
rspec-expectations (3.13.5)
|
|
114
200
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
115
|
-
rspec-support (~> 3.
|
|
116
|
-
rspec-mocks (3.8
|
|
201
|
+
rspec-support (~> 3.13.0)
|
|
202
|
+
rspec-mocks (3.13.8)
|
|
117
203
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
118
|
-
rspec-support (~> 3.
|
|
119
|
-
rspec-support (3.
|
|
120
|
-
|
|
204
|
+
rspec-support (~> 3.13.0)
|
|
205
|
+
rspec-support (3.13.7)
|
|
206
|
+
securerandom (0.4.1)
|
|
207
|
+
sqlite3 (2.9.2)
|
|
208
|
+
mini_portile2 (~> 2.8.0)
|
|
209
|
+
sqlite3 (2.9.2-x86_64-linux-gnu)
|
|
210
|
+
stringio (3.2.0)
|
|
211
|
+
thor (1.5.0)
|
|
212
|
+
timeout (0.6.1)
|
|
213
|
+
tsort (0.2.0)
|
|
214
|
+
tzinfo (2.0.6)
|
|
121
215
|
concurrent-ruby (~> 1.0)
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
sprockets (>= 3.0.0)
|
|
127
|
-
thor (0.20.3)
|
|
128
|
-
thread_safe (0.3.6)
|
|
129
|
-
tzinfo (1.2.5)
|
|
130
|
-
thread_safe (~> 0.1)
|
|
131
|
-
websocket-driver (0.7.1)
|
|
216
|
+
uri (1.1.1)
|
|
217
|
+
useragent (0.16.11)
|
|
218
|
+
websocket-driver (0.8.0)
|
|
219
|
+
base64
|
|
132
220
|
websocket-extensions (>= 0.1.0)
|
|
133
|
-
websocket-extensions (0.1.
|
|
221
|
+
websocket-extensions (0.1.5)
|
|
222
|
+
zeitwerk (2.7.5)
|
|
134
223
|
|
|
135
224
|
PLATFORMS
|
|
136
225
|
ruby
|
|
226
|
+
x86_64-linux
|
|
137
227
|
|
|
138
228
|
DEPENDENCIES
|
|
139
|
-
|
|
229
|
+
activerecord (>= 5.2)
|
|
230
|
+
bundler (>= 2.0)
|
|
140
231
|
generator_spec (~> 0.9.4)
|
|
141
|
-
railties (
|
|
142
|
-
rake (~>
|
|
232
|
+
railties (>= 5.2)
|
|
233
|
+
rake (~> 13.0)
|
|
143
234
|
rbacan!
|
|
144
235
|
rspec (~> 3.0)
|
|
236
|
+
sqlite3 (>= 1.4)
|
|
237
|
+
|
|
238
|
+
CHECKSUMS
|
|
239
|
+
action_text-trix (2.1.18) sha256=3fdb83f8bff4145d098be283cdd47ac41caf5110bfa6df4695ed7127d7fb3642
|
|
240
|
+
actioncable (8.1.3) sha256=e5bc7f75e44e6a22de29c4f43176927c3a9ce4824464b74ed18d8226e75a80f0
|
|
241
|
+
actionmailbox (8.1.3) sha256=df7da474eaa0e70df4ed5a6fef66eb3b3b0f2dbf7f14518deee8d77f1b4aae59
|
|
242
|
+
actionmailer (8.1.3) sha256=831f724891bb70d0aaa4d76581a6321124b6a752cb655c9346aae5479318448d
|
|
243
|
+
actionpack (8.1.3) sha256=af998cae4d47c5d581a2cc363b5c77eb718b7c4b45748d81b1887b25621c29a3
|
|
244
|
+
actiontext (8.1.3) sha256=d291019c00e1ea9e6463011fa214f6081a56d7b9a1d224e7d3f6384c1dafc7d2
|
|
245
|
+
actionview (8.1.3) sha256=1347c88c7f3edb38100c5ce0e9fb5e62d7755f3edc1b61cce2eb0b2c6ea2fd5d
|
|
246
|
+
activejob (8.1.3) sha256=a149b1766aa8204c3c3da7309e4becd40fcd5529c348cffbf6c9b16b565fe8d3
|
|
247
|
+
activemodel (8.1.3) sha256=90c05cbe4cef3649b8f79f13016191ea94c4525ce4a5c0fb7ef909c4b91c8219
|
|
248
|
+
activerecord (8.1.3) sha256=8003be7b2466ba0a2a670e603eeb0a61dd66058fccecfc49901e775260ac70ab
|
|
249
|
+
activestorage (8.1.3) sha256=0564ce9309143951a67615e1bb4e090ee54b8befed417133cae614479b46384d
|
|
250
|
+
activesupport (8.1.3) sha256=21a5e0dfbd4c3ddd9e1317ec6a4d782fa226e7867dc70b0743acda81a1dca20e
|
|
251
|
+
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
|
|
252
|
+
bigdecimal (4.1.0) sha256=6dc07767aa3dc456ccd48e7ae70a07b474e9afd7c5bc576f80bd6da5c8dd6cae
|
|
253
|
+
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
|
|
254
|
+
concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
|
|
255
|
+
connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
|
|
256
|
+
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
|
|
257
|
+
date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
|
|
258
|
+
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
|
|
259
|
+
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
|
|
260
|
+
erb (6.0.2) sha256=9fe6264d44f79422c87490a1558479bd0e7dad4dd0e317656e67ea3077b5242b
|
|
261
|
+
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
|
|
262
|
+
generator_spec (0.9.5) sha256=eb14b6ec4f2f8ba36c81f0ddb28f63291654697a5f94064aad6767f82d469619
|
|
263
|
+
globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
|
|
264
|
+
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
|
|
265
|
+
io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
|
|
266
|
+
irb (1.17.0) sha256=168c4ddb93d8a361a045c41d92b2952c7a118fa73f23fe14e55609eb7a863aae
|
|
267
|
+
json (2.19.3) sha256=289b0bb53052a1fa8c34ab33cc750b659ba14a5c45f3fcf4b18762dc67c78646
|
|
268
|
+
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
|
269
|
+
loofah (2.25.1) sha256=d436c73dbd0c1147b16c4a41db097942d217303e1f7728704b37e4df9f6d2e04
|
|
270
|
+
mail (2.9.0) sha256=6fa6673ecd71c60c2d996260f9ee3dd387d4673b8169b502134659ece6d34941
|
|
271
|
+
marcel (1.1.0) sha256=fdcfcfa33cc52e93c4308d40e4090a5d4ea279e160a7f6af988260fa970e0bee
|
|
272
|
+
mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
|
|
273
|
+
mini_portile2 (2.8.9) sha256=0cd7c7f824e010c072e33f68bc02d85a00aeb6fce05bb4819c03dfd3c140c289
|
|
274
|
+
minitest (6.0.2) sha256=db6e57956f6ecc6134683b4c87467d6dd792323c7f0eea7b93f66bd284adbc3d
|
|
275
|
+
net-imap (0.6.3) sha256=9bab75f876596d09ee7bf911a291da478e0cd6badc54dfb82874855ccc82f2ad
|
|
276
|
+
net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
|
|
277
|
+
net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
|
|
278
|
+
net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736
|
|
279
|
+
nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1
|
|
280
|
+
nokogiri (1.19.2) sha256=38fdd8b59db3d5ea9e7dfb14702e882b9bf819198d5bf976f17ebce12c481756
|
|
281
|
+
nokogiri (1.19.2-x86_64-linux-gnu) sha256=fa8feca882b73e871a9845f3817a72e9734c8e974bdc4fbad6e4bc6e8076b94f
|
|
282
|
+
pp (0.6.3) sha256=2951d514450b93ccfeb1df7d021cae0da16e0a7f95ee1e2273719669d0ab9df6
|
|
283
|
+
prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
|
|
284
|
+
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
|
|
285
|
+
psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974
|
|
286
|
+
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
|
287
|
+
rack (3.2.5) sha256=4cbd0974c0b79f7a139b4812004a62e4c60b145cba76422e288ee670601ed6d3
|
|
288
|
+
rack-session (2.1.1) sha256=0b6dc07dea7e4b583f58a48e8b806d4c9f1c6c9214ebc202ec94562cbea2e4e9
|
|
289
|
+
rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
|
|
290
|
+
rackup (2.3.1) sha256=6c79c26753778e90983761d677a48937ee3192b3ffef6bc963c0950f94688868
|
|
291
|
+
rails (8.1.3) sha256=6d017ba5348c98fc909753a8169b21d44de14d2a0b92d140d1a966834c3c9cd3
|
|
292
|
+
rails-dom-testing (2.3.0) sha256=8acc7953a7b911ca44588bf08737bc16719f431a1cc3091a292bca7317925c1d
|
|
293
|
+
rails-html-sanitizer (1.7.0) sha256=28b145cceaf9cc214a9874feaa183c3acba036c9592b19886e0e45efc62b1e89
|
|
294
|
+
railties (8.1.3) sha256=913eb0e0cb520aac687ffd74916bd726d48fa21f47833c6292576ef6a286de22
|
|
295
|
+
rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
|
|
296
|
+
rbacan (0.2.0)
|
|
297
|
+
rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
|
|
298
|
+
reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
|
|
299
|
+
rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
|
|
300
|
+
rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
|
|
301
|
+
rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
|
|
302
|
+
rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
|
|
303
|
+
rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
|
|
304
|
+
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
|
|
305
|
+
sqlite3 (2.9.2) sha256=86814150714b6b06a328d083f46408e7a4a83b5f0a9673ed934ee3a1cb7a73b1
|
|
306
|
+
sqlite3 (2.9.2-x86_64-linux-gnu) sha256=dce83ffcb7e72f9f7aeb6e5404f15d277a45332fe18ccce8a8b3ed51e8d23aee
|
|
307
|
+
stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
|
|
308
|
+
thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
|
|
309
|
+
timeout (0.6.1) sha256=78f57368a7e7bbadec56971f78a3f5ecbcfb59b7fcbb0a3ed6ddc08a5094accb
|
|
310
|
+
tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
|
|
311
|
+
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
|
|
312
|
+
uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
|
|
313
|
+
useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
|
|
314
|
+
websocket-driver (0.8.0) sha256=ed0dba4b943c22f17f9a734817e808bc84cdce6a7e22045f5315aa57676d4962
|
|
315
|
+
websocket-extensions (0.1.5) sha256=1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241
|
|
316
|
+
zeitwerk (2.7.5) sha256=d8da92128c09ea6ec62c949011b00ed4a20242b255293dd66bf41545398f73dd
|
|
145
317
|
|
|
146
318
|
BUNDLED WITH
|
|
147
|
-
|
|
319
|
+
4.0.9
|