activeadmin-tom_select 4.1.0 → 4.1.1
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/.claude/commands/fix-tests.md +1 -1
- data/.github/workflows/ci.yml +3 -4
- data/.github/workflows/npm-publish.yml +3 -3
- data/.rubocop.yml +1 -1
- data/AGENTS.md +2 -2
- data/CHANGELOG.md +19 -1
- data/Gemfile.lock +85 -79
- data/README.md +20 -18
- data/activeadmin-tom_select.gemspec +3 -3
- data/docs/guide-update-your-app.md +198 -25
- data/docs/update-tom-select.md +322 -158
- data/gemfiles/rails_7.x_active_admin_4.x.gemfile.lock +11 -11
- data/gemfiles/rails_8.x_active_admin_4.x.gemfile.lock +66 -64
- data/lib/activeadmin/inputs/filters/searchable_select_input.rb +5 -12
- data/lib/activeadmin/inputs/filters/tom_select_input.rb +19 -0
- data/lib/activeadmin/inputs/searchable_select_input.rb +5 -11
- data/lib/activeadmin/inputs/tom_select_input.rb +16 -0
- data/lib/activeadmin/tom_select/engine.rb +3 -1
- data/lib/activeadmin/tom_select/option_collection.rb +1 -1
- data/lib/activeadmin/tom_select/resource_dsl_extension.rb +1 -1
- data/lib/activeadmin/tom_select/resource_extension.rb +1 -1
- data/lib/activeadmin/tom_select/select_input_extension.rb +14 -5
- data/lib/activeadmin/tom_select/version.rb +2 -2
- data/lib/activeadmin/tom_select.rb +3 -3
- data/lib/generators/active_admin/tom_select/install/install_generator.rb +5 -5
- data/npm-package/package-lock.json +2 -2
- data/npm-package/package.json +2 -2
- data/npm-package/src/index.js +1 -3
- data/npm-package/src/tom-select-tailwind.css +26 -20
- data/sonar-project.properties +5 -4
- data/spec/features/form_input_spec.rb +2 -2
- data/spec/features/inline_ajax_setting_spec.rb +1 -1
- data/spec/internal/Gemfile.lock +1 -1
- data/spec/internal/app/admin/articles.rb +28 -0
- data/spec/internal/app/assets/config/manifest.js +2 -1
- data/spec/internal/app/assets/stylesheets/active_admin.tailwind.css +1 -1
- data/spec/internal/app/assets/stylesheets/application.tailwind.css +0 -15
- data/spec/internal/app/javascript/active_admin.js +2 -4
- data/spec/internal/db/schema.rb +3 -1
- data/spec/internal/db/seeds.rb +4 -7
- data/spec/internal/package-lock.json +3 -3
- data/spec/internal/package.json +1 -1
- data/spec/internal/yarn.lock +1 -1
- data/spec/support/reset_settings.rb +1 -1
- metadata +5 -2
data/docs/update-tom-select.md
CHANGED
@@ -1,184 +1,348 @@
|
|
1
|
-
# Tom Select Migration
|
1
|
+
# Tom Select Migration Guide for ActiveAdmin 4
|
2
2
|
|
3
3
|
## Overview
|
4
|
-
|
4
|
+
This guide documents the complete migration from ActiveAdmin Searchable Select (Select2-based) to Tom Select (vanilla JS, no jQuery) with Tailwind CSS 4 support.
|
5
5
|
|
6
|
-
## Key
|
6
|
+
## Key Benefits of Migration
|
7
7
|
|
8
|
-
|
9
|
-
**
|
10
|
-
|
11
|
-
|
8
|
+
1. **No jQuery Dependency**: Tom Select is pure vanilla JavaScript, reducing bundle size
|
9
|
+
2. **Modern JavaScript**: ES6+ modules, better performance
|
10
|
+
3. **ActiveAdmin 4 Compatible**: Full support for latest ActiveAdmin
|
11
|
+
4. **Smaller Bundle**: Removed jQuery and Select2 dependencies
|
12
12
|
|
13
|
-
|
14
|
-
- `tom-select: ^2.4.3` peer dependency
|
13
|
+
## Installation Steps
|
15
14
|
|
16
|
-
###
|
15
|
+
### 1. Update Gemfile
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
- Tom Select initialization with proper option mapping
|
22
|
-
- Handles Select2 → Tom Select option conversion (id/text → valueField/labelField)
|
17
|
+
```ruby
|
18
|
+
# Remove old gem
|
19
|
+
# gem 'rs-activeadmin-searchable_select', github: 'glebtv/activeadmin-searchable_select'
|
23
20
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
- `/spec/internal/build_activeadmin_css.js` - Old CSS build hack removed
|
28
|
-
|
29
|
-
### 3. CSS/Styling Changes
|
21
|
+
# Add new gem (from RubyGems)
|
22
|
+
gem 'activeadmin-tom_select'
|
23
|
+
```
|
30
24
|
|
31
|
-
|
32
|
-
- `/src/tom-select-tailwind.css` - Complete Tom Select styles with Tailwind classes (consolidated single file)
|
25
|
+
### 2. Update package.json
|
33
26
|
|
34
|
-
#### Package Exports Updated:
|
35
27
|
```json
|
36
|
-
|
37
|
-
"
|
28
|
+
{
|
29
|
+
"dependencies": {
|
30
|
+
// Remove these:
|
31
|
+
// "jquery": "^3.7.1",
|
32
|
+
// "select2": "^4.1.0-rc.0",
|
33
|
+
// "@rocket-sensei/activeadmin-searchable_select": "^4.0.1",
|
34
|
+
|
35
|
+
// Add these:
|
36
|
+
"tom-select": "^2.4.3",
|
37
|
+
"activeadmin-tom_select": "^4.1.0"
|
38
|
+
}
|
38
39
|
}
|
39
40
|
```
|
40
41
|
|
41
|
-
|
42
|
-
|
43
|
-
|
42
|
+
### 3. Update JavaScript (app/js/active_admin.js)
|
43
|
+
|
44
|
+
```javascript
|
45
|
+
// Import ActiveAdmin core first - includes all features and Rails UJS
|
46
|
+
import "@activeadmin/activeadmin";
|
47
|
+
|
48
|
+
// Import Tom Select
|
49
|
+
import TomSelect from 'tom-select';
|
50
|
+
window.TomSelect = TomSelect;
|
51
|
+
|
52
|
+
// Import and setup ActiveAdmin Tom Select
|
53
|
+
import { setupAutoInit, initSearchableSelects } from 'activeadmin-tom_select';
|
54
|
+
window.initSearchableSelects = initSearchableSelects;
|
55
|
+
setupAutoInit();
|
56
|
+
|
57
|
+
console.log('ActiveAdmin loaded with Tom Select');
|
58
|
+
```
|
59
|
+
|
60
|
+
**Important**: Do NOT include jQuery - it's no longer needed!
|
61
|
+
|
62
|
+
### 4. Configure CSS (app/assets/stylesheets/active_admin.tailwind.css)
|
63
|
+
|
64
|
+
**CRITICAL**: Use Tailwind's @import syntax instead of @tailwind directives when importing vendor CSS:
|
65
|
+
|
66
|
+
```css
|
67
|
+
/* Use @import syntax for proper processing order */
|
68
|
+
@import "tailwindcss/base";
|
69
|
+
@import "tailwindcss/components";
|
70
|
+
@import "tailwindcss/utilities";
|
71
|
+
|
72
|
+
/* Import vendor CSS */
|
73
|
+
@import 'tom-select/dist/css/tom-select.css';
|
74
|
+
@import 'activeadmin-tom_select/src/tom-select-tailwind.css';
|
75
|
+
|
76
|
+
/* Your custom styles here */
|
77
|
+
```
|
78
|
+
|
79
|
+
**Why @import instead of @tailwind?**
|
80
|
+
- Tailwind only processes imports at the top of the file
|
81
|
+
- Using @tailwind directives with vendor CSS imports can cause processing issues
|
82
|
+
- The @import syntax ensures proper CSS cascade order
|
83
|
+
|
84
|
+
### 5. Update Build Configuration
|
85
|
+
|
86
|
+
#### esbuild.config.js
|
87
|
+
```javascript
|
88
|
+
#!/usr/bin/env node
|
89
|
+
const esbuild = require('esbuild');
|
90
|
+
const path = require('path');
|
91
|
+
|
92
|
+
const config = {
|
93
|
+
entryPoints: [
|
94
|
+
'app/js/active_admin.js'
|
95
|
+
],
|
96
|
+
bundle: true,
|
97
|
+
sourcemap: true,
|
98
|
+
format: 'esm',
|
99
|
+
outdir: 'app/assets/builds',
|
100
|
+
publicPath: '/assets',
|
101
|
+
loader: {
|
102
|
+
'.js': 'js',
|
103
|
+
'.jsx': 'jsx',
|
104
|
+
},
|
105
|
+
define: {
|
106
|
+
'global': 'window'
|
107
|
+
}
|
108
|
+
};
|
109
|
+
|
110
|
+
// Build logic here...
|
111
|
+
```
|
112
|
+
|
113
|
+
#### tailwind-active_admin.config.js
|
114
|
+
```javascript
|
115
|
+
const execSync = require("node:child_process").execSync;
|
116
|
+
const activeAdminPlugin = require('@activeadmin/activeadmin/plugin');
|
117
|
+
|
118
|
+
const activeAdminPath = execSync("bundle show activeadmin", {
|
119
|
+
encoding: "utf-8",
|
120
|
+
}).trim();
|
121
|
+
|
122
|
+
module.exports = {
|
123
|
+
content: [
|
124
|
+
`${activeAdminPath}/vendor/javascript/flowbite.js`,
|
125
|
+
`${activeAdminPath}/plugin.js`,
|
126
|
+
`${activeAdminPath}/app/views/**/*.{arb,erb,html,rb}`,
|
127
|
+
"./app/admin/**/*.{arb,erb,html,rb}",
|
128
|
+
"./app/views/active_admin/**/*.{arb,erb,html,rb}",
|
129
|
+
"./app/views/admin/**/*.{arb,erb,html,rb}",
|
130
|
+
"./app/js/**/*.{js,jsx}",
|
131
|
+
"./app/views/**/*.{erb,html}"
|
132
|
+
],
|
133
|
+
darkMode: "selector",
|
134
|
+
plugins: [activeAdminPlugin],
|
135
|
+
safelist: [
|
136
|
+
// Tom Select classes
|
137
|
+
'tom-select-input',
|
138
|
+
{ pattern: /^ts-/ },
|
139
|
+
// Other ActiveAdmin dynamic classes
|
140
|
+
'panel-collapsed',
|
141
|
+
'status-tag',
|
142
|
+
// Add your custom classes here
|
143
|
+
]
|
144
|
+
};
|
145
|
+
```
|
146
|
+
|
147
|
+
### 6. Create Rake Task for CSS Building (lib/tasks/active_admin.rake)
|
148
|
+
|
149
|
+
```ruby
|
150
|
+
namespace :active_admin do
|
151
|
+
desc "Build Active Admin Tailwind stylesheets"
|
152
|
+
task build: :environment do
|
153
|
+
command = [
|
154
|
+
"npx", "tailwindcss",
|
155
|
+
"-i", Rails.root.join("app/assets/stylesheets/active_admin.tailwind.css").to_s,
|
156
|
+
"-o", Rails.root.join("app/assets/builds/active_admin.css").to_s,
|
157
|
+
"-c", Rails.root.join("tailwind-active_admin.config.js").to_s,
|
158
|
+
"-m"
|
159
|
+
]
|
160
|
+
|
161
|
+
puts "Building Active Admin CSS..."
|
162
|
+
system(*command, exception: true)
|
163
|
+
end
|
164
|
+
|
165
|
+
desc "Watch Active Admin Tailwind stylesheets"
|
166
|
+
task watch: :environment do
|
167
|
+
command = [
|
168
|
+
"npx", "tailwindcss",
|
169
|
+
"--watch",
|
170
|
+
"-i", Rails.root.join("app/assets/stylesheets/active_admin.tailwind.css").to_s,
|
171
|
+
"-o", Rails.root.join("app/assets/builds/active_admin.css").to_s,
|
172
|
+
"-c", Rails.root.join("tailwind-active_admin.config.js").to_s,
|
173
|
+
"-m"
|
174
|
+
]
|
175
|
+
|
176
|
+
puts "Watching Active Admin CSS..."
|
177
|
+
system(*command)
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
Rake::Task["assets:precompile"].enhance(["active_admin:build"]) if Rake::Task.task_defined?("assets:precompile")
|
182
|
+
```
|
44
183
|
|
45
|
-
###
|
184
|
+
### 7. Update package.json Scripts
|
46
185
|
|
47
|
-
|
186
|
+
```json
|
187
|
+
{
|
188
|
+
"scripts": {
|
189
|
+
"build:js": "node esbuild.config.js",
|
190
|
+
"build:css": "bundle exec rake active_admin:build",
|
191
|
+
"build": "npm run build:js && npm run build:css",
|
192
|
+
"watch:js": "node esbuild.config.js --watch",
|
193
|
+
"watch:css": "bundle exec rake active_admin:watch",
|
194
|
+
"dev": "npm run watch:js & npm run watch:css"
|
195
|
+
}
|
196
|
+
}
|
48
197
|
```
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
198
|
+
|
199
|
+
## Migration Cleanup
|
200
|
+
|
201
|
+
### Files to Remove
|
202
|
+
- `inject-jquery.js` - No longer needed
|
203
|
+
- Any Select2-specific CSS files
|
204
|
+
- jQuery-specific initialization code
|
205
|
+
|
206
|
+
### Update Initializers
|
207
|
+
```ruby
|
208
|
+
# config/initializers/activeadmin_tom_select.rb (rename from activeadmin_searchable_select.rb)
|
209
|
+
require 'activeadmin-tom_select' if defined?(ActiveAdmin)
|
56
210
|
```
|
57
211
|
|
58
|
-
|
59
|
-
-
|
60
|
-
-
|
61
|
-
-
|
212
|
+
### Remove jQuery References
|
213
|
+
- Remove jQuery from package.json
|
214
|
+
- Remove inject-jquery.js from esbuild config
|
215
|
+
- Update any custom JavaScript to use vanilla JS instead of jQuery
|
216
|
+
|
217
|
+
## Usage in ActiveAdmin
|
218
|
+
|
219
|
+
The usage remains the same - no changes needed in your admin files:
|
220
|
+
|
221
|
+
```ruby
|
222
|
+
ActiveAdmin.register User do
|
223
|
+
# In forms
|
224
|
+
form do |f|
|
225
|
+
f.input :company, as: :searchable_select
|
226
|
+
f.input :role, as: :searchable_select,
|
227
|
+
ajax: { resource: Role }
|
228
|
+
end
|
229
|
+
|
230
|
+
# In filters
|
231
|
+
filter :company, as: :searchable_select
|
232
|
+
filter :created_by, as: :searchable_select,
|
233
|
+
ajax: { resource: User }
|
234
|
+
end
|
235
|
+
```
|
62
236
|
|
63
|
-
|
64
|
-
- Integrated comprehensive ActiveAdmin styles from docs/tailwind-4 setup
|
65
|
-
- Included all ActiveAdmin component styles (panels, data tables, filters, forms, etc.)
|
66
|
-
- Tom Select styles are imported at the end of the CSS file
|
67
|
-
- All styles are properly processed by Tailwind CSS and included in the final build
|
68
|
-
- Fixed styling issues that were breaking ActiveAdmin UI components
|
237
|
+
## CSS Class Changes for Custom Styling
|
69
238
|
|
70
|
-
|
239
|
+
If you have custom CSS, update these selectors:
|
71
240
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
| `.select2-container` | `.ts-wrapper` or `.ts-control` |
|
241
|
+
| Old (Select2) | New (Tom Select) |
|
242
|
+
|--------------|------------------|
|
243
|
+
| `.select2-container` | `.ts-wrapper` |
|
76
244
|
| `.select2-dropdown` | `.ts-dropdown` |
|
77
245
|
| `.select2-results__option` | `.ts-dropdown .option` |
|
78
|
-
| `.select2-selection` | `.ts-control
|
246
|
+
| `.select2-selection` | `.ts-control` |
|
79
247
|
| `.select2-search__field` | `.ts-control input` |
|
80
248
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
- `
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
**
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
-
|
132
|
-
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
**
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
-
|
169
|
-
-
|
170
|
-
-
|
171
|
-
|
172
|
-
|
173
|
-
-
|
174
|
-
-
|
175
|
-
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
3. Create migration guide at `/docs/guide-update-your-app.md`
|
182
|
-
4. Version bump to 5.0.0 (major version due to breaking changes)
|
183
|
-
5. Test with real ActiveAdmin applications
|
184
|
-
6. Consider adding TypeScript definitions for better IDE support
|
249
|
+
## Troubleshooting
|
250
|
+
|
251
|
+
### Issue: Tom Select not initializing
|
252
|
+
**Solution**: Ensure that:
|
253
|
+
- `window.TomSelect` is defined in browser console
|
254
|
+
- `setupAutoInit()` is called after importing
|
255
|
+
- No JavaScript errors in console
|
256
|
+
|
257
|
+
### Issue: Styles not loading
|
258
|
+
**Solution**:
|
259
|
+
- Verify CSS imports are using @import syntax, not @tailwind
|
260
|
+
- Check that tom-select CSS is in node_modules
|
261
|
+
- Ensure Tailwind processes the CSS file
|
262
|
+
|
263
|
+
### Issue: "elements.forEach is not a function" error
|
264
|
+
**Solution**: The `initSearchableSelects` function expects a NodeList or array, not a jQuery object. Use:
|
265
|
+
```javascript
|
266
|
+
// Correct - vanilla JS
|
267
|
+
const elements = document.querySelectorAll('.searchable-select-input');
|
268
|
+
|
269
|
+
// Incorrect - jQuery object
|
270
|
+
const elements = $('.searchable-select-input');
|
271
|
+
```
|
272
|
+
|
273
|
+
### Issue: Build errors with missing files
|
274
|
+
**Solution**: Run `npm install` and `bundle install` to ensure all dependencies are installed
|
275
|
+
|
276
|
+
## Performance Improvements
|
277
|
+
|
278
|
+
After migration, you should see:
|
279
|
+
- **Reduced bundle size**: ~200KB smaller without jQuery
|
280
|
+
- **Faster initialization**: Tom Select is more performant
|
281
|
+
- **Better memory usage**: No jQuery overhead
|
282
|
+
- **Cleaner code**: Pure ES6 modules
|
283
|
+
|
284
|
+
## Complete Example Configuration
|
285
|
+
|
286
|
+
For a working example, here's the minimal setup:
|
287
|
+
|
288
|
+
**Gemfile:**
|
289
|
+
```ruby
|
290
|
+
gem 'activeadmin', '~> 4.0.0.beta'
|
291
|
+
gem 'activeadmin-tom_select'
|
292
|
+
```
|
293
|
+
|
294
|
+
**package.json:**
|
295
|
+
```json
|
296
|
+
{
|
297
|
+
"dependencies": {
|
298
|
+
"@activeadmin/activeadmin": "^4.0.0-beta16",
|
299
|
+
"tom-select": "^2.4.3",
|
300
|
+
"activeadmin-tom_select": "^4.1.0"
|
301
|
+
}
|
302
|
+
}
|
303
|
+
```
|
304
|
+
|
305
|
+
**app/js/active_admin.js:**
|
306
|
+
```javascript
|
307
|
+
import "@activeadmin/activeadmin";
|
308
|
+
import TomSelect from 'tom-select';
|
309
|
+
import { setupAutoInit, initSearchableSelects } from 'activeadmin-tom_select';
|
310
|
+
|
311
|
+
window.TomSelect = TomSelect;
|
312
|
+
window.initSearchableSelects = initSearchableSelects;
|
313
|
+
setupAutoInit();
|
314
|
+
```
|
315
|
+
|
316
|
+
**app/assets/stylesheets/active_admin.tailwind.css:**
|
317
|
+
```css
|
318
|
+
@import "tailwindcss/base";
|
319
|
+
@import "tailwindcss/components";
|
320
|
+
@import "tailwindcss/utilities";
|
321
|
+
@import 'tom-select/dist/css/tom-select.css';
|
322
|
+
@import 'activeadmin-tom_select/src/tom-select-tailwind.css';
|
323
|
+
```
|
324
|
+
|
325
|
+
## Benefits Achieved
|
326
|
+
|
327
|
+
1. ✅ **No jQuery Required**: Completely removed jQuery dependency
|
328
|
+
2. ✅ **Modern JavaScript**: Using ES6 modules and vanilla JS
|
329
|
+
3. ✅ **Smaller Bundle**: Reduced JavaScript bundle by ~200KB
|
330
|
+
4. ✅ **Better Performance**: Faster initialization and runtime
|
331
|
+
5. ✅ **Future-Proof**: Tom Select is actively maintained
|
332
|
+
6. ✅ **ActiveAdmin 4 Ready**: Full compatibility with latest version
|
333
|
+
|
334
|
+
## Migration Checklist
|
335
|
+
|
336
|
+
- [ ] Update Gemfile with `activeadmin-tom_select`
|
337
|
+
- [ ] Run `bundle install`
|
338
|
+
- [ ] Update package.json dependencies
|
339
|
+
- [ ] Run `npm install`
|
340
|
+
- [ ] Update JavaScript imports in active_admin.js
|
341
|
+
- [ ] Update CSS to use @import syntax
|
342
|
+
- [ ] Create/update rake tasks for CSS building
|
343
|
+
- [ ] Update build scripts in package.json
|
344
|
+
- [ ] Remove jQuery and Select2 dependencies
|
345
|
+
- [ ] Test all searchable selects in development
|
346
|
+
- [ ] Update any custom CSS selectors
|
347
|
+
- [ ] Remove old initialization files
|
348
|
+
- [ ] Deploy and test in production
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
activeadmin-tom_select (4.1.
|
4
|
+
activeadmin-tom_select (4.1.1)
|
5
5
|
activeadmin (>= 3.0, < 5)
|
6
6
|
ransack (>= 1.8, < 5)
|
7
7
|
|
@@ -148,7 +148,7 @@ GEM
|
|
148
148
|
formtastic (5.0.0)
|
149
149
|
actionpack (>= 6.0.0)
|
150
150
|
formtastic_i18n (0.7.0)
|
151
|
-
globalid (1.
|
151
|
+
globalid (1.3.0)
|
152
152
|
activesupport (>= 6.1)
|
153
153
|
has_scope (0.8.2)
|
154
154
|
actionpack (>= 5.2)
|
@@ -165,7 +165,7 @@ GEM
|
|
165
165
|
pp (>= 0.6.0)
|
166
166
|
rdoc (>= 4.0.0)
|
167
167
|
reline (>= 0.4.2)
|
168
|
-
json (2.
|
168
|
+
json (2.15.0)
|
169
169
|
kaminari (1.2.2)
|
170
170
|
activesupport (>= 4.1.0)
|
171
171
|
kaminari-actionview (= 1.2.2)
|
@@ -189,12 +189,12 @@ GEM
|
|
189
189
|
net-imap
|
190
190
|
net-pop
|
191
191
|
net-smtp
|
192
|
-
marcel (1.0
|
192
|
+
marcel (1.1.0)
|
193
193
|
matrix (0.4.3)
|
194
194
|
mime-types (3.7.0)
|
195
195
|
logger
|
196
196
|
mime-types-data (~> 3.2025, >= 3.2025.0507)
|
197
|
-
mime-types-data (3.2025.
|
197
|
+
mime-types-data (3.2025.0924)
|
198
198
|
mini_mime (1.1.5)
|
199
199
|
minitest (5.25.5)
|
200
200
|
mutex_m (0.3.0)
|
@@ -222,7 +222,7 @@ GEM
|
|
222
222
|
prettyprint
|
223
223
|
prettyprint (0.2.0)
|
224
224
|
prism (1.5.1)
|
225
|
-
propshaft (1.
|
225
|
+
propshaft (1.3.1)
|
226
226
|
actionpack (>= 7.0.0)
|
227
227
|
activesupport (>= 7.0.0)
|
228
228
|
rack
|
@@ -272,9 +272,9 @@ GEM
|
|
272
272
|
zeitwerk (~> 2.6)
|
273
273
|
rainbow (3.1.1)
|
274
274
|
rake (13.3.0)
|
275
|
-
ransack (4.
|
276
|
-
activerecord (>=
|
277
|
-
activesupport (>=
|
275
|
+
ransack (4.4.0)
|
276
|
+
activerecord (>= 7.1)
|
277
|
+
activesupport (>= 7.1)
|
278
278
|
i18n
|
279
279
|
rdoc (6.14.2)
|
280
280
|
erb
|
@@ -301,7 +301,7 @@ GEM
|
|
301
301
|
rspec-expectations (~> 3.13)
|
302
302
|
rspec-mocks (~> 3.13)
|
303
303
|
rspec-support (~> 3.13)
|
304
|
-
rspec-support (3.13.
|
304
|
+
rspec-support (3.13.6)
|
305
305
|
rspec_junit_formatter (0.6.0)
|
306
306
|
rspec-core (>= 2, < 4, != 2.12.0)
|
307
307
|
rubocop (1.80.2)
|
@@ -329,7 +329,7 @@ GEM
|
|
329
329
|
simplecov_json_formatter (~> 0.1)
|
330
330
|
simplecov-html (0.13.2)
|
331
331
|
simplecov_json_formatter (0.1.4)
|
332
|
-
sqlite3 (2.7.
|
332
|
+
sqlite3 (2.7.4-x86_64-linux-gnu)
|
333
333
|
stringio (3.1.7)
|
334
334
|
thor (1.4.0)
|
335
335
|
timeout (0.4.3)
|