net-imap 0.4.10 → 0.5.8

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/BSDL +22 -0
  3. data/COPYING +56 -0
  4. data/Gemfile +8 -1
  5. data/LICENSE.txt +3 -22
  6. data/README.md +10 -4
  7. data/docs/styles.css +75 -14
  8. data/lib/net/imap/authenticators.rb +2 -2
  9. data/lib/net/imap/command_data.rb +61 -48
  10. data/lib/net/imap/config/attr_accessors.rb +75 -0
  11. data/lib/net/imap/config/attr_inheritance.rb +90 -0
  12. data/lib/net/imap/config/attr_type_coercion.rb +62 -0
  13. data/lib/net/imap/config.rb +552 -0
  14. data/lib/net/imap/connection_state.rb +48 -0
  15. data/lib/net/imap/data_encoding.rb +4 -4
  16. data/lib/net/imap/data_lite.rb +226 -0
  17. data/lib/net/imap/deprecated_client_options.rb +9 -6
  18. data/lib/net/imap/errors.rb +40 -1
  19. data/lib/net/imap/esearch_result.rb +180 -0
  20. data/lib/net/imap/fetch_data.rb +126 -47
  21. data/lib/net/imap/flags.rb +1 -1
  22. data/lib/net/imap/response_data.rb +126 -239
  23. data/lib/net/imap/response_parser/parser_utils.rb +11 -6
  24. data/lib/net/imap/response_parser.rb +188 -34
  25. data/lib/net/imap/response_reader.rb +73 -0
  26. data/lib/net/imap/sasl/anonymous_authenticator.rb +3 -3
  27. data/lib/net/imap/sasl/authentication_exchange.rb +52 -20
  28. data/lib/net/imap/sasl/authenticators.rb +8 -4
  29. data/lib/net/imap/sasl/client_adapter.rb +77 -26
  30. data/lib/net/imap/sasl/cram_md5_authenticator.rb +4 -4
  31. data/lib/net/imap/sasl/digest_md5_authenticator.rb +218 -56
  32. data/lib/net/imap/sasl/external_authenticator.rb +3 -3
  33. data/lib/net/imap/sasl/gs2_header.rb +7 -7
  34. data/lib/net/imap/sasl/login_authenticator.rb +4 -3
  35. data/lib/net/imap/sasl/oauthbearer_authenticator.rb +6 -6
  36. data/lib/net/imap/sasl/plain_authenticator.rb +7 -7
  37. data/lib/net/imap/sasl/protocol_adapters.rb +60 -4
  38. data/lib/net/imap/sasl/scram_authenticator.rb +8 -8
  39. data/lib/net/imap/sasl.rb +8 -5
  40. data/lib/net/imap/sasl_adapter.rb +0 -1
  41. data/lib/net/imap/search_result.rb +2 -2
  42. data/lib/net/imap/sequence_set.rb +471 -176
  43. data/lib/net/imap/stringprep/nameprep.rb +1 -1
  44. data/lib/net/imap/stringprep/trace.rb +4 -4
  45. data/lib/net/imap/uidplus_data.rb +244 -0
  46. data/lib/net/imap/vanished_data.rb +56 -0
  47. data/lib/net/imap.rb +1225 -364
  48. data/net-imap.gemspec +4 -4
  49. data/rakelib/benchmarks.rake +1 -1
  50. data/rakelib/rfcs.rake +2 -0
  51. data/rakelib/string_prep_tables_generator.rb +2 -0
  52. metadata +17 -12
  53. data/.github/dependabot.yml +0 -6
  54. data/.github/workflows/pages.yml +0 -46
  55. data/.github/workflows/test.yml +0 -31
  56. data/.gitignore +0 -12
data/net-imap.gemspec CHANGED
@@ -11,12 +11,12 @@ Gem::Specification.new do |spec|
11
11
  spec.name = name
12
12
  spec.version = version
13
13
  spec.authors = ["Shugo Maeda", "nicholas a. evans"]
14
- spec.email = ["shugo@ruby-lang.org", "nick@ekenosen.net"]
14
+ spec.email = ["shugo@ruby-lang.org", "nick@rubinick.dev"]
15
15
 
16
16
  spec.summary = %q{Ruby client api for Internet Message Access Protocol}
17
17
  spec.description = %q{Ruby client api for Internet Message Access Protocol}
18
18
  spec.homepage = "https://github.com/ruby/net-imap"
19
- spec.required_ruby_version = Gem::Requirement.new(">= 2.7.3")
19
+ spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
20
20
  spec.licenses = ["Ruby", "BSD-2-Clause"]
21
21
 
22
22
  spec.metadata["homepage_uri"] = spec.homepage
@@ -25,9 +25,9 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  # Specify which files should be added to the gem when it is released.
27
27
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
28
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
28
+ spec.files = Dir.chdir(__dir__) do
29
29
  `git ls-files -z 2>/dev/null`.split("\x0")
30
- .reject {|f| f.match(%r{^(bin|test|spec|benchmarks|features|rfcs)/}) }
30
+ .grep_v(%r{^(\.git(ignore)?|\.mailmap|(\.github|bin|test|spec|benchmarks|features|rfcs)/)})
31
31
  end
32
32
  spec.bindir = "exe"
33
33
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
@@ -26,7 +26,7 @@ file "benchmarks/parser.yml" => PARSER_TEST_FIXTURES do |t|
26
26
  files = path.glob("*.yml")
27
27
  tests = files.flat_map {|file|
28
28
  file.read
29
- .gsub(%r{([-:]) !ruby/(object|struct):\S+}) { $1 }
29
+ .gsub(%r{([-:]) !ruby/(object|struct|array):\S+}) { $1 }
30
30
  .then {
31
31
  YAML.safe_load(_1, filename: file,
32
32
  permitted_classes: [Symbol, Regexp], aliases: true)
data/rakelib/rfcs.rake CHANGED
@@ -145,6 +145,8 @@ RFCS = {
145
145
  8514 => "IMAP SAVEDATE",
146
146
  8970 => "IMAP PREVIEW",
147
147
  9208 => "IMAP QUOTA, QUOTA=, QUOTASET",
148
+ 9394 => "IMAP PARTIAL",
149
+ 9586 => "IMAP UIDONLY",
148
150
 
149
151
  # etc...
150
152
  3629 => "UTF8",
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "set" unless defined?(::Set)
4
+
3
5
  # Generator for stringprep regexps.
4
6
  #
5
7
  # Combines Unicode character classes with generated tables. Generated regexps
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-imap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.10
4
+ version: 0.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shugo Maeda
8
8
  - nicholas a. evans
9
- autorequire:
10
9
  bindir: exe
11
10
  cert_chain: []
12
- date: 2024-02-04 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: net-protocol
@@ -42,15 +41,13 @@ dependencies:
42
41
  description: Ruby client api for Internet Message Access Protocol
43
42
  email:
44
43
  - shugo@ruby-lang.org
45
- - nick@ekenosen.net
44
+ - nick@rubinick.dev
46
45
  executables: []
47
46
  extensions: []
48
47
  extra_rdoc_files: []
49
48
  files:
50
- - ".github/dependabot.yml"
51
- - ".github/workflows/pages.yml"
52
- - ".github/workflows/test.yml"
53
- - ".gitignore"
49
+ - BSDL
50
+ - COPYING
54
51
  - Gemfile
55
52
  - LICENSE.txt
56
53
  - README.md
@@ -59,14 +56,22 @@ files:
59
56
  - lib/net/imap.rb
60
57
  - lib/net/imap/authenticators.rb
61
58
  - lib/net/imap/command_data.rb
59
+ - lib/net/imap/config.rb
60
+ - lib/net/imap/config/attr_accessors.rb
61
+ - lib/net/imap/config/attr_inheritance.rb
62
+ - lib/net/imap/config/attr_type_coercion.rb
63
+ - lib/net/imap/connection_state.rb
62
64
  - lib/net/imap/data_encoding.rb
65
+ - lib/net/imap/data_lite.rb
63
66
  - lib/net/imap/deprecated_client_options.rb
64
67
  - lib/net/imap/errors.rb
68
+ - lib/net/imap/esearch_result.rb
65
69
  - lib/net/imap/fetch_data.rb
66
70
  - lib/net/imap/flags.rb
67
71
  - lib/net/imap/response_data.rb
68
72
  - lib/net/imap/response_parser.rb
69
73
  - lib/net/imap/response_parser/parser_utils.rb
74
+ - lib/net/imap/response_reader.rb
70
75
  - lib/net/imap/sasl.rb
71
76
  - lib/net/imap/sasl/anonymous_authenticator.rb
72
77
  - lib/net/imap/sasl/authentication_exchange.rb
@@ -93,6 +98,8 @@ files:
93
98
  - lib/net/imap/stringprep/saslprep_tables.rb
94
99
  - lib/net/imap/stringprep/tables.rb
95
100
  - lib/net/imap/stringprep/trace.rb
101
+ - lib/net/imap/uidplus_data.rb
102
+ - lib/net/imap/vanished_data.rb
96
103
  - net-imap.gemspec
97
104
  - rakelib/benchmarks.rake
98
105
  - rakelib/rdoc.rake
@@ -108,7 +115,6 @@ metadata:
108
115
  homepage_uri: https://github.com/ruby/net-imap
109
116
  source_code_uri: https://github.com/ruby/net-imap
110
117
  changelog_uri: https://github.com/ruby/net-imap/releases
111
- post_install_message:
112
118
  rdoc_options: []
113
119
  require_paths:
114
120
  - lib
@@ -116,15 +122,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
116
122
  requirements:
117
123
  - - ">="
118
124
  - !ruby/object:Gem::Version
119
- version: 2.7.3
125
+ version: 3.1.0
120
126
  required_rubygems_version: !ruby/object:Gem::Requirement
121
127
  requirements:
122
128
  - - ">="
123
129
  - !ruby/object:Gem::Version
124
130
  version: '0'
125
131
  requirements: []
126
- rubygems_version: 3.4.22
127
- signing_key:
132
+ rubygems_version: 3.6.7
128
133
  specification_version: 4
129
134
  summary: Ruby client api for Internet Message Access Protocol
130
135
  test_files: []
@@ -1,6 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: 'github-actions'
4
- directory: '/'
5
- schedule:
6
- interval: 'weekly'
@@ -1,46 +0,0 @@
1
- name: Deploy RDoc site to Pages
2
-
3
- on:
4
- push:
5
- branches: [ 'master' ]
6
- workflow_dispatch:
7
-
8
- permissions:
9
- contents: read
10
- pages: write
11
- id-token: write
12
-
13
- concurrency:
14
- group: "pages"
15
- cancel-in-progress: true
16
-
17
- jobs:
18
- build:
19
- runs-on: ubuntu-latest
20
- steps:
21
- - name: Checkout
22
- uses: actions/checkout@v4
23
- - name: Setup Ruby
24
- uses: ruby/setup-ruby@250fcd6a742febb1123a77a841497ccaa8b9e939 # v1.152.0
25
- with:
26
- ruby-version: '3.2'
27
- bundler-cache: true
28
- - name: Setup Pages
29
- id: pages
30
- uses: actions/configure-pages@v4
31
- - name: Build with RDoc
32
- run: bundle exec rake rdoc
33
- - name: Upload artifact
34
- uses: actions/upload-pages-artifact@v3
35
- with: { path: 'doc' }
36
-
37
- deploy:
38
- environment:
39
- name: github-pages
40
- url: ${{ steps.deployment.outputs.page_url }}
41
- runs-on: ubuntu-latest
42
- needs: build
43
- steps:
44
- - name: Deploy to GitHub Pages
45
- id: deployment
46
- uses: actions/deploy-pages@v4
@@ -1,31 +0,0 @@
1
- name: ubuntu
2
-
3
- on: [push, pull_request]
4
-
5
- jobs:
6
- ruby-versions:
7
- uses: ruby/actions/.github/workflows/ruby_versions.yml@master
8
- with:
9
- engine: cruby
10
- min_version: 2.7
11
-
12
- build:
13
- needs: ruby-versions
14
- name: build (${{ matrix.ruby }} / ${{ matrix.os }})
15
- strategy:
16
- matrix:
17
- ruby: ${{ fromJson(needs.ruby-versions.outputs.versions) }}
18
- os: [ ubuntu-latest, macos-latest ]
19
- experimental: [false]
20
- runs-on: ${{ matrix.os }}
21
- continue-on-error: ${{ matrix.experimental }}
22
- steps:
23
- - uses: actions/checkout@v4
24
- - name: Set up Ruby
25
- uses: ruby/setup-ruby@v1
26
- with:
27
- ruby-version: ${{ matrix.ruby }}
28
- bundler-cache: true
29
- rubygems: 3.4.22
30
- - name: Run test
31
- run: bundle exec rake test
data/.gitignore DELETED
@@ -1,12 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /rfcs
8
- /spec/reports/
9
- /tmp/
10
- /Gemfile.lock
11
- /benchmarks/Gemfile*
12
- /benchmarks/parser.yml