sup 1.1 → 1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/checks.yml +27 -39
  3. data/CONTRIBUTORS +3 -1
  4. data/History.txt +16 -3
  5. data/Manifest.txt +22 -0
  6. data/README.md +0 -1
  7. data/bin/sup-sync-back-maildir +1 -1
  8. data/contrib/nix/Gemfile +22 -0
  9. data/contrib/nix/Gemfile.lock +80 -0
  10. data/contrib/nix/README +7 -0
  11. data/contrib/nix/gem-install-shell.nix +12 -0
  12. data/contrib/nix/gemset.nix +339 -0
  13. data/contrib/nix/ruby2.4-Gemfile.lock +81 -0
  14. data/contrib/nix/ruby2.4-gemset.nix +309 -0
  15. data/contrib/nix/ruby2.4-shell.nix +30 -0
  16. data/contrib/nix/ruby2.5-Gemfile.lock +81 -0
  17. data/contrib/nix/ruby2.5-gemset.nix +309 -0
  18. data/contrib/nix/ruby2.5-shell.nix +30 -0
  19. data/contrib/nix/ruby2.6-Gemfile.lock +83 -0
  20. data/contrib/nix/ruby2.6-gemset.nix +319 -0
  21. data/contrib/nix/ruby2.6-shell.nix +30 -0
  22. data/contrib/nix/ruby2.7-shell.nix +23 -0
  23. data/contrib/nix/ruby3.0-shell.nix +23 -0
  24. data/contrib/nix/ruby3.1-shell.nix +23 -0
  25. data/contrib/nix/ruby3.2-shell.nix +23 -0
  26. data/contrib/nix/ruby3.3-shell.nix +23 -0
  27. data/contrib/nix/test-all-rubies.sh +6 -0
  28. data/doc/Hooks.txt +1 -1
  29. data/ext/mkrf_conf_xapian.rb +2 -2
  30. data/lib/sup/crypto.rb +1 -1
  31. data/lib/sup/index.rb +2 -2
  32. data/lib/sup/maildir.rb +1 -1
  33. data/lib/sup/mbox.rb +1 -1
  34. data/lib/sup/message.rb +2 -2
  35. data/lib/sup/modes/console_mode.rb +1 -1
  36. data/lib/sup/thread.rb +20 -20
  37. data/lib/sup/util.rb +3 -5
  38. data/lib/sup/version.rb +1 -1
  39. data/man/sup-add.1 +27 -27
  40. data/man/sup-config.1 +23 -19
  41. data/man/sup-dump.1 +28 -29
  42. data/man/sup-import-dump.1 +24 -20
  43. data/man/sup-psych-ify-config-files.1 +23 -19
  44. data/man/sup-recover-sources.1 +23 -19
  45. data/man/sup-sync-back-maildir.1 +23 -19
  46. data/man/sup-sync.1 +23 -19
  47. data/man/sup-tweak-labels.1 +23 -19
  48. data/man/sup.1 +23 -19
  49. data/shell.nix +1 -0
  50. data/test/integration/test_maildir.rb +3 -0
  51. data/test/integration/test_mbox.rb +3 -0
  52. data/test/integration/test_sup-sync-back-maildir.rb +40 -0
  53. data/test/test_header_parsing.rb +2 -2
  54. metadata +26 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93d027a0f383edb73d1a2900ca991d8d8d8daca922f0088c18f5281ca04daeb4
4
- data.tar.gz: 31b25e512227252a498baa651ea9b026ba452274dd5c67c99412dc2ef54f3e7a
3
+ metadata.gz: 9b3d74175eddced998ccf3d918989ba1f90781bb0f2432df5cc11ae2cf3a5ba9
4
+ data.tar.gz: f415405432adaa8fcfa9a10640107da0cce2575afee758902b934b137e1077e3
5
5
  SHA512:
6
- metadata.gz: 06211d3a91b76d20396afe9323bdf62d14acf61d13688333ae8f6409b55ff2120037df11e0a5e62e869e476868307a42216ee34e28f3621a05da0f9953a6cda3
7
- data.tar.gz: f17bac030201cdabd4c6e3313a4178fb03f65f70992dcd4364cde425d1fd658408973b1758c7d45b13140dddde0e92f34006d6085140bbbb76164081083e9006
6
+ metadata.gz: 1e3f012755517d29e9c2c0f5df80eac0432390bcbdd3108e32f921794aeafb2e791e9e6ff64b0663d1c1495b0040ebb1bbe8c006113380b787715ba85edf34dd
7
+ data.tar.gz: bc829f5939d98acd30f8c241b4f4defd3d6e8c09bde0a39802e28a5a2ecb78a15d7d7e4f25aa7456e0ddd6e20d01453d0715d8947942c74808c65037720fb25b
@@ -17,54 +17,42 @@ jobs:
17
17
  - ubuntu-latest
18
18
  - macos-latest
19
19
  ruby-version:
20
- - '2.0'
21
- - '2.1'
22
- # Ruby 2.2 fails installing sup gem with a nonsensical error:
23
- # Could not find 'xapian-ruby' (~> 1.2) among 21 total gem(s)
24
- #- '2.2'
25
- - '2.3'
26
20
  - '2.4'
27
21
  - '2.5'
28
22
  - '2.6'
29
23
  - '2.7'
30
24
  - '3.0'
31
25
  - '3.1'
32
- exclude:
33
- # xapian-bindings 1.2.2 fails to build on MacOS:
34
- # clang: warning: include path for libstdc++ headers not found; pass
35
- # '-stdlib=libc++' on the command line to use the libc++ standard
36
- # library instead [-Wstdlibcxx-not-found]
37
- # xapian_wrap.cc:1836:10: fatal error: 'string' file not found
38
- # Probably just wrong compiler command or some mess that I can't be
39
- # bothered to figure out.
40
- - os: macos-latest
41
- ruby-version: '2.0'
42
- # xapian-bindings 1.4.18 fails to build with Ruby 3.0+ on MacOS:
43
- # error: '__declspec' attributes are not enabled; use '-fdeclspec' or
44
- # '-fms-extensions' to enable support for __declspec attributes
45
- # Needs this fix:
46
- # https://github.com/xapian/xapian/commit/63a06768a250b0bb4821b835f011e8214d560f8e
47
- - os: macos-latest
48
- ruby-version: '3.0'
49
- - os: macos-latest
50
- ruby-version: '3.1'
26
+ - '3.2'
27
+ - '3.3'
51
28
  runs-on: ${{ matrix.os }}
29
+ env:
30
+ nixfile: "contrib/nix/ruby${{ matrix.ruby-version }}-shell.nix"
52
31
  steps:
53
- - name: Install pandoc
54
- run: sudo apt-get install -y pandoc
55
- if: runner.os == 'Linux'
56
- - name: Install pandoc
57
- run: brew install pandoc
58
- if: runner.os == 'macOS'
59
- - uses: actions/checkout@v3
32
+ - name: Check out source
33
+ uses: actions/checkout@v3
60
34
  with:
61
35
  submodules: recursive
62
- - name: Set up Ruby
63
- uses: ruby/setup-ruby@v1
36
+ - name: Cache nix store
37
+ uses: actions/cache@v3
38
+ id: nix-cache
64
39
  with:
65
- ruby-version: ${{ matrix.ruby-version }}
66
- bundler-cache: true
40
+ path: /tmp/nixcache
41
+ key: nix-store-${{ matrix.os }}-ruby${{ matrix.ruby-version }}-${{ hashFiles('contrib/nix/**') }}
42
+ restore-keys: |
43
+ nix-store-${{ matrix.os }}-ruby${{ matrix.ruby-version }}-
44
+ nix-store-
45
+ - name: Install bash on MacOS
46
+ run: brew install bash
47
+ if: runner.os == 'macOS'
48
+ - name: Install nix
49
+ uses: nixbuild/nix-quick-install-action@v21
50
+ - name: Import nix cache
51
+ run: |
52
+ if [ -f /tmp/nixcache ] ; then
53
+ nix-store --import </tmp/nixcache
54
+ fi
67
55
  - name: Run Rake ci task
68
- run: bundle exec rake ci
69
- - name: Test gem installation
70
- run: gem install pkg/sup-*.gem
56
+ run: nix-shell "$nixfile" --run 'rake ci'
57
+ - name: Export nix cache
58
+ run: nix-store --export $(nix-store -qR $(nix-build --no-out-link "$nixfile" -A inputDerivation | tail -n1)) >/tmp/nixcache
data/CONTRIBUTORS CHANGED
@@ -1,8 +1,8 @@
1
1
  William Morgan <william at the twitter dot coms>
2
2
  Rich Lane <rlane at the club.cc.cmu dot edus>
3
3
  Gaute Hope <eg at the gaute.vetsj dot coms>
4
- Whyme Lyu <callme5long at the gmail dot coms>
5
4
  Dan Callaghan <djc at the djc.id dot aus>
5
+ Whyme Lyu <callme5long at the gmail dot coms>
6
6
  Hamish Downer <dmishd at the gmail dot coms>
7
7
  Zeger-Jan van de Weg <mail at the zjvandeweg dot nls>
8
8
  Damien Leone <damien.leone at the fensalir dot frs>
@@ -87,6 +87,8 @@ Todd Eisenberger <teisenbe at the andrew.cmu dot edus>
87
87
  Johannes Larsen <mail at the johslarsen dot nets>
88
88
  Steven Schmeiser <steven at the schmeiser dot orgs>
89
89
  Steven Walter <swalter at the monarch.(none)>
90
+ Patrice Duroux <patrice.duroux at the gmail dot coms>
91
+ gclv <gh at the sg.ggoncalves dot mes>
90
92
  Utkarsh Gupta <utkarsh at the debian dot orgs>
91
93
  Michael Dwyer <mdwyer at the michaelmdwyer dot coms>
92
94
  Kyle Hunt <Kyle_Hunt at the ymail dot coms>
data/History.txt CHANGED
@@ -1,6 +1,19 @@
1
+ == 1.2 / 2024-04-21
2
+
3
+ * #619: Sup is now compatible with and tested on Ruby 3.2 and Ruby 3.3.
4
+ (Dan Callaghan)
5
+ * #603: Fixed deprecated usage of Enumerator.new, which caused a crash on
6
+ Ruby 3+. (Gui Goncalves)
7
+ * OutOfSyncSourceErrors now show an error message in the thread view in place
8
+ of the out-of-sync message body, instead of crashing. (Dan Callaghan)
9
+ * #613: When installing Sup as a gem, the dependency on xapian-ruby is now
10
+ skipped if the SUP_SKIP_XAPIAN_GEM_INSTALL environment variable is set.
11
+ Previously it was skipped unconditionally on OpenBSD only. (Dan Callaghan)
12
+
1
13
  == 1.1 / 2022-05-23
2
14
 
3
15
  * #588, #577: Sup is now compatible with and tested on Ruby 3.0 and Ruby 3.1.
16
+ (Dan Callaghan)
4
17
  * When the Sup gem installs xapian-ruby, it will install to the user gem
5
18
  directory if the system gem directory is not writable. (Iain Parris)
6
19
  * #571: To and From addresses of enclosed messages are now displayed normally,
@@ -8,15 +21,15 @@
8
21
  * #570: Fixed wording when displaying enclosed messages without Date header.
9
22
  (Iain Parris)
10
23
  * #205, #602: UTF-8 header values are now accepted and handled correctly, as
11
- per RFC6532.
24
+ per RFC6532. (Dan Callaghan)
12
25
  * #585: Text/plain attachments with invalid charset are now displayed as
13
- US-ASCII (with high bytes replaced) instead of crashing.
26
+ US-ASCII (with high bytes replaced) instead of crashing. (Dan Callaghan)
14
27
  * #424: Spaces are now accepted in RFC2047-encoded header words, even though
15
28
  the RFC forbids them. (Dan Callaghan)
16
29
  * Invalid RFC2047-encoded header words are now displayed in their raw form,
17
30
  rather than trying to forcibly transcode them to UTF-8, as per the RFC's
18
31
  recommendation. (Dan Callaghan)
19
- * Sup now decodes UTF-7 correctly instead of crashing.
32
+ * Sup now decodes UTF-7 correctly instead of crashing. (Dan Callaghan)
20
33
 
21
34
  == 1.0 / 2020-07-12
22
35
 
data/Manifest.txt CHANGED
@@ -23,6 +23,26 @@ bin/sup-tweak-labels
23
23
  contrib/colorpicker.rb
24
24
  contrib/completion/_sup.bash
25
25
  contrib/completion/_sup.zsh
26
+ contrib/nix/Gemfile
27
+ contrib/nix/Gemfile.lock
28
+ contrib/nix/README
29
+ contrib/nix/gem-install-shell.nix
30
+ contrib/nix/gemset.nix
31
+ contrib/nix/ruby2.4-Gemfile.lock
32
+ contrib/nix/ruby2.4-gemset.nix
33
+ contrib/nix/ruby2.4-shell.nix
34
+ contrib/nix/ruby2.5-Gemfile.lock
35
+ contrib/nix/ruby2.5-gemset.nix
36
+ contrib/nix/ruby2.5-shell.nix
37
+ contrib/nix/ruby2.6-Gemfile.lock
38
+ contrib/nix/ruby2.6-gemset.nix
39
+ contrib/nix/ruby2.6-shell.nix
40
+ contrib/nix/ruby2.7-shell.nix
41
+ contrib/nix/ruby3.0-shell.nix
42
+ contrib/nix/ruby3.1-shell.nix
43
+ contrib/nix/ruby3.2-shell.nix
44
+ contrib/nix/ruby3.3-shell.nix
45
+ contrib/nix/test-all-rubies.sh
26
46
  devel/console.sh
27
47
  devel/count-loc.sh
28
48
  devel/load-index.rb
@@ -100,6 +120,7 @@ lib/sup/util/path.rb
100
120
  lib/sup/util/query.rb
101
121
  lib/sup/util/uri.rb
102
122
  lib/sup/version.rb
123
+ shell.nix
103
124
  sup.gemspec
104
125
  test/dummy_source.rb
105
126
  test/fixtures/bad-content-transfer-encoding-1.eml
@@ -133,6 +154,7 @@ test/gnupg_test_home/sup-test-2@foo.bar.asc
133
154
  test/integration/test_maildir.rb
134
155
  test/integration/test_mbox.rb
135
156
  test/integration/test_sup-add.rb
157
+ test/integration/test_sup-sync-back-maildir.rb
136
158
  test/test_crypto.rb
137
159
  test/test_header_parsing.rb
138
160
  test/test_helper.rb
data/README.md CHANGED
@@ -38,7 +38,6 @@ Please report bugs to the [GitHub issue tracker](https://github.com/sup-heliotro
38
38
  * [Homepage](https://sup-heliotrope.github.io/)
39
39
  * [Code repository](https://github.com/sup-heliotrope/sup)
40
40
  * [Wiki](https://github.com/sup-heliotrope/sup/wiki)
41
- * IRC: [#sup @ freenode.net](http://webchat.freenode.net/?channels=#sup)
42
41
  * Mailing list: supmua@googlegroups.com (subscribe: supmua+subscribe@googlegroups.com, archive: https://groups.google.com/d/forum/supmua )
43
42
 
44
43
  ## Maintenance status
@@ -94,7 +94,7 @@ begin
94
94
  next if STDIN.gets.chomp.downcase == 'n'
95
95
  end
96
96
 
97
- infos = Enumerator.new(index, :each_source_info, s.id).to_a
97
+ infos = index.enum_for(:each_source_info, s.id).to_a
98
98
  counter = 0
99
99
  infos.each do |info|
100
100
  print "\rSynchronizing '#{s.uri}'... #{((counter += 1)/infos.size.to_f*100).to_i}%"
@@ -0,0 +1,22 @@
1
+ source "https://rubygems.org/"
2
+
3
+ gem "xapian-ruby", "~> 1.2"
4
+ gem "ncursesw", "~> 1.4.0"
5
+ gem "rmail", ">= 1.1.2", "< 2"
6
+ gem "highline"
7
+ gem "optimist"
8
+ gem "lockfile"
9
+ gem "mime-types", "> 2.0"
10
+ gem "locale", "~> 2.0"
11
+ gem "chronic"
12
+ gem "unicode", "~> 0.4.4"
13
+ gem "unicode-display_width"
14
+ gem "string-scrub" if /^2\.0\./ =~ RUBY_VERSION
15
+
16
+ gem "bundler", ">= 1.3", "< 3"
17
+ gem "rake"
18
+ gem "minitest", "~> 5.5"
19
+ gem "rr", "~> 1.1"
20
+ gem "gpgme", ">= 2.0.2"
21
+ gem "pry"
22
+ gem "rubocop-packaging" unless /^2\.[012]\./ =~ RUBY_VERSION
@@ -0,0 +1,80 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ ast (2.4.2)
5
+ chronic (0.10.2)
6
+ coderay (1.1.3)
7
+ gpgme (2.0.24)
8
+ mini_portile2 (~> 2.7)
9
+ highline (3.0.1)
10
+ json (2.7.2)
11
+ language_server-protocol (3.17.0.3)
12
+ locale (2.1.4)
13
+ lockfile (2.1.3)
14
+ method_source (1.1.0)
15
+ mime-types (3.5.2)
16
+ mime-types-data (~> 3.2015)
17
+ mime-types-data (3.2024.0305)
18
+ mini_portile2 (2.8.6)
19
+ minitest (5.22.3)
20
+ ncursesw (1.4.11)
21
+ optimist (3.1.0)
22
+ parallel (1.24.0)
23
+ parser (3.3.0.5)
24
+ ast (~> 2.4.1)
25
+ racc
26
+ pry (0.14.2)
27
+ coderay (~> 1.1)
28
+ method_source (~> 1.0)
29
+ racc (1.7.3)
30
+ rainbow (3.1.1)
31
+ rake (13.2.1)
32
+ regexp_parser (2.9.0)
33
+ rexml (3.2.6)
34
+ rmail (1.1.4)
35
+ rr (1.2.1)
36
+ rubocop (1.63.2)
37
+ json (~> 2.3)
38
+ language_server-protocol (>= 3.17.0)
39
+ parallel (~> 1.10)
40
+ parser (>= 3.3.0.2)
41
+ rainbow (>= 2.2.2, < 4.0)
42
+ regexp_parser (>= 1.8, < 3.0)
43
+ rexml (>= 3.2.5, < 4.0)
44
+ rubocop-ast (>= 1.31.1, < 2.0)
45
+ ruby-progressbar (~> 1.7)
46
+ unicode-display_width (>= 2.4.0, < 3.0)
47
+ rubocop-ast (1.31.2)
48
+ parser (>= 3.3.0.4)
49
+ rubocop-packaging (0.5.2)
50
+ rubocop (>= 1.33, < 2.0)
51
+ ruby-progressbar (1.13.0)
52
+ unicode (0.4.4.4)
53
+ unicode-display_width (2.5.0)
54
+ xapian-ruby (1.4.22)
55
+
56
+ PLATFORMS
57
+ aarch64-linux
58
+
59
+ DEPENDENCIES
60
+ bundler (>= 1.3, < 3)
61
+ chronic
62
+ gpgme (>= 2.0.2)
63
+ highline
64
+ locale (~> 2.0)
65
+ lockfile
66
+ mime-types (> 2.0)
67
+ minitest (~> 5.5)
68
+ ncursesw (~> 1.4.0)
69
+ optimist
70
+ pry
71
+ rake
72
+ rmail (>= 1.1.2, < 2)
73
+ rr (~> 1.1)
74
+ rubocop-packaging
75
+ unicode (~> 0.4.4)
76
+ unicode-display_width
77
+ xapian-ruby (~> 1.2)
78
+
79
+ BUNDLED WITH
80
+ 2.4.22
@@ -0,0 +1,7 @@
1
+ After updating Gemfile, regenerate Gemfile.lock and gemset.nix:
2
+
3
+ nix-shell -p bundix --run 'bundix --gemfile=contrib/nix/Gemfile --lockfile=contrib/nix/Gemfile.lock --gemset=contrib/nix/gemset.nix -l'
4
+
5
+ Test gem installation:
6
+
7
+ nix-shell contrib/nix/gem-install-shell.nix --run 'gem install --verbose -i ./asdf ./pkg/sup-999.gem'
@@ -0,0 +1,12 @@
1
+ { pkgs ? import <nixpkgs> {} }:
2
+ pkgs.mkShell {
3
+ packages = with pkgs; [
4
+ ncurses
5
+ ncurses.dev
6
+ libuuid
7
+ libuuid.dev
8
+ ruby_3_2
9
+ zlib
10
+ zlib.dev
11
+ ];
12
+ }
@@ -0,0 +1,339 @@
1
+ {
2
+ ast = {
3
+ groups = ["default"];
4
+ platforms = [];
5
+ source = {
6
+ remotes = ["https://rubygems.org"];
7
+ sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
8
+ type = "gem";
9
+ };
10
+ version = "2.4.2";
11
+ };
12
+ chronic = {
13
+ groups = ["default"];
14
+ platforms = [];
15
+ source = {
16
+ remotes = ["https://rubygems.org"];
17
+ sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
18
+ type = "gem";
19
+ };
20
+ version = "0.10.2";
21
+ };
22
+ coderay = {
23
+ groups = ["default"];
24
+ platforms = [];
25
+ source = {
26
+ remotes = ["https://rubygems.org"];
27
+ sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
28
+ type = "gem";
29
+ };
30
+ version = "1.1.3";
31
+ };
32
+ gpgme = {
33
+ dependencies = ["mini_portile2"];
34
+ groups = ["default"];
35
+ platforms = [];
36
+ source = {
37
+ remotes = ["https://rubygems.org"];
38
+ sha256 = "0r1vmql7w7ka5xzj1aqf8pk2a4sv0znwj2zkg1fgvd5b89qcvv2k";
39
+ type = "gem";
40
+ };
41
+ version = "2.0.24";
42
+ };
43
+ highline = {
44
+ groups = ["default"];
45
+ platforms = [];
46
+ source = {
47
+ remotes = ["https://rubygems.org"];
48
+ sha256 = "02ghhvigqbq4252gsi4w8a9klkdkybmbz29ghfp1y6sqzlcb466a";
49
+ type = "gem";
50
+ };
51
+ version = "3.0.1";
52
+ };
53
+ json = {
54
+ groups = ["default"];
55
+ platforms = [];
56
+ source = {
57
+ remotes = ["https://rubygems.org"];
58
+ sha256 = "0b4qsi8gay7ncmigr0pnbxyb17y3h8kavdyhsh7nrlqwr35vb60q";
59
+ type = "gem";
60
+ };
61
+ version = "2.7.2";
62
+ };
63
+ language_server-protocol = {
64
+ groups = ["default"];
65
+ platforms = [];
66
+ source = {
67
+ remotes = ["https://rubygems.org"];
68
+ sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x";
69
+ type = "gem";
70
+ };
71
+ version = "3.17.0.3";
72
+ };
73
+ locale = {
74
+ groups = ["default"];
75
+ platforms = [];
76
+ source = {
77
+ remotes = ["https://rubygems.org"];
78
+ sha256 = "107pm4ccmla23z963kyjldgngfigvchnv85wr6m69viyxxrrjbsj";
79
+ type = "gem";
80
+ };
81
+ version = "2.1.4";
82
+ };
83
+ lockfile = {
84
+ groups = ["default"];
85
+ platforms = [];
86
+ source = {
87
+ remotes = ["https://rubygems.org"];
88
+ sha256 = "0dij3ijywylvfgrpi2i0k17f6w0wjhnjjw0k9030f54z56cz7jrr";
89
+ type = "gem";
90
+ };
91
+ version = "2.1.3";
92
+ };
93
+ method_source = {
94
+ groups = ["default"];
95
+ platforms = [];
96
+ source = {
97
+ remotes = ["https://rubygems.org"];
98
+ sha256 = "1igmc3sq9ay90f8xjvfnswd1dybj1s3fi0dwd53inwsvqk4h24qq";
99
+ type = "gem";
100
+ };
101
+ version = "1.1.0";
102
+ };
103
+ mime-types = {
104
+ dependencies = ["mime-types-data"];
105
+ groups = ["default"];
106
+ platforms = [];
107
+ source = {
108
+ remotes = ["https://rubygems.org"];
109
+ sha256 = "1r64z0m5zrn4k37wabfnv43wa6yivgdfk6cf2rpmmirlz889yaf1";
110
+ type = "gem";
111
+ };
112
+ version = "3.5.2";
113
+ };
114
+ mime-types-data = {
115
+ groups = ["default"];
116
+ platforms = [];
117
+ source = {
118
+ remotes = ["https://rubygems.org"];
119
+ sha256 = "00x7w5xqsj9m33v3vkmy23wipkkysafksib53ypzn27p5g81w455";
120
+ type = "gem";
121
+ };
122
+ version = "3.2024.0305";
123
+ };
124
+ mini_portile2 = {
125
+ groups = ["default"];
126
+ platforms = [];
127
+ source = {
128
+ remotes = ["https://rubygems.org"];
129
+ sha256 = "149r94xi6b3jbp6bv72f8383b95ndn0p5sxnq11gs1j9jadv0ajf";
130
+ type = "gem";
131
+ };
132
+ version = "2.8.6";
133
+ };
134
+ minitest = {
135
+ groups = ["default"];
136
+ platforms = [];
137
+ source = {
138
+ remotes = ["https://rubygems.org"];
139
+ sha256 = "07lq26b86giy3ha3fhrywk9r1ajhc2pm2mzj657jnpnbj1i6g17a";
140
+ type = "gem";
141
+ };
142
+ version = "5.22.3";
143
+ };
144
+ ncursesw = {
145
+ groups = ["default"];
146
+ platforms = [];
147
+ source = {
148
+ remotes = ["https://rubygems.org"];
149
+ sha256 = "0qlfhp9b445g0qp9kkdiylfjlpfzrv6nqvry4ar6y0yacn0zr5y8";
150
+ type = "gem";
151
+ };
152
+ version = "1.4.11";
153
+ };
154
+ optimist = {
155
+ groups = ["default"];
156
+ platforms = [];
157
+ source = {
158
+ remotes = ["https://rubygems.org"];
159
+ sha256 = "0q4jqq3v1bxlfr9jgqmahnygkvl81lr6s1rhm8qg66c9xr9nz241";
160
+ type = "gem";
161
+ };
162
+ version = "3.1.0";
163
+ };
164
+ parallel = {
165
+ groups = ["default"];
166
+ platforms = [];
167
+ source = {
168
+ remotes = ["https://rubygems.org"];
169
+ sha256 = "15wkxrg1sj3n1h2g8jcrn7gcapwcgxr659ypjf75z1ipkgxqxwsv";
170
+ type = "gem";
171
+ };
172
+ version = "1.24.0";
173
+ };
174
+ parser = {
175
+ dependencies = ["ast" "racc"];
176
+ groups = ["default"];
177
+ platforms = [];
178
+ source = {
179
+ remotes = ["https://rubygems.org"];
180
+ sha256 = "11r6kp8wam0nkfvnwyc1fmvky102r1vcfr84vi2p1a2wa0z32j3p";
181
+ type = "gem";
182
+ };
183
+ version = "3.3.0.5";
184
+ };
185
+ pry = {
186
+ dependencies = ["coderay" "method_source"];
187
+ groups = ["default"];
188
+ platforms = [];
189
+ source = {
190
+ remotes = ["https://rubygems.org"];
191
+ sha256 = "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4";
192
+ type = "gem";
193
+ };
194
+ version = "0.14.2";
195
+ };
196
+ racc = {
197
+ groups = ["default"];
198
+ platforms = [];
199
+ source = {
200
+ remotes = ["https://rubygems.org"];
201
+ sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
202
+ type = "gem";
203
+ };
204
+ version = "1.7.3";
205
+ };
206
+ rainbow = {
207
+ groups = ["default"];
208
+ platforms = [];
209
+ source = {
210
+ remotes = ["https://rubygems.org"];
211
+ sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503";
212
+ type = "gem";
213
+ };
214
+ version = "3.1.1";
215
+ };
216
+ rake = {
217
+ groups = ["default"];
218
+ platforms = [];
219
+ source = {
220
+ remotes = ["https://rubygems.org"];
221
+ sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6";
222
+ type = "gem";
223
+ };
224
+ version = "13.2.1";
225
+ };
226
+ regexp_parser = {
227
+ groups = ["default"];
228
+ platforms = [];
229
+ source = {
230
+ remotes = ["https://rubygems.org"];
231
+ sha256 = "1ndxm0xnv27p4gv6xynk6q41irckj76q1jsqpysd9h6f86hhp841";
232
+ type = "gem";
233
+ };
234
+ version = "2.9.0";
235
+ };
236
+ rexml = {
237
+ groups = ["default"];
238
+ platforms = [];
239
+ source = {
240
+ remotes = ["https://rubygems.org"];
241
+ sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
242
+ type = "gem";
243
+ };
244
+ version = "3.2.6";
245
+ };
246
+ rmail = {
247
+ groups = ["default"];
248
+ platforms = [];
249
+ source = {
250
+ remotes = ["https://rubygems.org"];
251
+ sha256 = "0m5npkmv764m725wzjzasgf3k8q5anf3vfr6k2cac1xj6jc8lcqi";
252
+ type = "gem";
253
+ };
254
+ version = "1.1.4";
255
+ };
256
+ rr = {
257
+ groups = ["default"];
258
+ platforms = [];
259
+ source = {
260
+ remotes = ["https://rubygems.org"];
261
+ sha256 = "1n9g78ba4c2zzmz8cdb97c38h1xm0clircag00vbcxwqs4dq0ymp";
262
+ type = "gem";
263
+ };
264
+ version = "1.2.1";
265
+ };
266
+ rubocop = {
267
+ dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
268
+ groups = ["default"];
269
+ platforms = [];
270
+ source = {
271
+ remotes = ["https://rubygems.org"];
272
+ sha256 = "1dmj955zbvhlrzzag6hc77xdyyzn8ihvffpjalnzn5asxhz7jcdl";
273
+ type = "gem";
274
+ };
275
+ version = "1.63.2";
276
+ };
277
+ rubocop-ast = {
278
+ dependencies = ["parser"];
279
+ groups = ["default"];
280
+ platforms = [];
281
+ source = {
282
+ remotes = ["https://rubygems.org"];
283
+ sha256 = "1v3q8n48w8h809rqbgzihkikr4g3xk72m1na7s97jdsmjjq6y83w";
284
+ type = "gem";
285
+ };
286
+ version = "1.31.2";
287
+ };
288
+ rubocop-packaging = {
289
+ dependencies = ["rubocop"];
290
+ groups = ["default"];
291
+ platforms = [];
292
+ source = {
293
+ remotes = ["https://rubygems.org"];
294
+ sha256 = "1iqgsbpj7y8ksddbb9gj5vpzs2y8202khyk2mcc165kkfmvm6rx3";
295
+ type = "gem";
296
+ };
297
+ version = "0.5.2";
298
+ };
299
+ ruby-progressbar = {
300
+ groups = ["default"];
301
+ platforms = [];
302
+ source = {
303
+ remotes = ["https://rubygems.org"];
304
+ sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40";
305
+ type = "gem";
306
+ };
307
+ version = "1.13.0";
308
+ };
309
+ unicode = {
310
+ groups = ["default"];
311
+ platforms = [];
312
+ source = {
313
+ remotes = ["https://rubygems.org"];
314
+ sha256 = "1v8kxmq9i85agjpl7pnl72688901xhs8wxhmj6lpy16a8xz3nzxk";
315
+ type = "gem";
316
+ };
317
+ version = "0.4.4.4";
318
+ };
319
+ unicode-display_width = {
320
+ groups = ["default"];
321
+ platforms = [];
322
+ source = {
323
+ remotes = ["https://rubygems.org"];
324
+ sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
325
+ type = "gem";
326
+ };
327
+ version = "2.5.0";
328
+ };
329
+ xapian-ruby = {
330
+ groups = ["default"];
331
+ platforms = [];
332
+ source = {
333
+ remotes = ["https://rubygems.org"];
334
+ sha256 = "0xlzgk2sis7nnasiplpg6x7mdvqa17ahq2d27i8fd5hs8dmqcsh2";
335
+ type = "gem";
336
+ };
337
+ version = "1.4.22";
338
+ };
339
+ }