metaractor 3.3.0 → 3.3.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8a67b3860db00780ce1c03f5c551fdb7bbace32bdd7e16d6adabadb541516cb0
4
- data.tar.gz: 2c24a4a91199c196eae047b09830891ff5ea3c0fd2e2d734acfe57059775fc74
3
+ metadata.gz: 3321611d056a60e545e40ad71e66f4512657fd44a0d6ce9a2758e2f08116895b
4
+ data.tar.gz: 4172b472e1a0d3fa3802452a3a0ee0b17b7d0bb975b630c32281c40cb5fd9063
5
5
  SHA512:
6
- metadata.gz: 40fdf35588580edf4b57e719958bad16f6dece4e74fd7a4c202c03a3aab47c6c7647fe90c2152a84eb6e8fd20a1bafd84e137efea9676cbd75966b39f22cacff
7
- data.tar.gz: 30fdcf53265820b0e510823730ed027e64171316f757b4047b304ba7f9a1bcc9e95b63016114ee4f2807c2a7a1cb94fc8779ecbb9adca47fd4ea8c0a17fa5245
6
+ metadata.gz: 7d77a4cfd87cd12955d73835cd8a060eb3f7c027c9a424cfd14a41c6c45e4f259303ffb9c25cf1bd200af48e775aacfc7c81549a851e578576f4d9c0c4cd972e
7
+ data.tar.gz: 10ea3e5a506caf3f47ab26a971c5a9f15d25fce14c53a18a25547cc9551bbebd6bf849fb2091bde67526805cea470388a24c77cc47d301d4f2c5e421ca5bd9b3
data/.envrc ADDED
@@ -0,0 +1,5 @@
1
+ if ! has nix_direnv_version || ! nix_direnv_version 2.3.0; then
2
+ source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.3.0/direnvrc" "sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8="
3
+ fi
4
+
5
+ use flake . --impure
@@ -0,0 +1,13 @@
1
+ name: Specs
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v3
10
+ - uses: ruby/setup-ruby@v1
11
+ with:
12
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
13
+ - run: bundle exec rspec spec
data/.gitignore CHANGED
@@ -7,3 +7,8 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+
11
+ # Devenv
12
+ .devenv*
13
+ devenv.local.nix
14
+ .direnv*
data/.rspec CHANGED
@@ -1,4 +1,3 @@
1
1
  --color
2
2
  --require spec_helper
3
3
  --format progress
4
- --format RSpec::Buildkite::AnnotationFormatter
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.2.2
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
- gem 'rspec-buildkite', github: 'outstand/rspec-buildkite', branch: 'error-output'
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
- # Metaractor [![Build status](https://badge.buildkite.com/70063a5154eb7366b8b7fd65a875c5f64301bc60f6d29a2ad7.svg)](https://buildkite.com/outstand/metaractor)
1
+ ![logo-color](https://user-images.githubusercontent.com/146013/225313017-ea1e42d6-741d-4db6-a492-a1e75106d720.png)
2
+
2
3
  Adds parameter validation and error control to [interactor](https://github.com/collectiveidea/interactor).
3
4
 
4
5
  ## Installation
@@ -54,7 +55,7 @@ See Interactor's [README](https://github.com/collectiveidea/interactor/blob/mast
54
55
  Metaractor is meant to be extensible (hence the 'meta'). You can add additional modules in the following way:
55
56
 
56
57
  ```ruby
57
- # This is an example from Outstand's production app to add some sidekiq magic.
58
+ # This is an example from a production app to add some sidekiq magic.
58
59
  # Feel free to place this in start up code or a Rails initializer.
59
60
  Metaractor.configure do |config|
60
61
  config.prepend_module Metaractor::SidekiqCallbacks
@@ -345,18 +346,60 @@ For more examples of all of the above approaches, please see the specs.
345
346
 
346
347
  ## Development
347
348
 
348
- - `docker compose build --pull`
349
- - `docker compose run --rm metaractor` to run specs
349
+ - Install nix:
350
+ ```sh
351
+ sh <(curl -L https://nixos.org/nix/install)
352
+ ```
353
+
354
+ - Configure nix:
355
+ ```sh
356
+ sudo tee -a /etc/nix/nix.conf <<EOF
357
+ auto-optimise-store = true
358
+ bash-prompt-prefix = (nix:$name)\040
359
+ experimental-features = nix-command flakes
360
+ extra-nix-path = nixpkgs=flake:nixpkgs
361
+ trusted-users = root $USER
362
+ EOF
363
+
364
+ sudo pkill nix-daemon
365
+ ```
366
+
367
+ - Set up cachix:
368
+ ```sh
369
+ nix profile install 'nixpkgs#cachix'
370
+ cachix use devenv
371
+ ```
372
+
373
+ - Install devenv:
374
+ ```sh
375
+ nix profile install --accept-flake-config github:cachix/devenv/latest
376
+ ```
377
+
378
+ - Install direnv:
379
+ ```sh
380
+ brew install direnv
381
+ ```
382
+
383
+ - Add the following lines to your ~/.zshrc:
384
+ ```sh
385
+ # Nix
386
+ if [ -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' ]; then
387
+ . '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh'
388
+ fi
389
+ # End Nix
390
+
391
+ export DIRENV_LOG_FORMAT=
392
+ eval "$(direnv hook zsh)"
393
+ ```
350
394
 
351
- or with the Deskfile loaded:
352
- - `rspec spec`
395
+ - `direnv allow`
396
+ - `rspec spec` to run specs
353
397
 
354
398
  To release a new version:
355
399
  - Update the version number in `version.rb` and commit the result.
356
- - `docker compose build --pull`
357
- - `docker compose run --rm release`
400
+ - `rake release`
358
401
 
359
402
  ## Contributing
360
403
 
361
- Bug reports and pull requests are welcome on GitHub at https://github.com/outstand/metaractor.
404
+ Bug reports and pull requests are welcome on GitHub at https://github.com/metaractor/metaractor.
362
405
 
data/Rakefile CHANGED
@@ -1,2 +1,2 @@
1
1
  require "bundler/gem_tasks"
2
- task :default => :spec
2
+ task default: :spec
data/flake.lock ADDED
@@ -0,0 +1,417 @@
1
+ {
2
+ "nodes": {
3
+ "dev-cli": {
4
+ "inputs": {
5
+ "flake-compat": "flake-compat",
6
+ "flake-parts": "flake-parts",
7
+ "nixpkgs": [
8
+ "nixpkgs"
9
+ ]
10
+ },
11
+ "locked": {
12
+ "lastModified": 1688133858,
13
+ "narHash": "sha256-UeibsB2V5vozsqJAazx36d9oRmzXqlid8cpRdE9Hj1c=",
14
+ "owner": "detaso",
15
+ "repo": "dev-cli",
16
+ "rev": "bb6f0c892a67e90efd8119d5ceb0873b48b28e68",
17
+ "type": "github"
18
+ },
19
+ "original": {
20
+ "owner": "detaso",
21
+ "repo": "dev-cli",
22
+ "type": "github"
23
+ }
24
+ },
25
+ "devenv": {
26
+ "inputs": {
27
+ "flake-compat": "flake-compat_2",
28
+ "nix": "nix",
29
+ "nixpkgs": "nixpkgs",
30
+ "pre-commit-hooks": "pre-commit-hooks"
31
+ },
32
+ "locked": {
33
+ "lastModified": 1688639977,
34
+ "narHash": "sha256-nLpc6Qr3HB+xGVTkl9lrEpr06vGf4khuxG/7ay3gNuI=",
35
+ "owner": "cachix",
36
+ "repo": "devenv",
37
+ "rev": "b98d24ddc6d46252df1920fea44241f8fb6e45b2",
38
+ "type": "github"
39
+ },
40
+ "original": {
41
+ "owner": "cachix",
42
+ "repo": "devenv",
43
+ "type": "github"
44
+ }
45
+ },
46
+ "flake-compat": {
47
+ "flake": false,
48
+ "locked": {
49
+ "lastModified": 1673956053,
50
+ "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
51
+ "owner": "edolstra",
52
+ "repo": "flake-compat",
53
+ "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
54
+ "type": "github"
55
+ },
56
+ "original": {
57
+ "owner": "edolstra",
58
+ "repo": "flake-compat",
59
+ "type": "github"
60
+ }
61
+ },
62
+ "flake-compat_2": {
63
+ "flake": false,
64
+ "locked": {
65
+ "lastModified": 1673956053,
66
+ "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
67
+ "owner": "edolstra",
68
+ "repo": "flake-compat",
69
+ "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
70
+ "type": "github"
71
+ },
72
+ "original": {
73
+ "owner": "edolstra",
74
+ "repo": "flake-compat",
75
+ "type": "github"
76
+ }
77
+ },
78
+ "flake-compat_3": {
79
+ "flake": false,
80
+ "locked": {
81
+ "lastModified": 1673956053,
82
+ "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
83
+ "owner": "edolstra",
84
+ "repo": "flake-compat",
85
+ "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
86
+ "type": "github"
87
+ },
88
+ "original": {
89
+ "owner": "edolstra",
90
+ "repo": "flake-compat",
91
+ "type": "github"
92
+ }
93
+ },
94
+ "flake-parts": {
95
+ "inputs": {
96
+ "nixpkgs-lib": "nixpkgs-lib"
97
+ },
98
+ "locked": {
99
+ "lastModified": 1687762428,
100
+ "narHash": "sha256-DIf7mi45PKo+s8dOYF+UlXHzE0Wl/+k3tXUyAoAnoGE=",
101
+ "owner": "hercules-ci",
102
+ "repo": "flake-parts",
103
+ "rev": "37dd7bb15791c86d55c5121740a1887ab55ee836",
104
+ "type": "github"
105
+ },
106
+ "original": {
107
+ "owner": "hercules-ci",
108
+ "repo": "flake-parts",
109
+ "type": "github"
110
+ }
111
+ },
112
+ "flake-parts_2": {
113
+ "inputs": {
114
+ "nixpkgs-lib": "nixpkgs-lib_2"
115
+ },
116
+ "locked": {
117
+ "lastModified": 1688466019,
118
+ "narHash": "sha256-VeM2akYrBYMsb4W/MmBo1zmaMfgbL4cH3Pu8PGyIwJ0=",
119
+ "owner": "hercules-ci",
120
+ "repo": "flake-parts",
121
+ "rev": "8e8d955c22df93dbe24f19ea04f47a74adbdc5ec",
122
+ "type": "github"
123
+ },
124
+ "original": {
125
+ "id": "flake-parts",
126
+ "type": "indirect"
127
+ }
128
+ },
129
+ "flake-utils": {
130
+ "inputs": {
131
+ "systems": "systems"
132
+ },
133
+ "locked": {
134
+ "lastModified": 1685518550,
135
+ "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
136
+ "owner": "numtide",
137
+ "repo": "flake-utils",
138
+ "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
139
+ "type": "github"
140
+ },
141
+ "original": {
142
+ "owner": "numtide",
143
+ "repo": "flake-utils",
144
+ "type": "github"
145
+ }
146
+ },
147
+ "flake-utils_2": {
148
+ "locked": {
149
+ "lastModified": 1667395993,
150
+ "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
151
+ "owner": "numtide",
152
+ "repo": "flake-utils",
153
+ "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
154
+ "type": "github"
155
+ },
156
+ "original": {
157
+ "owner": "numtide",
158
+ "repo": "flake-utils",
159
+ "type": "github"
160
+ }
161
+ },
162
+ "gitignore": {
163
+ "inputs": {
164
+ "nixpkgs": [
165
+ "devenv",
166
+ "pre-commit-hooks",
167
+ "nixpkgs"
168
+ ]
169
+ },
170
+ "locked": {
171
+ "lastModified": 1660459072,
172
+ "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
173
+ "owner": "hercules-ci",
174
+ "repo": "gitignore.nix",
175
+ "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
176
+ "type": "github"
177
+ },
178
+ "original": {
179
+ "owner": "hercules-ci",
180
+ "repo": "gitignore.nix",
181
+ "type": "github"
182
+ }
183
+ },
184
+ "lowdown-src": {
185
+ "flake": false,
186
+ "locked": {
187
+ "lastModified": 1633514407,
188
+ "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=",
189
+ "owner": "kristapsdz",
190
+ "repo": "lowdown",
191
+ "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8",
192
+ "type": "github"
193
+ },
194
+ "original": {
195
+ "owner": "kristapsdz",
196
+ "repo": "lowdown",
197
+ "type": "github"
198
+ }
199
+ },
200
+ "nix": {
201
+ "inputs": {
202
+ "lowdown-src": "lowdown-src",
203
+ "nixpkgs": [
204
+ "devenv",
205
+ "nixpkgs"
206
+ ],
207
+ "nixpkgs-regression": "nixpkgs-regression"
208
+ },
209
+ "locked": {
210
+ "lastModified": 1676545802,
211
+ "narHash": "sha256-EK4rZ+Hd5hsvXnzSzk2ikhStJnD63odF7SzsQ8CuSPU=",
212
+ "owner": "domenkozar",
213
+ "repo": "nix",
214
+ "rev": "7c91803598ffbcfe4a55c44ac6d49b2cf07a527f",
215
+ "type": "github"
216
+ },
217
+ "original": {
218
+ "owner": "domenkozar",
219
+ "ref": "relaxed-flakes",
220
+ "repo": "nix",
221
+ "type": "github"
222
+ }
223
+ },
224
+ "nixpkgs": {
225
+ "locked": {
226
+ "lastModified": 1678875422,
227
+ "narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=",
228
+ "owner": "NixOS",
229
+ "repo": "nixpkgs",
230
+ "rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459",
231
+ "type": "github"
232
+ },
233
+ "original": {
234
+ "owner": "NixOS",
235
+ "ref": "nixpkgs-unstable",
236
+ "repo": "nixpkgs",
237
+ "type": "github"
238
+ }
239
+ },
240
+ "nixpkgs-lib": {
241
+ "locked": {
242
+ "dir": "lib",
243
+ "lastModified": 1685564631,
244
+ "narHash": "sha256-8ywr3AkblY4++3lIVxmrWZFzac7+f32ZEhH/A8pNscI=",
245
+ "owner": "NixOS",
246
+ "repo": "nixpkgs",
247
+ "rev": "4f53efe34b3a8877ac923b9350c874e3dcd5dc0a",
248
+ "type": "github"
249
+ },
250
+ "original": {
251
+ "dir": "lib",
252
+ "owner": "NixOS",
253
+ "ref": "nixos-unstable",
254
+ "repo": "nixpkgs",
255
+ "type": "github"
256
+ }
257
+ },
258
+ "nixpkgs-lib_2": {
259
+ "locked": {
260
+ "dir": "lib",
261
+ "lastModified": 1688049487,
262
+ "narHash": "sha256-100g4iaKC9MalDjUW9iN6Jl/OocTDtXdeAj7pEGIRh4=",
263
+ "owner": "NixOS",
264
+ "repo": "nixpkgs",
265
+ "rev": "4bc72cae107788bf3f24f30db2e2f685c9298dc9",
266
+ "type": "github"
267
+ },
268
+ "original": {
269
+ "dir": "lib",
270
+ "owner": "NixOS",
271
+ "ref": "nixos-unstable",
272
+ "repo": "nixpkgs",
273
+ "type": "github"
274
+ }
275
+ },
276
+ "nixpkgs-regression": {
277
+ "locked": {
278
+ "lastModified": 1643052045,
279
+ "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
280
+ "owner": "NixOS",
281
+ "repo": "nixpkgs",
282
+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
283
+ "type": "github"
284
+ },
285
+ "original": {
286
+ "owner": "NixOS",
287
+ "repo": "nixpkgs",
288
+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
289
+ "type": "github"
290
+ }
291
+ },
292
+ "nixpkgs-ruby": {
293
+ "inputs": {
294
+ "flake-compat": "flake-compat_3",
295
+ "flake-utils": "flake-utils_2",
296
+ "nixpkgs": [
297
+ "nixpkgs"
298
+ ]
299
+ },
300
+ "locked": {
301
+ "lastModified": 1688103575,
302
+ "narHash": "sha256-VkkUAm6U9sogXYFGhru0xIb0KI+mrVbk5PKjCD8rnV4=",
303
+ "owner": "bobvanderlinden",
304
+ "repo": "nixpkgs-ruby",
305
+ "rev": "e6ae16647947d0858a99e033ce695c33d6212852",
306
+ "type": "github"
307
+ },
308
+ "original": {
309
+ "owner": "bobvanderlinden",
310
+ "repo": "nixpkgs-ruby",
311
+ "type": "github"
312
+ }
313
+ },
314
+ "nixpkgs-stable": {
315
+ "locked": {
316
+ "lastModified": 1685801374,
317
+ "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=",
318
+ "owner": "NixOS",
319
+ "repo": "nixpkgs",
320
+ "rev": "c37ca420157f4abc31e26f436c1145f8951ff373",
321
+ "type": "github"
322
+ },
323
+ "original": {
324
+ "owner": "NixOS",
325
+ "ref": "nixos-23.05",
326
+ "repo": "nixpkgs",
327
+ "type": "github"
328
+ }
329
+ },
330
+ "nixpkgs_2": {
331
+ "locked": {
332
+ "lastModified": 1688585123,
333
+ "narHash": "sha256-+xFOB4WaRUHuZI7H1tWHTrwY4BnbPmh8M1n/XhPRH0w=",
334
+ "owner": "NixOS",
335
+ "repo": "nixpkgs",
336
+ "rev": "23de9f3b56e72632c628d92b71c47032e14a3d4d",
337
+ "type": "github"
338
+ },
339
+ "original": {
340
+ "owner": "NixOS",
341
+ "ref": "nixpkgs-unstable",
342
+ "repo": "nixpkgs",
343
+ "type": "github"
344
+ }
345
+ },
346
+ "pre-commit-hooks": {
347
+ "inputs": {
348
+ "flake-compat": [
349
+ "devenv",
350
+ "flake-compat"
351
+ ],
352
+ "flake-utils": "flake-utils",
353
+ "gitignore": "gitignore",
354
+ "nixpkgs": [
355
+ "devenv",
356
+ "nixpkgs"
357
+ ],
358
+ "nixpkgs-stable": "nixpkgs-stable"
359
+ },
360
+ "locked": {
361
+ "lastModified": 1688056373,
362
+ "narHash": "sha256-2+SDlNRTKsgo3LBRiMUcoEUb6sDViRNQhzJquZ4koOI=",
363
+ "owner": "cachix",
364
+ "repo": "pre-commit-hooks.nix",
365
+ "rev": "5843cf069272d92b60c3ed9e55b7a8989c01d4c7",
366
+ "type": "github"
367
+ },
368
+ "original": {
369
+ "owner": "cachix",
370
+ "repo": "pre-commit-hooks.nix",
371
+ "type": "github"
372
+ }
373
+ },
374
+ "root": {
375
+ "inputs": {
376
+ "dev-cli": "dev-cli",
377
+ "devenv": "devenv",
378
+ "flake-parts": "flake-parts_2",
379
+ "nixpkgs": "nixpkgs_2",
380
+ "nixpkgs-ruby": "nixpkgs-ruby",
381
+ "systems": "systems_2"
382
+ }
383
+ },
384
+ "systems": {
385
+ "locked": {
386
+ "lastModified": 1681028828,
387
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
388
+ "owner": "nix-systems",
389
+ "repo": "default",
390
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
391
+ "type": "github"
392
+ },
393
+ "original": {
394
+ "owner": "nix-systems",
395
+ "repo": "default",
396
+ "type": "github"
397
+ }
398
+ },
399
+ "systems_2": {
400
+ "locked": {
401
+ "lastModified": 1681028828,
402
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
403
+ "owner": "nix-systems",
404
+ "repo": "default",
405
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
406
+ "type": "github"
407
+ },
408
+ "original": {
409
+ "owner": "nix-systems",
410
+ "repo": "default",
411
+ "type": "github"
412
+ }
413
+ }
414
+ },
415
+ "root": "root",
416
+ "version": 7
417
+ }
data/flake.nix ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ inputs = {
3
+ nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
4
+ systems.url = "github:nix-systems/default";
5
+ devenv.url = "github:cachix/devenv";
6
+ nixpkgs-ruby.url = "github:bobvanderlinden/nixpkgs-ruby";
7
+ nixpkgs-ruby.inputs.nixpkgs.follows = "nixpkgs";
8
+ dev-cli.url = "github:detaso/dev-cli";
9
+ dev-cli.inputs.nixpkgs.follows = "nixpkgs";
10
+ };
11
+
12
+ outputs = inputs@{ flake-parts, ... }:
13
+ flake-parts.lib.mkFlake { inherit inputs; } {
14
+ imports = [
15
+ inputs.devenv.flakeModule
16
+ ];
17
+ systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ];
18
+
19
+ perSystem = { config, self', inputs', pkgs, system, ... }: {
20
+ # Per-system attributes can be defined here. The self' and inputs'
21
+ # module parameters provide easy access to attributes of the same
22
+ # system.
23
+
24
+ devenv.shells.default = let
25
+ dev-cli = inputs.dev-cli.packages.${system}.default;
26
+ in {
27
+ # https://devenv.sh/reference/options/
28
+
29
+ packages = with pkgs; [
30
+ git
31
+ nodejs-18_x
32
+ yarn
33
+ postgresql_14
34
+ zlib
35
+ zstd
36
+ libiconv
37
+ tmux
38
+ tmuxPlugins.sensible
39
+ tmuxPlugins.yank
40
+ reattach-to-user-namespace
41
+ ] ++ [
42
+ dev-cli
43
+ ];
44
+
45
+ languages.ruby.enable = true;
46
+ languages.ruby.bundler.enable = false;
47
+ languages.ruby.version = "3.2.2";
48
+
49
+ enterShell = ''
50
+ export BUNDLE_BIN="$DEVENV_ROOT/.devenv/bin"
51
+ export PATH="$DEVENV_PROFILE/bin:$DEVENV_ROOT/bin:$BUNDLE_BIN:$PATH"
52
+ export BOOTSNAP_CACHE_DIR="$DEVENV_ROOT/.devenv/state"
53
+
54
+ if [ ! -f ~/.tmux.conf ] && [ ! -f ~/.config/tmux/tmux.conf ] && [ -f "$DEVENV_ROOT/.overmind.tmux.conf" ]; then
55
+ export OVERMIND_TMUX_CONFIG="$DEVENV_ROOT/.overmind.tmux.conf"
56
+ fi
57
+ '';
58
+
59
+ env.OVERMIND_NO_PORT=1;
60
+ env.OVERMIND_ANY_CAN_DIE=1;
61
+ process.implementation = "overmind";
62
+
63
+ env.RUBY_DEBUG_SOCK_DIR = "/tmp/";
64
+ };
65
+ };
66
+ };
67
+ }
@@ -28,7 +28,7 @@ module Metaractor
28
28
 
29
29
  def add_errors(messages: [], errors: {}, **args)
30
30
  if !messages.empty?
31
- self.errors.add(errors: { base: messages }, **args)
31
+ self.errors.add(errors: {base: messages}, **args)
32
32
  else
33
33
  self.errors.add(errors: errors, **args)
34
34
  end