whois 4.0.6 → 6.0.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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +12 -0
  3. data/.github/dependabot.yml +17 -0
  4. data/.github/workflows/release.yml +19 -0
  5. data/.github/workflows/tests.yml +29 -0
  6. data/.gitignore +11 -0
  7. data/.rspec +1 -0
  8. data/.rubocop.yml +27 -0
  9. data/.rubocop_opinionated.yml +115 -0
  10. data/.rubocop_todo.yml +89 -0
  11. data/.simplecov +6 -0
  12. data/.tool-versions +1 -0
  13. data/CHANGELOG.md +147 -44
  14. data/CONTRIBUTING.md +18 -6
  15. data/Gemfile +8 -0
  16. data/LICENSE.txt +1 -1
  17. data/README.md +4 -4
  18. data/Rakefile +28 -0
  19. data/SECURITY.md +24 -0
  20. data/bin/console +1 -0
  21. data/bin/whoisrb +6 -5
  22. data/data/ipv4.json +1 -3
  23. data/data/tld.json +125 -1049
  24. data/lib/whois/client.rb +5 -7
  25. data/lib/whois/errors.rb +4 -6
  26. data/lib/whois/record/part.rb +5 -6
  27. data/lib/whois/record.rb +5 -8
  28. data/lib/whois/server/adapters/afilias.rb +4 -5
  29. data/lib/whois/server/adapters/arin.rb +7 -8
  30. data/lib/whois/server/adapters/arpa.rb +19 -24
  31. data/lib/whois/server/adapters/base.rb +29 -46
  32. data/lib/whois/server/adapters/formatted.rb +4 -6
  33. data/lib/whois/server/adapters/none.rb +4 -6
  34. data/lib/whois/server/adapters/not_implemented.rb +4 -6
  35. data/lib/whois/server/adapters/standard.rb +4 -6
  36. data/lib/whois/server/adapters/verisign.rb +4 -5
  37. data/lib/whois/server/adapters/web.rb +4 -6
  38. data/lib/whois/server/socket_handler.rb +11 -12
  39. data/lib/whois/server.rb +73 -64
  40. data/lib/whois/version.rb +4 -2
  41. data/lib/whois.rb +32 -33
  42. data/spec/fixtures/referrals/afilias.bz.txt +23 -0
  43. data/spec/fixtures/referrals/arin_referral_apnic.txt +78 -0
  44. data/spec/fixtures/referrals/arin_referral_missing.txt +52 -0
  45. data/spec/fixtures/referrals/arin_referral_ripe.txt +50 -0
  46. data/spec/fixtures/referrals/arin_referral_rwhois.txt +63 -0
  47. data/spec/fixtures/referrals/arin_referral_servernap.txt +63 -0
  48. data/spec/fixtures/referrals/arin_referral_whois.txt +56 -0
  49. data/spec/fixtures/referrals/crsnic.com.txt +60 -0
  50. data/spec/fixtures/referrals/crsnic.com_referral.txt +56 -0
  51. data/spec/fixtures/referrals/crsnic.com_referral_missing.txt +50 -0
  52. data/spec/integration/whois_spec.rb +73 -0
  53. data/spec/spec_helper.rb +19 -0
  54. data/spec/support/helpers/connectivity_helper.rb +15 -0
  55. data/spec/support/helpers/spec_helper.rb +31 -0
  56. data/spec/whois/client_spec.rb +143 -0
  57. data/spec/whois/record/part_spec.rb +38 -0
  58. data/spec/whois/record_spec.rb +168 -0
  59. data/spec/whois/server/adapters/afilias_spec.rb +49 -0
  60. data/spec/whois/server/adapters/arin_spec.rb +83 -0
  61. data/spec/whois/server/adapters/arpa_spec.rb +29 -0
  62. data/spec/whois/server/adapters/base_spec.rb +155 -0
  63. data/spec/whois/server/adapters/formatted_spec.rb +53 -0
  64. data/spec/whois/server/adapters/none_spec.rb +23 -0
  65. data/spec/whois/server/adapters/not_implemented_spec.rb +24 -0
  66. data/spec/whois/server/adapters/standard_spec.rb +42 -0
  67. data/spec/whois/server/adapters/verisign_spec.rb +60 -0
  68. data/spec/whois/server/adapters/web_spec.rb +24 -0
  69. data/spec/whois/server/socket_handler_spec.rb +33 -0
  70. data/spec/whois/server_spec.rb +302 -0
  71. data/spec/whois/web_interface_error_spec.rb +23 -0
  72. data/spec/whois/whois_spec.rb +15 -0
  73. data/utils/compare-whois.rb +30 -0
  74. data/utils/deftld.rb +230 -0
  75. data/utils/defutils.rb +26 -0
  76. data/utils/fixupd.rb +60 -0
  77. data/utils/matrix.rb +68 -0
  78. data/utils/mkwhois.rb +31 -0
  79. data/whois.gemspec +19 -32
  80. metadata +58 -11
  81. data/4.0-Upgrade.md +0 -143
  82. data/bin/setup +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69346b60ba0d804c4084a84e4e9da3d47320d8c3255c0616041edad685eaf2ce
4
- data.tar.gz: cc9b75324370b25c38371bcf5fa6c12c8124301cb40d1c7caccd6ea1e891eb5f
3
+ metadata.gz: 323b84ddf445360ef0ca8b34255c4c0e757e093686977527e48daa8a075bde0f
4
+ data.tar.gz: 8623b98ca2197553455cbe492985998e57da97c33365764ddca3db4d88654048
5
5
  SHA512:
6
- metadata.gz: dead3c2b10a7ef26f8cf4a9aa2a4243f53b491d0e70b17210c449419bd4c3f3f15d03939b3a1c22b35eec8e76b33451b5c560071370edeae23bf96832e82e42b
7
- data.tar.gz: dfec9fb6424f36f2cd39a3ecdb1e866b09c2962ced0d458bf57f008ea1dacde73599a680c45bec805d3d57c52394f4553dd54d840ab6ecccf1734d28320195a8
6
+ metadata.gz: '02905cd1c4afad69252755c353d40b593e58dd4f30faf7bbdaedb6327eae492581c4de907a68ba2dd26fb6f2a0b2c1e1b9d988ba0dd2b7bc14a7667364f80154'
7
+ data.tar.gz: dea62077b39e017f2924e213f9125159d1d54dc95bbe93862f56cad2263a511249d280ec87ea329fad9690653ab103a6a0658a111630d32d22403fda028f0046
@@ -0,0 +1,12 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: [weppos]
4
+ patreon: # Replace with a single Patreon username
5
+ open_collective: # Replace with a single Open Collective username
6
+ ko_fi: # Replace with a single Ko-fi username
7
+ tidelift: "rubygems/whois"
8
+ community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9
+ liberapay: # Replace with a single Liberapay username
10
+ issuehunt: # Replace with a single IssueHunt username
11
+ otechie: # Replace with a single Otechie username
12
+ custom: https://whoisrb.org/contribute/#donate
@@ -0,0 +1,17 @@
1
+ ---
2
+ version: 2
3
+ updates:
4
+ - package-ecosystem: bundler
5
+ directory: /
6
+ schedule:
7
+ interval: weekly
8
+ open-pull-requests-limit: 10
9
+ labels:
10
+ - dependencies
11
+
12
+ - package-ecosystem: github-actions
13
+ directory: /
14
+ schedule:
15
+ interval: weekly
16
+ labels:
17
+ - dependencies
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: Release
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ push:
7
+ tags:
8
+ - v*.*.*
9
+
10
+ jobs:
11
+ release:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v5
15
+ - name: Release Gem
16
+ uses: cadwallion/publish-rubygems-action@94a6f4cd5350581749c569b5001eecc864e3ad0b
17
+ env:
18
+ RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
19
+ RELEASE_COMMAND: rake release
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: Tests
3
+
4
+ on:
5
+ push:
6
+ pull_request:
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ test:
11
+ strategy:
12
+ matrix:
13
+ ruby-version:
14
+ - "3.0"
15
+ - "3.1"
16
+ - "3.2"
17
+ - "3.3"
18
+ - "3.4"
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - uses: actions/checkout@v5
22
+ - name: Set up Ruby
23
+ uses: ruby/setup-ruby@v1
24
+ with:
25
+ ruby-version: ${{ matrix.ruby-version }}
26
+ - name: Install dependencies
27
+ run: bundle install
28
+ - name: Run tests
29
+ run: bundle exec rake
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ # Bundler
2
+ /.bundle/
3
+ /Gemfile.lock
4
+ /pkg/
5
+
6
+ # YARD
7
+ /.yardoc
8
+ /_yardoc/
9
+ /doc/
10
+
11
+ utils/whois-utf8.rb
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
data/.rubocop.yml ADDED
@@ -0,0 +1,27 @@
1
+ inherit_from:
2
+ - .rubocop_opinionated.yml
3
+ - .rubocop_todo.yml
4
+
5
+ plugins:
6
+ - rubocop-rspec
7
+
8
+ AllCops:
9
+ TargetRubyVersion: 3.0
10
+ Exclude:
11
+ # Exclude .gemspec files because they are generally auto-generated
12
+ - '*.gemspec'
13
+ # Exclude vendored folders
14
+ - 'tmp/**/*'
15
+ - 'vendor/**/*'
16
+ # Exclude artifacts
17
+ - 'pkg/**/*'
18
+ # Other
19
+ - '.simplecov'
20
+ - 'test/benchmarks/**/*'
21
+ - 'test/profilers/**/*'
22
+ - 'utils/**/*'
23
+
24
+ Style/ClassAndModuleChildren:
25
+ Exclude:
26
+ - 'spec/**/*_spec.rb'
27
+ - 'test/**/*_test.rb'
@@ -0,0 +1,115 @@
1
+ AllCops:
2
+ Exclude:
3
+ # Exclude .gemspec files because they are generally auto-generated
4
+ - '*.gemspec'
5
+ # Exclude vendored folders
6
+ - 'tmp/**/*'
7
+ - 'vendor/**/*'
8
+ NewCops: enable
9
+
10
+ # [codesmell]
11
+ Layout/LineLength:
12
+ Enabled: false
13
+ Exclude:
14
+ - 'spec/**/*_spec.rb'
15
+ - 'test/**/*_test.rb'
16
+ Max: 100
17
+
18
+ # [codesmell]
19
+ Metrics/AbcSize:
20
+ Enabled: false
21
+ Exclude:
22
+ - 'spec/**/*_spec.rb'
23
+ - 'test/**/*_test.rb'
24
+
25
+ # [codesmell]
26
+ Metrics/BlockLength:
27
+ Enabled: false
28
+
29
+ # [codesmell]
30
+ Metrics/CyclomaticComplexity:
31
+ Enabled: false
32
+ Exclude:
33
+ - 'spec/**/*_spec.rb'
34
+ - 'test/**/*_test.rb'
35
+
36
+ # [codesmell]
37
+ Metrics/ClassLength:
38
+ Enabled: false
39
+ Exclude:
40
+ - 'spec/**/*_spec.rb'
41
+ - 'test/**/*_test.rb'
42
+
43
+ # [codesmell]
44
+ Metrics/MethodLength:
45
+ Enabled: false
46
+ Exclude:
47
+ - 'spec/**/*_spec.rb'
48
+ - 'test/**/*_test.rb'
49
+ Max: 10
50
+
51
+ # [codesmell]
52
+ Metrics/ModuleLength:
53
+ Enabled: false
54
+ Exclude:
55
+ - 'spec/**/*_spec.rb'
56
+ - 'test/**/*_test.rb'
57
+
58
+ # [codesmell]
59
+ Metrics/ParameterLists:
60
+ Enabled: false
61
+ Max: 5
62
+
63
+ # [codesmell]
64
+ Metrics/PerceivedComplexity:
65
+ Enabled: false
66
+
67
+ # Do not use "and" or "or" in conditionals, but for readability we can use it
68
+ # to chain executions. Just beware of operator order.
69
+ Style/AndOr:
70
+ EnforcedStyle: conditionals
71
+
72
+ Style/Documentation:
73
+ Exclude:
74
+ - 'spec/**/*'
75
+ - 'test/**/*'
76
+
77
+ # Double empty lines are useful to separate conceptually different methods
78
+ # in the same class or module.
79
+ Layout/EmptyLines:
80
+ Enabled: false
81
+
82
+ # This is quite buggy, as it doesn't recognize double lines.
83
+ # Double empty lines are useful to separate conceptually different methods
84
+ # in the same class or module.
85
+ Layout/EmptyLineBetweenDefs:
86
+ NumberOfEmptyLines: [1, 2]
87
+
88
+ # Annotated tokens (like %<foo>s) are a good thing, but in most cases we don't need them.
89
+ # %s is a simpler and straightforward version that works in almost all cases. So don't complain.
90
+ Style/FormatStringToken:
91
+ Enabled: false
92
+
93
+ # unless is not always cool.
94
+ Style/NegatedIf:
95
+ Enabled: false
96
+
97
+ # There are cases were the inline rescue is ok. We can either downgrade the severity,
98
+ # or rely on the developer judgement on a case-by-case basis.
99
+ Style/RescueModifier:
100
+ Enabled: false
101
+
102
+ Style/SymbolArray:
103
+ EnforcedStyle: brackets
104
+
105
+ # Hate It or Love It, I prefer double quotes as this is more consistent
106
+ # with several other programming languages and the output of puts and inspect.
107
+ Style/StringLiterals:
108
+ EnforcedStyle: double_quotes
109
+
110
+ # It's nice to be consistent. The trailing comma also allows easy reordering,
111
+ # and doesn't cause a diff in Git when you add a line to the bottom.
112
+ Style/TrailingCommaInArrayLiteral:
113
+ EnforcedStyleForMultiline: consistent_comma
114
+ Style/TrailingCommaInHashLiteral:
115
+ EnforcedStyleForMultiline: consistent_comma
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,89 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2025-08-19 11:02:59 UTC using RuboCop version 1.79.2.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 35
10
+ # Configuration parameters: CountAsOne.
11
+ RSpec/ExampleLength:
12
+ Max: 17
13
+
14
+ # Offense count: 4
15
+ # Configuration parameters: AssignmentOnly.
16
+ RSpec/InstanceVariable:
17
+ Exclude:
18
+ - 'spec/whois/server/adapters/not_implemented_spec.rb'
19
+ - 'spec/whois/server/adapters/web_spec.rb'
20
+
21
+ # Offense count: 54
22
+ # Configuration parameters: .
23
+ # SupportedStyles: have_received, receive
24
+ RSpec/MessageSpies:
25
+ EnforcedStyle: receive
26
+
27
+ # Offense count: 71
28
+ RSpec/MultipleExpectations:
29
+ Max: 5
30
+
31
+ # Offense count: 8
32
+ # Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
33
+ # SupportedStyles: always, named_only
34
+ RSpec/NamedSubject:
35
+ Exclude:
36
+ - 'spec/whois/record_spec.rb'
37
+
38
+ # Offense count: 40
39
+ RSpec/StubbedMock:
40
+ Exclude:
41
+ - 'spec/integration/whois_spec.rb'
42
+ - 'spec/whois/client_spec.rb'
43
+ - 'spec/whois/server/adapters/afilias_spec.rb'
44
+ - 'spec/whois/server/adapters/arin_spec.rb'
45
+ - 'spec/whois/server/adapters/arpa_spec.rb'
46
+ - 'spec/whois/server/adapters/formatted_spec.rb'
47
+ - 'spec/whois/server/adapters/standard_spec.rb'
48
+ - 'spec/whois/server/adapters/verisign_spec.rb'
49
+ - 'spec/whois/server/socket_handler_spec.rb'
50
+ - 'spec/whois/server_spec.rb'
51
+ - 'spec/whois/whois_spec.rb'
52
+
53
+ # Offense count: 1
54
+ RSpec/SubjectStub:
55
+ Exclude:
56
+ - 'spec/whois/server/socket_handler_spec.rb'
57
+
58
+ # Offense count: 30
59
+ # This cop supports safe autocorrection (--autocorrect).
60
+ # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
61
+ # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
62
+ # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
63
+ # FunctionalMethods: let, let!, subject, watch
64
+ # AllowedMethods: lambda, proc, it
65
+ Style/BlockDelimiters:
66
+ Exclude:
67
+ - 'spec/whois/client_spec.rb'
68
+ - 'spec/whois/record/part_spec.rb'
69
+ - 'spec/whois/record_spec.rb'
70
+ - 'spec/whois/server/adapters/base_spec.rb'
71
+ - 'spec/whois/server/adapters/formatted_spec.rb'
72
+ - 'spec/whois/server/adapters/none_spec.rb'
73
+ - 'spec/whois/server/adapters/not_implemented_spec.rb'
74
+ - 'spec/whois/server/adapters/web_spec.rb'
75
+ - 'spec/whois/server/socket_handler_spec.rb'
76
+ - 'spec/whois/server_spec.rb'
77
+
78
+ # Offense count: 6
79
+ # Configuration parameters: AllowedConstants.
80
+ Style/Documentation:
81
+ Exclude:
82
+ - 'spec/**/*'
83
+ - 'test/**/*'
84
+ - 'lib/whois.rb'
85
+ - 'lib/whois/client.rb'
86
+ - 'lib/whois/record.rb'
87
+ - 'lib/whois/server/adapters/arpa.rb'
88
+ - 'lib/whois/server/adapters/base.rb'
89
+ - 'lib/whois/server/adapters/not_implemented.rb'
data/.simplecov ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ SimpleCov.start do
4
+ add_filter "/spec/"
5
+ add_filter "/utils/"
6
+ end
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.4.2