errgonomic 0.1.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f84b5db433f20f5b75dbfad878c881d7f536d6c169dd43a31527ca4e4380f54
4
- data.tar.gz: 2415019deb923d5e5ba887786e457901883914039e23f2450ea7127c712c74da
3
+ metadata.gz: f5b329e5d25e517ff65724ceca5d9ad3e226740e90e57e5ac21917de5f926845
4
+ data.tar.gz: 2878a2c35bff61a7b57cb5d4a3ec476dd98e42a2ebe21fba3423b6180f8fc68e
5
5
  SHA512:
6
- metadata.gz: 1149999bdc13744158fbe5ddf5523528cccd32b8c0de1371d39da0d5cc0405f4be82c84b97ec74917bcd101dd3d8d6dbdc9d62ae6523dee5c6a101e507629c2d
7
- data.tar.gz: ab8db80b9b3bec04a74ce464ab070c15ef6fcd8dd24af6fe8c4608f1ea256004c34806b07579deb5ca2626f5675c0eceb6818112f985cc9d904acc9e46de9962
6
+ metadata.gz: 4b39914d663d14df9816265d5ce5cef11fec14527cdc2a4400e7c1a9424e4d32e65705e6e79493fb1a8c2102ad02d94bf7b0001b11b4855f6310c6041c40f7ff
7
+ data.tar.gz: d16813545c25785abfd2e3064a51ec80ed5e07c8e9715c349f11c426223a53e40e8976e53c26fb76be9805d2012359d90a2c9a1db08879ca59a8256eab3b6ca1
data/.rubocop.yml ADDED
@@ -0,0 +1 @@
1
+ require: rubocop-yard
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ --plugin yard-doctest
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.2.0] - 2025-05-01
4
+
5
+ - Type assertions: `type_or_raise!`, `type_or`
6
+
7
+ ## [0.2.0] - 2025-03-28
8
+
9
+ - Introduce (most of) Result and Option
10
+ - Presence helpers which raise should have a bang on their name
11
+ - [Dev, Test] - Replace rspec with yard-doctest
12
+
3
13
  ## [0.1.0] - 2025-02-27
4
14
 
5
- - Initial release
15
+ - Initial release with some basic extensions for presence
data/Rakefile CHANGED
@@ -1,10 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
3
+ require 'bundler/gem_tasks'
5
4
 
5
+ require 'rspec/core/rake_task'
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
- require "standard/rake"
8
+ require 'yard/doctest/rake'
9
+ YARD::Doctest::RakeTask.new do |task|
10
+ task.doctest_opts = %w[-v]
11
+ task.pattern = 'lib/**/*.rb'
12
+ end
9
13
 
10
- task default: %i[spec standard]
14
+ task default: %i[spec yard:doctest]
data/doctest_helper.rb ADDED
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/errgonomic'
data/flake.nix CHANGED
@@ -15,13 +15,6 @@
15
15
  "aarch64-darwin"
16
16
  ];
17
17
  overlays = [
18
- (final: prev: {
19
- gems = final.bundlerEnv {
20
- name = "errgonomic";
21
- gemdir = ./.;
22
- # src = final.lib.cleanSource ../.;
23
- };
24
- })
25
18
  ];
26
19
  forAllSystems =
27
20
  f:
@@ -36,12 +29,25 @@
36
29
  {
37
30
  devShells = forAllSystems (
38
31
  { pkgs, ... }:
32
+ let
33
+ inherit (pkgs) ruby bundix;
34
+ in
39
35
  {
40
36
  default = pkgs.mkShell {
41
37
  buildInputs = [
42
- pkgs.ruby
43
- pkgs.bundix
44
- pkgs.gems
38
+ ruby
39
+ bundix
40
+ (pkgs.bundlerEnv {
41
+ name = "errgonomic";
42
+ gemdir = ./.;
43
+ extraConfigPaths = [
44
+ ./errgonomic.gemspec
45
+ ./lib/errgonomic/version.rb
46
+ ];
47
+ postInstall = ''
48
+ find . >&2
49
+ '';
50
+ })
45
51
  ];
46
52
  };
47
53
  }
data/gemset.nix CHANGED
@@ -9,6 +9,26 @@
9
9
  };
10
10
  version = "2.4.2";
11
11
  };
12
+ backport = {
13
+ groups = ["default"];
14
+ platforms = [];
15
+ source = {
16
+ remotes = ["https://rubygems.org"];
17
+ sha256 = "0xbzzjrgah0f8ifgd449kak2vyf30micpz6x2g82aipfv7ypsb4i";
18
+ type = "gem";
19
+ };
20
+ version = "1.2.0";
21
+ };
22
+ benchmark = {
23
+ groups = ["default"];
24
+ platforms = [];
25
+ source = {
26
+ remotes = ["https://rubygems.org"];
27
+ sha256 = "0jl71qcgamm96dzyqk695j24qszhcc7liw74qc83fpjljp2gh4hg";
28
+ type = "gem";
29
+ };
30
+ version = "0.4.0";
31
+ };
12
32
  concurrent-ruby = {
13
33
  groups = ["default"];
14
34
  platforms = [];
@@ -37,7 +57,17 @@
37
57
  path = ./.;
38
58
  type = "path";
39
59
  };
40
- version = "0.1.0";
60
+ version = "0.3.0";
61
+ };
62
+ jaro_winkler = {
63
+ groups = ["default"];
64
+ platforms = [];
65
+ source = {
66
+ remotes = ["https://rubygems.org"];
67
+ sha256 = "09645h5an19zc1i7wlmixszj8xxqb2zc8qlf8dmx39bxpas1l24b";
68
+ type = "gem";
69
+ };
70
+ version = "1.6.0";
41
71
  };
42
72
  json = {
43
73
  groups = ["default"];
@@ -49,6 +79,28 @@
49
79
  };
50
80
  version = "2.10.1";
51
81
  };
82
+ kramdown = {
83
+ dependencies = ["rexml"];
84
+ groups = ["default"];
85
+ platforms = [];
86
+ source = {
87
+ remotes = ["https://rubygems.org"];
88
+ sha256 = "131nwypz8b4pq1hxs6gsz3k00i9b75y3cgpkq57vxknkv6mvdfw7";
89
+ type = "gem";
90
+ };
91
+ version = "2.5.1";
92
+ };
93
+ kramdown-parser-gfm = {
94
+ dependencies = ["kramdown"];
95
+ groups = ["default"];
96
+ platforms = [];
97
+ source = {
98
+ remotes = ["https://rubygems.org"];
99
+ sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
100
+ type = "gem";
101
+ };
102
+ version = "1.1.0";
103
+ };
52
104
  language_server-protocol = {
53
105
  groups = ["default"];
54
106
  platforms = [];
@@ -59,15 +111,66 @@
59
111
  };
60
112
  version = "3.17.0.4";
61
113
  };
62
- lint_roller = {
114
+ logger = {
63
115
  groups = ["default"];
64
116
  platforms = [];
65
117
  source = {
66
118
  remotes = ["https://rubygems.org"];
67
- sha256 = "11yc0d84hsnlvx8cpk4cbj6a4dz9pk0r1k29p0n1fz9acddq831c";
119
+ sha256 = "05s008w9vy7is3njblmavrbdzyrwwc1fsziffdr58w9pwqj8sqfx";
68
120
  type = "gem";
69
121
  };
70
- version = "1.1.0";
122
+ version = "1.6.6";
123
+ };
124
+ mini_portile2 = {
125
+ groups = ["default"];
126
+ platforms = [];
127
+ source = {
128
+ remotes = ["https://rubygems.org"];
129
+ sha256 = "0x8asxl83msn815lwmb2d7q5p29p7drhjv5va0byhk60v9n16iwf";
130
+ type = "gem";
131
+ };
132
+ version = "2.8.8";
133
+ };
134
+ minitest = {
135
+ groups = ["default" "development"];
136
+ platforms = [];
137
+ source = {
138
+ remotes = ["https://rubygems.org"];
139
+ sha256 = "0izrg03wn2yj3gd76ck7ifbm9h2kgy8kpg4fk06ckpy4bbicmwlw";
140
+ type = "gem";
141
+ };
142
+ version = "5.25.4";
143
+ };
144
+ nokogiri = {
145
+ dependencies = ["mini_portile2" "racc"];
146
+ groups = ["default"];
147
+ platforms = [];
148
+ source = {
149
+ remotes = ["https://rubygems.org"];
150
+ sha256 = "0npx535cs8qc33n0lpbbwl0p9fi3a5bczn6ayqhxvknh9yqw77vb";
151
+ type = "gem";
152
+ };
153
+ version = "1.18.3";
154
+ };
155
+ observer = {
156
+ groups = ["default"];
157
+ platforms = [];
158
+ source = {
159
+ remotes = ["https://rubygems.org"];
160
+ sha256 = "1b2h1642jy1xrgyakyzz6bkq43gwp8yvxrs8sww12rms65qi18yq";
161
+ type = "gem";
162
+ };
163
+ version = "0.1.2";
164
+ };
165
+ ostruct = {
166
+ groups = ["default"];
167
+ platforms = [];
168
+ source = {
169
+ remotes = ["https://rubygems.org"];
170
+ sha256 = "05xqijcf80sza5pnlp1c8whdaay8x5dc13214ngh790zrizgp8q9";
171
+ type = "gem";
172
+ };
173
+ version = "0.6.1";
71
174
  };
72
175
  parallel = {
73
176
  groups = ["default"];
@@ -120,6 +223,17 @@
120
223
  };
121
224
  version = "13.2.1";
122
225
  };
226
+ rbs = {
227
+ dependencies = ["logger"];
228
+ groups = ["default"];
229
+ platforms = [];
230
+ source = {
231
+ remotes = ["https://rubygems.org"];
232
+ sha256 = "07cwjkx7b3ssy8ccqq1s34sc5snwvgxan2ikmp9y2rz2a9wy6v1b";
233
+ type = "gem";
234
+ };
235
+ version = "3.8.1";
236
+ };
123
237
  regexp_parser = {
124
238
  groups = ["default"];
125
239
  platforms = [];
@@ -130,6 +244,27 @@
130
244
  };
131
245
  version = "2.10.0";
132
246
  };
247
+ reverse_markdown = {
248
+ dependencies = ["nokogiri"];
249
+ groups = ["default"];
250
+ platforms = [];
251
+ source = {
252
+ remotes = ["https://rubygems.org"];
253
+ sha256 = "195c7yra7amggqj7rir0yr09r4v29c2hgkbkb21mj0jsfs3868mb";
254
+ type = "gem";
255
+ };
256
+ version = "3.0.0";
257
+ };
258
+ rexml = {
259
+ groups = ["default"];
260
+ platforms = [];
261
+ source = {
262
+ remotes = ["https://rubygems.org"];
263
+ sha256 = "1jmbf6lf7pcyacpb939xjjpn1f84c3nw83dy3p1lwjx0l2ljfif7";
264
+ type = "gem";
265
+ };
266
+ version = "3.4.1";
267
+ };
133
268
  rspec = {
134
269
  dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
135
270
  groups = ["default"];
@@ -206,16 +341,16 @@
206
341
  };
207
342
  version = "1.38.1";
208
343
  };
209
- rubocop-performance = {
210
- dependencies = ["rubocop" "rubocop-ast"];
211
- groups = ["default"];
344
+ rubocop-yard = {
345
+ dependencies = ["rubocop" "yard"];
346
+ groups = ["development"];
212
347
  platforms = [];
213
348
  source = {
214
349
  remotes = ["https://rubygems.org"];
215
- sha256 = "10hv0lz54q34dlwx6vld0qx1fjskfb0nyb5c18cadrpmjnkqcbzj";
350
+ sha256 = "03s8lwah6apkr1g25whhd9y2zrqq9dy56g5kwn0bxp0slakrpisz";
216
351
  type = "gem";
217
352
  };
218
- version = "1.23.1";
353
+ version = "0.10.0";
219
354
  };
220
355
  ruby-progressbar = {
221
356
  groups = ["default"];
@@ -227,38 +362,36 @@
227
362
  };
228
363
  version = "1.13.0";
229
364
  };
230
- standard = {
231
- dependencies = ["language_server-protocol" "lint_roller" "rubocop" "standard-custom" "standard-performance"];
365
+ solargraph = {
366
+ dependencies = ["backport" "benchmark" "diff-lcs" "jaro_winkler" "kramdown" "kramdown-parser-gfm" "logger" "observer" "ostruct" "parser" "rbs" "reverse_markdown" "rubocop" "thor" "tilt" "yard" "yard-solargraph"];
232
367
  groups = ["default"];
233
368
  platforms = [];
234
369
  source = {
235
370
  remotes = ["https://rubygems.org"];
236
- sha256 = "13ijzq7r0v0rm1yyba1jfw2s9r3kfxljwypfhzpnkrsag64kk2b5";
371
+ sha256 = "0fqa486hfn6kdbqp3ppy3jvl9xyj8jz41a2dzgkhc6ny2pj31w92";
237
372
  type = "gem";
238
373
  };
239
- version = "1.45.0";
374
+ version = "0.52.0";
240
375
  };
241
- standard-custom = {
242
- dependencies = ["lint_roller" "rubocop"];
376
+ thor = {
243
377
  groups = ["default"];
244
378
  platforms = [];
245
379
  source = {
246
380
  remotes = ["https://rubygems.org"];
247
- sha256 = "0av55ai0nv23z5mhrwj1clmxpgyngk7vk6rh58d4y1ws2y2dqjj2";
381
+ sha256 = "1nmymd86a0vb39pzj2cwv57avdrl6pl3lf5bsz58q594kqxjkw7f";
248
382
  type = "gem";
249
383
  };
250
- version = "1.0.2";
384
+ version = "1.3.2";
251
385
  };
252
- standard-performance = {
253
- dependencies = ["lint_roller" "rubocop-performance"];
386
+ tilt = {
254
387
  groups = ["default"];
255
388
  platforms = [];
256
389
  source = {
257
390
  remotes = ["https://rubygems.org"];
258
- sha256 = "1x298w3wmq8cavbsg903wc3arxp3xh2x8263brvy128436m732rd";
391
+ sha256 = "0szpapi229v3scrvw1pgy0vpjm7z3qlf58m1198kxn70cs278g96";
259
392
  type = "gem";
260
393
  };
261
- version = "1.6.0";
394
+ version = "2.6.0";
262
395
  };
263
396
  unicode-display_width = {
264
397
  dependencies = ["unicode-emoji"];
@@ -281,4 +414,36 @@
281
414
  };
282
415
  version = "4.0.4";
283
416
  };
417
+ yard = {
418
+ groups = ["development"];
419
+ platforms = [];
420
+ source = {
421
+ remotes = ["https://rubygems.org"];
422
+ sha256 = "14k9lb9a60r9z2zcqg08by9iljrrgjxdkbd91gw17rkqkqwi1sd6";
423
+ type = "gem";
424
+ };
425
+ version = "0.9.37";
426
+ };
427
+ yard-doctest = {
428
+ dependencies = ["minitest" "yard"];
429
+ groups = ["development"];
430
+ platforms = [];
431
+ source = {
432
+ remotes = ["https://rubygems.org"];
433
+ sha256 = "0zw4fa5ri58w76yawh0sc9xj69z26qm59lvjxr1gqn4zv5smmcvw";
434
+ type = "gem";
435
+ };
436
+ version = "0.1.17";
437
+ };
438
+ yard-solargraph = {
439
+ dependencies = ["yard"];
440
+ groups = ["default"];
441
+ platforms = [];
442
+ source = {
443
+ remotes = ["https://rubygems.org"];
444
+ sha256 = "03lklm47k6k294ww97x6zpvlqlyjm5q8jidrixhil622r4cld6m1";
445
+ type = "gem";
446
+ };
447
+ version = "0.1.0";
448
+ };
284
449
  }
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "concurrent/map"
3
+ require 'concurrent/map'
4
4
 
5
5
  class Object
6
6
  # An object is blank if it's false, empty, or a whitespace string.
@@ -99,7 +99,7 @@ class Array
99
99
  # [1,2,3].blank? # => false
100
100
  #
101
101
  # @return [true, false]
102
- alias_method :blank?, :empty?
102
+ alias blank? empty?
103
103
 
104
104
  def present? # :nodoc:
105
105
  !empty?
@@ -113,7 +113,7 @@ class Hash
113
113
  # { key: 'value' }.blank? # => false
114
114
  #
115
115
  # @return [true, false]
116
- alias_method :blank?, :empty?
116
+ alias blank? empty?
117
117
 
118
118
  def present? # :nodoc:
119
119
  !empty?
@@ -125,7 +125,7 @@ class Symbol
125
125
  #
126
126
  # :''.blank? # => true
127
127
  # :symbol.blank? # => false
128
- alias_method :blank?, :empty?
128
+ alias blank? empty?
129
129
 
130
130
  def present? # :nodoc:
131
131
  !empty?