Skip to content

Commit 6efd08e

Browse files
authored
Merge pull request #100 from omniauth/sync-gl
2 parents 7dddeaa + f281bdd commit 6efd08e

File tree

17 files changed

+588
-125
lines changed

17 files changed

+588
-125
lines changed

.envrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ export K_SOUP_COV_DO=true # Means you want code coverage
2121
export K_SOUP_COV_COMMAND_NAME="Test Coverage"
2222
# Available formats are html, xml, rcov, lcov, json, tty
2323
export K_SOUP_COV_FORMATTERS="html,xml,rcov,lcov,json,tty"
24-
export K_SOUP_COV_MIN_BRANCH=70 # Means you want to enforce X% branch coverage
25-
export K_SOUP_COV_MIN_LINE=93 # Means you want to enforce X% line coverage
24+
export K_SOUP_COV_MIN_BRANCH=78 # Means you want to enforce X% branch coverage
25+
export K_SOUP_COV_MIN_LINE=98 # Means you want to enforce X% line coverage
2626
export K_SOUP_COV_MIN_HARD=true # Means you want the build to fail if the coverage thresholds are not met
2727
export K_SOUP_COV_MULTI_FORMATTERS=true
2828
export K_SOUP_COV_OPEN_BIN= # Means don't try to open coverage results in browser

.github/workflows/coverage.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ permissions:
66
id-token: write
77

88
env:
9-
K_SOUP_COV_MIN_BRANCH: 70
10-
K_SOUP_COV_MIN_LINE: 93
9+
K_SOUP_COV_MIN_BRANCH: 78
10+
K_SOUP_COV_MIN_LINE: 98
1111
K_SOUP_COV_MIN_HARD: true
1212
K_SOUP_COV_FORMATTERS: "xml,rcov,lcov,tty"
1313
K_SOUP_COV_DO: true
@@ -115,7 +115,7 @@ jobs:
115115
hide_complexity: true
116116
indicators: true
117117
output: both
118-
thresholds: '93 70'
118+
thresholds: '98 78'
119119
continue-on-error: ${{ matrix.experimental != 'false' }}
120120

121121
- name: Add Coverage PR Comment

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
.project
2+
.tags
3+
14
# Build Artifacts
25
/pkg/
36
/tmp/

.gitlab-ci.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# - template: Security/SAST.gitlab-ci.yml
1414

1515
default:
16-
image: ruby
16+
image: "ruby:${RUBY_VERSION}"
1717

1818
variables:
1919
BUNDLE_INSTALL_FLAGS: "--quiet --jobs=$(nproc) --retry=3"
@@ -39,7 +39,6 @@ workflow:
3939
- if: '$CI_COMMIT_TAG'
4040

4141
.test_template-current: &test_definition-current
42-
image: ruby:${RUBY_VERSION}
4342
stage: test
4443
script:
4544
# || true so we don't fail here, because it'll probably work even if the gem update fails
@@ -67,7 +66,6 @@ workflow:
6766
- vendor/ruby
6867

6968
.test_template-legacy: &test_definition-legacy
70-
image: ruby:${RUBY_VERSION}
7169
stage: test
7270
script:
7371
# RUBYGEMS_VERSION because we support EOL Ruby still...

.rubocop_gradual.lock

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
2-
"lib/omniauth-ldap/adaptor.rb:2352927785": [
3-
[36, 7, 413, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 105664470],
4-
[86, 17, 3, "Style/AndOr: Use `&&` instead of `and`.", 193409806],
5-
[86, 30, 3, "Style/AndOr: Use `&&` instead of `and`.", 193409806],
6-
[86, 37, 1, "Lint/AssignmentInCondition: Wrap assignment in parentheses if intentional", 177560]
2+
"lib/omniauth-ldap/adaptor.rb:715274645": [
3+
[64, 7, 413, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 105664470],
4+
[114, 17, 3, "Style/AndOr: Use `&&` instead of `and`.", 193409806],
5+
[114, 30, 3, "Style/AndOr: Use `&&` instead of `and`.", 193409806],
6+
[114, 37, 1, "Lint/AssignmentInCondition: Wrap assignment in parentheses if intentional", 177560]
77
],
88
"spec/integration/middleware_spec.rb:4062046892": [
99
[3, 16, 39, "RSpec/DescribeClass: The first argument to describe should be the class or module being tested.", 638096201],
@@ -15,29 +15,30 @@
1515
[4, 3, 12, "RSpec/BeforeAfterAll: Beware of using `before(:all)` as it may cause state to leak between tests. If you are using `rspec-rails`, and `use_transactional_fixtures` is enabled, then records created in `before(:all)` are not automatically rolled back.", 86334566],
1616
[70, 16, 5, "RSpec/ExpectActual: Provide the actual value you are testing to `expect(...)`.", 237881235]
1717
],
18-
"spec/omniauth-ldap/adaptor_spec.rb:3624298807": [
19-
[72, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310],
20-
[73, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310],
21-
[74, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310],
22-
[80, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310],
23-
[81, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310],
24-
[82, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310]
18+
"spec/omniauth-ldap/adaptor_spec.rb:2715031579": [
19+
[3, 1, 38, "RSpec/SpecFilePathFormat: Spec path should end with `omni_auth/ldap/adaptor*_spec.rb`.", 1973618936],
20+
[206, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310],
21+
[207, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310],
22+
[208, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310],
23+
[214, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310],
24+
[215, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310],
25+
[216, 7, 26, "RSpec/StubbedMock: Prefer `allow` over `expect` when configuring a response.", 1924417310]
2526
],
26-
"spec/omniauth/adaptor_spec.rb:3492754784": [
27+
"spec/omniauth/adaptor_spec.rb:1168013709": [
2728
[3, 1, 38, "RSpec/SpecFilePathFormat: Spec path should end with `omni_auth/ldap/adaptor*_spec.rb`.", 1973618936],
28-
[42, 7, 38, "RSpec/AnyInstance: Avoid stubbing using `allow_any_instance_of`.", 3627954156],
29-
[43, 7, 38, "RSpec/AnyInstance: Avoid stubbing using `allow_any_instance_of`.", 3627954156],
30-
[80, 7, 48, "RSpec/AnyInstance: Avoid stubbing using `allow_any_instance_of`.", 2759780562]
29+
[46, 7, 38, "RSpec/AnyInstance: Avoid stubbing using `allow_any_instance_of`.", 3627954156],
30+
[47, 7, 38, "RSpec/AnyInstance: Avoid stubbing using `allow_any_instance_of`.", 3627954156],
31+
[84, 7, 48, "RSpec/AnyInstance: Avoid stubbing using `allow_any_instance_of`.", 2759780562]
3132
],
32-
"spec/omniauth/strategies/ldap_spec.rb:3760791626": [
33-
[13, 3, 54, "RSpec/LeakyConstantDeclaration: Stub class constant instead of declaring explicitly.", 2419068710],
34-
[76, 13, 9, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 1130140517],
35-
[101, 17, 28, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 3444838747],
36-
[110, 17, 23, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 1584148894],
37-
[121, 17, 32, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 1515076977],
38-
[129, 19, 19, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2526348694],
39-
[141, 17, 56, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2413495789],
40-
[156, 13, 9, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 3182939526],
41-
[189, 15, 19, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2526348694]
33+
"spec/omniauth/strategies/ldap_spec.rb:86189447": [
34+
[14, 3, 54, "RSpec/LeakyConstantDeclaration: Stub class constant instead of declaring explicitly.", 2419068710],
35+
[90, 13, 9, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 1130140517],
36+
[145, 17, 28, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 3444838747],
37+
[154, 17, 23, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 1584148894],
38+
[165, 17, 32, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 1515076977],
39+
[174, 19, 19, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2526348694],
40+
[187, 17, 56, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2413495789],
41+
[202, 13, 9, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 3182939526],
42+
[235, 15, 19, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2526348694]
4243
]
4344
}

CHANGELOG.md

Lines changed: 150 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
[![SemVer 2.0.0][📌semver-img]][📌semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog]
44

5-
All notable changes to this project will be documented in this file.
5+
Since version v2.3.1, all notable changes to this project will be documented in this file.
6+
7+
This changelog lists the releases of the original omniauth-ldap, and the GitLab forked versions, up until v2.3.0.
68

79
The format is based on [Keep a Changelog][📗keep-changelog],
810
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
@@ -20,12 +22,158 @@ Please file a bug if you notice a violation of semantic versioning.
2022

2123
### Added
2224

25+
- Added RBS types
26+
- Upgraded RSpec tests to v3 syntax
27+
- Improved code coverage to 98% lines and 78% branches
28+
- Added integration tests with a complete Roda-based demo app for specs
29+
- Well tested support for all versions of OmniAuth >= v1 and Rack >= v1 via appraisals
30+
2331
### Changed
2432

33+
- Make support for Ruby v2.0 explicit
34+
- Make support for OmniAuth v1+ explicit
35+
- Make support for Rack v1+ explicit
36+
- Modernize codebase to use more recent Ruby syntax (upgrade from Ruby v1 to v2 syntax) and conventions
37+
2538
### Deprecated
2639

2740
### Removed
2841

2942
### Fixed
3043

31-
### Security
44+
- Prevent key duplication in symbolize_hash_keys
45+
46+
### Security
47+
48+
## [2.3.0-gl] (gitlab fork) - 2025-08-20
49+
50+
- TAG: [v2.3.0][2.3.0t-gl] (gitlab)
51+
52+
## [2.2.0-gl] (gitlab fork) - 2022-06-24
53+
54+
- TAG: [v2.2.0][2.2.0t-gl] (gitlab)
55+
56+
## [2.1.1-gl] (gitlab fork) - 2019-02-22
57+
58+
- TAG: [v2.1.1][2.1.1t-gl] (gitlab)
59+
60+
### Added
61+
62+
- Add a String check to `tls_options` sanitization to allow other objects
63+
64+
## [2.1.0-gl] (gitlab fork) - 2018-06-18
65+
66+
- TAG: [v2.1.0][2.1.0t-gl] (gitlab)
67+
68+
### Added
69+
70+
- Expose `:tls_options` SSL configuration option.
71+
72+
### Deprecated
73+
74+
- Deprecate :ca_file, :ssl_version
75+
76+
## [2.0.4-gl] (gitlab fork) - 2017-08-10
77+
78+
- TAG: [v2.0.4][2.0.4t-gl] (gitlab)
79+
80+
- Improve log message when invalid credentials are used
81+
82+
## 2.0.3 (gitlab fork) - 2017-07-20
83+
84+
- Protects against wrong request method call to callback
85+
86+
## [2.0.2-gl] (gitlab fork) - 2017-06-13
87+
88+
- TAG: [v2.0.2][2.0.2t-gl] (gitlab)
89+
90+
## [2.0.1-gl] (gitlab fork) - 2017-06-09
91+
92+
- TAG: [v2.0.1][2.0.1t-gl] (gitlab)
93+
94+
## [2.0.0-gl] (gitlab fork) - 2017-06-07
95+
96+
- TAG: [v2.0.0][2.0.0t-gl] (gitlab)
97+
98+
## [2.0.0] (intridea) - 2018-01-09
99+
100+
- TAG: [v2.0.0][2.0.0t] (github)
101+
102+
## [1.2.1-gl] (gitlab fork) - 2015-03-17
103+
104+
- TAG: [v1.2.1][1.2.1t-gl] (gitlab)
105+
106+
## [1.2.0-gl] (gitlab fork) - 2014-10-29
107+
108+
- TAG: [v1.2.0][1.2.0t-gl] (gitlab)
109+
110+
## [1.1.0-gl] (gitlab fork) - 2014-09-08
111+
112+
- TAG: [v1.1.0][1.1.0t-gl] (gitlab)
113+
114+
## [1.0.5-gl] - 2016-02-17
115+
116+
- TAG: [v1.0.5][1.0.5t-gl] (gitlab fork, gem not released)
117+
- TAG: [v1.0.5][1.0.5t] (github)
118+
119+
## 1.0.4
120+
121+
- released 2014-02-03 (intridea)
122+
- released 2013-11-13 (gitlab fork)
123+
124+
## 1.0.3
125+
126+
- released 2013-01-23 (intridea)
127+
- released 2013-06-13 (gitlab fork)
128+
129+
## [1.0.2-gl]
130+
131+
- TAG: [v1.0.2][1.0.2t-gl] (gitlab) - released 2012-12-30
132+
- TAG: [v1.0.2][1.0.2t] (github) - released 2011-12-17
133+
134+
## 1.0.1 - 2011-11-02
135+
136+
## [1.0.0-gl] - 2011-11-02
137+
138+
- TAG: [v1.0.0][1.0.0t-gl] (gitlab)
139+
- TAG: [v1.0.0][1.0.0t] (github)
140+
141+
[2.3.0-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v2.2.0...v2.3.0
142+
[2.3.0t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/2.3.0
143+
[2.2.0-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v2.1.1...v2.2.0
144+
[2.2.0t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/2.2.0
145+
[2.1.1-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v2.1.0...v2.1.1
146+
[2.1.1t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/2.1.1
147+
[2.1.0-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v2.0.4...v2.1.0
148+
[2.1.0t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/2.1.0
149+
[2.0.4-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v2.0.2...v2.0.4
150+
[2.0.4t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/2.0.4
151+
[//]: # ( There is no tag for v2.0.3 on GitLab)
152+
[2.0.2-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v2.0.1...v2.0.2
153+
[2.0.2t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/2.0.2
154+
[2.0.1-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v2.0.0...v2.0.1
155+
[2.0.1t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/2.0.1
156+
[2.0.0-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v1.2.1...v2.0.0
157+
[2.0.0t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/2.0.0
158+
[2.0.0]: https://github.com/omniauth/omniauth-ldap/compare/v1.0.5...v2.0.0
159+
[2.0.0t]: https://github.com/omniauth/omniauth-ldap/releases/tag/v2.0.0
160+
[1.2.1-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v1.2.0...v1.2.1
161+
[1.2.1t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/1.2.1
162+
[1.2.0-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v1.1.0...v1.2.0
163+
[1.2.0t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/1.2.0
164+
[1.1.0-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v1.0.2...v1.1.0
165+
[1.1.0t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/1.1.0
166+
[1.0.5-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v1.0.2...v1.0.5
167+
[1.0.5t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/1.0.5
168+
[1.0.5]: https://github.com/omniauth/omniauth-ldap/compare/v1.0.2...v1.0.5
169+
[1.0.5t]: https://github.com/omniauth/omniauth-ldap/releases/tag/v1.0.5
170+
[//]: # ( There are no tags for v1.0.3, v1.0.4 on GitHub, or GitLab)
171+
[1.0.2-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/v1.0.1...v1.0.2
172+
[1.0.2t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/1.0.2
173+
[1.0.2]: https://github.com/omniauth/omniauth-ldap/compare/v1.0.1...v1.0.2
174+
[1.0.2t]: https://github.com/omniauth/omniauth-ldap/releases/tag/v1.0.2
175+
[//]: # ( There are no tags for v1.0.1 on GitHub, or GitLab)
176+
[1.0.0-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/compare/5656da80d4193e0d0584f44bac493a87695e580f...v1.0.0
177+
[1.0.0t-gl]: https://gitlab.com/gitlab-org/ruby/gems/omniauth-ldap/-/tags/1.0.0
178+
[1.0.0]: https://github.com/omniauth/omniauth-ldap/compare/5656da80d4193e0d0584f44bac493a87695e580f...v1.0.0
179+
[1.0.0t]: https://github.com/omniauth/omniauth-ldap/releases/tag/v1.0.0

Gemfile.lock

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ GIT
1313
PATH
1414
remote: .
1515
specs:
16-
omniauth-ldap (2.0.0)
17-
net-ldap (~> 0.16)
18-
omniauth (>= 1)
19-
pyu-ruby-sasl (~> 0.0.3.3)
20-
rack (>= 1)
21-
rubyntlm (~> 0.6.2)
16+
omniauth-ldap (2.3.0)
17+
net-ldap (~> 0.16, < 1)
18+
omniauth (>= 1, < 3)
19+
pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
20+
rack (>= 1, < 4)
21+
rubyntlm (~> 0.6.2, < 1)
2222
version_gem (~> 1.1, >= 1.1.9)
2323

2424
GEM
@@ -157,7 +157,6 @@ GEM
157157
net-ldap (0.20.0)
158158
base64
159159
ostruct
160-
nkf (0.2.0)
161160
nokogiri (1.18.10-x86_64-linux-gnu)
162161
racc (~> 1.4)
163162
notiffany (0.1.3)
@@ -393,7 +392,6 @@ DEPENDENCIES
393392
kramdown-parser-gfm (~> 1.1)
394393
logger (~> 1.7)
395394
mutex_m (~> 0.2)
396-
nkf
397395
omniauth-ldap!
398396
rack-test (~> 2.2)
399397
rake (~> 13.0)

README.md

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,16 @@ use OmniAuth::Strategies::LDAP,
5757
title: "My LDAP",
5858
host: "10.101.10.1",
5959
port: 389,
60-
method: :plain,
60+
encryption: :plain,
6161
base: "dc=intridea,dc=com",
6262
uid: "sAMAccountName",
6363
name_proc: proc { |name| name.gsub(/@.*$/, "") },
6464
bind_dn: "default_bind_dn",
65-
password: "password"
65+
password: "password",
66+
tls_options: {
67+
ssl_version: "TLSv1_2",
68+
ciphers: ["AES-128-CBC", "AES-128-CBC-HMAC-SHA1", "AES-128-CBC-HMAC-SHA256"],
69+
}
6670
# Or, alternatively:
6771
# use OmniAuth::Strategies::LDAP, filter: '(&(uid=%{username})(memberOf=cn=myapp-users,ou=groups,dc=example,dc=com))'
6872
```
@@ -93,20 +97,6 @@ Compatible with MRI Ruby 2.0+, and concordant releases of JRuby, and TruffleRuby
9397
|------------------------------------------------|--------------------------------------------------------|
9498
| 👟 Check it out! |[github.com/appraisal-rb/appraisal2][💎appraisal2]|
9599

96-
#### Ruby 3.4
97-
98-
nkf/kconv has been part of Ruby since long ago.
99-
Eventually it became a standard gem, but was changed to a bundled gem in Ruby 3.4.
100-
In general, kconv and iconv have been superseded since Ruby 1.9 by the built-in
101-
encoding support provided by String#encode, String#force_encoding, and similar methods.
102-
But this gem has not yet been updated to remove its dependency on nkf/kconv.
103-
104-
As a result of all this you should add `nkf` to your Gemfile if you are using Ruby 3.4 or later.
105-
106-
```ruby
107-
gem "nkf", "~> 0.1"
108-
```
109-
110100
### Enterprise Support [![Tidelift](https://tidelift.com/badges/package/rubygems/omniauth-ldap)](https://tidelift.com/subscription/pkg/rubygems-omniauth-ldap?utm_source=rubygems-omniauth-ldap&utm_medium=referral&utm_campaign=readme)
111101

112102
Available as part of the Tidelift Subscription.
@@ -642,8 +632,8 @@ Thanks for RTFM. ☺️
642632
[📌changelog]: CHANGELOG.md
643633
[📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
644634
[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
645-
[📌gitmoji]:https://gitmoji.dev
646-
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
635+
[📌gitmoji]: https://gitmoji.dev
636+
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
647637
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
648638
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.076-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
649639
[🔐security]: SECURITY.md

gemfiles/modular/optional.gemfile

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,3 @@
33
# Required for kettle-pre-release
44
# URL parsing with Unicode support (falls back to URI if not available)
55
gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2
6-
7-
# nkf/kconv has been part of Ruby since long ago.
8-
# Eventually it became a standard gem, but was changed to a bundled gem in Ruby 3.4.
9-
# In general, kconv and iconv have been superseded since Ruby 1.9 by the built-in
10-
# encoding support provided by String#encode, String#force_encoding, and similar methods.
11-
gem "nkf" # ruby >= 2.3

0 commit comments

Comments
 (0)