oauth 0.6.1 → 1.0.1

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: 414ee66cdf6d7d20e2caddba76264dc3a5d5d058157abe8cd77907cfe42e2fbe
4
- data.tar.gz: de2152db1bf49cb9397bb95eaf10ebbe67f755f3de478cb36e4350beda3b2b5f
3
+ metadata.gz: 6209290a96231a2cca740d8fbfec7831e97f7b2b848997ebae0ea1a130a48a3d
4
+ data.tar.gz: 34689bed290728cb8e628bce2fd781fbec783b2dca832267093a228ef247e8ee
5
5
  SHA512:
6
- metadata.gz: 2ab63e0e09c842637f45bf7053eae8c834238b36cee7ae8771a70766c51cea0a1b1277c025a46caa9fb5499fd93ff342749dc42e70bb5a3351a169b894602f0d
7
- data.tar.gz: aca6573f60c0926534fa3f6b1e40695c3ddb96ee9153cc9a3bc3bf6948d831918c1f358afde4273eca4a9608b2e20cc75e8b86a2e9cc53ab257d1084a6130e0a
6
+ metadata.gz: a1725bcd2a976993bba7a2b61da4b24dd2b5086dfd01da52724f21dac2e87f7fff9ca595c479716aeec8a490c3ad16bc4a308a93edfb6c9cc957afbd4f0805cd
7
+ data.tar.gz: 516b1f0823a5f8a294e5b27fa0eda305af35c77bfaf448dd17144f1d67f9d6f6ea2807b77827c62e3a583ad92f7b8a586e3812e518b06687ac05cc5e6649dc17
data/CHANGELOG.md CHANGED
@@ -13,6 +13,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
13
13
 
14
14
  ### Removed
15
15
 
16
+ ## [1.0.1] 2022-08-29
17
+ ### Changed
18
+ * `OAuth::Comsumer#options` hash is now handled by `snaky_hash`, which was extracted from `oauth2`
19
+ * symbolized keys, dot-access and snake-case are now normalized
20
+
21
+ ## [1.0.0] 2022-08-23
22
+ ### Changed
23
+ * Dropped support for Ruby < 2.7
24
+ * Dropped support for Rails < 6
25
+
26
+ ### Added
27
+ * New EOL Policy
28
+ * Non-commercial support for the oldest version of Ruby (which itself is going EOL) will be dropped each year in April
29
+
30
+ ## [0.6.2] 2022-08-29
31
+ ### Changed
32
+ * `OAuth::Comsumer#options` hash is now handled by `snaky_hash`, which was extracted from `oauth2`
33
+ * symbolized keys, dot-access and snake-case are now normalized
34
+
16
35
  ## [0.6.1] 2022-08-23
17
36
  ### Changed
18
37
  * Fixed documentation in SECURITY.md
@@ -35,6 +54,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
35
54
  ### Removed
36
55
  * Ruby 2.0, 2.1, 2.2, and 2.3 are no longer valid install targets
37
56
 
57
+ ## [0.5.14] 2022-08-29
58
+ The "hopeful last 0.5.x" Release
59
+
60
+ ### Fixed
61
+ * More typos fixed
62
+
38
63
  ## [0.5.13] 2022-08-23
39
64
  The "I think I caught 'em all!" Release
40
65
 
@@ -431,9 +456,13 @@ but please have a look at the unit tests.
431
456
  * Moved all non-Rails functionality from the Rails plugin:
432
457
  http://code.google.com/p/oauth-plugin/
433
458
 
434
- [Unreleased]: https://github.com/oauth-xx/oauth-ruby/compare/v0.6.1...v0.6-maintenance
459
+ [Unreleased]: https://github.com/oauth-xx/oauth-ruby/compare/v1.0.1...main
460
+ [1.0.1]: https://github.com/oauth-xx/oauth-ruby/releases/tag/v1.0.1
461
+ [1.0.0]: https://github.com/oauth-xx/oauth-ruby/releases/tag/v1.0.0
462
+ [0.6.2]: https://github.com/oauth-xx/oauth-ruby/releases/tag/v0.6.2
435
463
  [0.6.1]: https://github.com/oauth-xx/oauth-ruby/releases/tag/v0.6.1
436
464
  [0.6.0]: https://github.com/oauth-xx/oauth-ruby/releases/tag/v0.6.0
465
+ [0.5.14]: https://github.com/oauth-xx/oauth-ruby/releases/tag/v0.5.14
437
466
  [0.5.13]: https://github.com/oauth-xx/oauth-ruby/releases/tag/v0.5.13
438
467
  [0.5.12]: https://github.com/oauth-xx/oauth-ruby/releases/tag/v0.5.12
439
468
  [0.5.11]: https://github.com/oauth-xx/oauth-ruby/releases/tag/v0.5.11
data/CONTRIBUTING.md CHANGED
@@ -17,7 +17,7 @@ Made with [contributors-img][contrib-rocks].
17
17
  [comment]: <> (Following links are used by README, CONTRIBUTING, Homepage)
18
18
 
19
19
  [conduct]: https://github.com/oauth-xx/oauth-ruby/blob/main/CODE_OF_CONDUCT.md
20
- [contributing]: https://github.com/oauth-xx/oauth-ruby/blob/main/CONTRIBUTING.md
21
20
  [contributors]: https://github.com/oauth-xx/oauth-ruby/graphs/contributors
22
21
  [mailinglist]: http://groups.google.com/group/oauth-ruby
23
22
  [source]: https://github.com/oauth-xx/oauth-ruby/
23
+ [contrib-rocks]: https://contrib.rocks
data/LICENSE CHANGED
@@ -1,6 +1,7 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2007-2012, 2016-2017, 2020-2021 Blaine Cook, Larry Halff, Pelle Braendgaard, Peter Boling
3
+ Copyright (c) 2007-2012, 2016-2017 Blaine Cook, Larry Halff, Pelle Braendgaard
4
+ Copyright (c) 2020-2022 Peter Boling
4
5
 
5
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -20,11 +20,17 @@ See the sibling `oauth2` gem for OAuth 2.0 implementations in Ruby.
20
20
  [oauth1-spec]: http://oauth.net/core/1.0/
21
21
  [sibling-gem]: https://github.com/oauth-xx/oauth-ruby
22
22
 
23
- **NOTE**
23
+ **New EOL Policy**
24
24
 
25
- This README, on branch `v0.6-maintenance`, targets 0.6.x series releases.
26
- The v0.6.x series of releases will be EOL no later than April, 2024.
27
- For later releases please see the `main` branch README.
25
+ Versions 1.0.x will be EOL no later than April, 2025.
26
+ Versions 0.6.x will be EOL no later than April, 2024.
27
+ Versions 0.5.x will be EOL no later than April, 2023.
28
+
29
+ This will facilitate dropping support for old, dead, and crusty versions of Ruby.
30
+
31
+ Non-commercial support for the oldest version of Ruby (which itself is going EOL) will be dropped each year in April.
32
+
33
+ Please upgrade to version 1.0. The only breaking change in 1.0 is dropping old Rubies.
28
34
 
29
35
  ## Status
30
36
 
@@ -57,10 +63,10 @@ appended indicators:
57
63
 
58
64
  | | Project | bundle add oauth |
59
65
  |:----|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
60
- | 1️⃣ | name, license, docs | [![RubyGems.org][⛳️name-img]][⛳️gem] [![License: MIT][🖇src-license-img]][🖇src-license] [![FOSSA][🏘fossa-img]][🏘fossa] [![RubyDoc.info][🚎yard-img]][🚎yard] [![InchCI][🖐inch-ci-img]][🚎yard] |
66
+ | 1️⃣ | name, license, docs | [![RubyGems.org][⛳️name-img]][⛳️gem] [![License: MIT][🖇src-license-img]][🖇src-license] [![RubyDoc.info][🚎yard-img]][🚎yard] |
61
67
  | 2️⃣ | version & activity | [![Gem Version][⛳️version-img]][⛳️gem] [![Total Downloads][🖇DL-total-img]][⛳️gem] [![Download Rank][🏘DL-rank-img]][⛳️gem] [![Source Code][🚎src-home-img]][🚎src-home] [![Open PRs][🖐prs-o-img]][🖐prs-o] [![Closed PRs][🧮prs-c-img]][🧮prs-c] <!--[![Next Version][📗next-img]][📗next]--> |
62
68
  | 3️⃣ | maintenance & linting | [![Maintainability][⛳cclim-maint-img♻️]][⛳cclim-maint] [![Helpers][🖇triage-help-img]][🖇triage-help] [![Depfu][🏘depfu-img♻️]][🏘depfu♻️] [![Contributors][🚎contributors-img]][🚎contributors] [![Style][🖐style-wf-img]][🖐style-wf] [![Kloc Roll][🧮kloc-img]][🧮kloc] |
63
- | 4️⃣ | testing | [![Open Issues][⛳iss-o-img]][⛳iss-o] [![Closed Issues][🖇iss-c-img]][🖇iss-c] [![Supported][🏘sup-wf-img]][🏘sup-wf] [![Heads][🚎heads-wf-img]][🚎heads-wf] [![Unofficial Support][🖐uns-wf-img]][🖐uns-wf] [![MacOS][🧮mac-wf-img]][🧮mac-wf] [![Windows][📗win-wf-img]][📗win-wf] |
69
+ | 4️⃣ | testing | [![Open Issues][⛳iss-o-img]][⛳iss-o] [![Closed Issues][🖇iss-c-img]][🖇iss-c] [![Supported][🏘sup-wf-img]][🏘sup-wf] [![Heads][🚎heads-wf-img]][🚎heads-wf] [![MacOS][🧮mac-wf-img]][🧮mac-wf] [![Windows][📗win-wf-img]][📗win-wf] |
64
70
  | 5️⃣ | coverage & security | [![CodeClimate][⛳cclim-cov-img♻️]][⛳cclim-cov] [![CodeCov][🖇codecov-img♻️]][🖇codecov] [![Coveralls][🏘coveralls-img]][🏘coveralls] [![Security Policy][🚎sec-pol-img]][🚎sec-pol] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Code Coverage][🧮cov-wf-img]][🧮cov-wf] |
65
71
  | 6️⃣ | resources | [![Discussion][⛳gh-discussions-img]][⛳gh-discussions] [![Get help on Codementor][🖇codementor-img]][🖇codementor] [![Chat][🏘chat-img]][🏘chat] [![Blog][🚎blog-img]][🚎blog] [![Blog][🖐wiki-img]][🖐wiki] |
66
72
  | 7️⃣ | spread 💖 | [![Liberapay Patrons][⛳liberapay-img]][⛳liberapay] [![Sponsor Me][🖇sponsor-img]][🖇sponsor] [![Tweet @ Peter][🏘tweet-img]][🏘tweet] [🌏][aboutme] [👼][angelme] [💻][coderme] |
@@ -74,11 +80,8 @@ The link tokens in the following sections should be kept ordered by the row and
74
80
  [⛳️name-img]: https://img.shields.io/badge/name-oauth-brightgreen.svg?style=flat
75
81
  [🖇src-license]: https://opensource.org/licenses/MIT
76
82
  [🖇src-license-img]: https://img.shields.io/badge/License-MIT-green.svg
77
- [🏘fossa]: https://app.fossa.io/projects/git%2Bgithub.com%2Foauth-xx%2Foauth-ruby?ref=badge_shield
78
- [🏘fossa-img]: https://app.fossa.io/api/projects/git%2Bgithub.com%2Foauth-xx%2Foauth-ruby.svg?type=shield
79
83
  [🚎yard]: https://www.rubydoc.info/github/oauth-xx/oauth-ruby
80
84
  [🚎yard-img]: https://img.shields.io/badge/documentation-rubydoc-brightgreen.svg?style=flat
81
- [🖐inch-ci-img]: http://inch-ci.org/github/oauth-xx/oauth-ruby.png
82
85
 
83
86
  <!-- 2️⃣ version & activity -->
84
87
  [⛳️version-img]: http://img.shields.io/gem/v/oauth.svg
@@ -116,8 +119,6 @@ The link tokens in the following sections should be kept ordered by the row and
116
119
  [🏘sup-wf-img]: https://github.com/oauth-xx/oauth-ruby/actions/workflows/supported.yml/badge.svg
117
120
  [🚎heads-wf]: https://github.com/oauth-xx/oauth-ruby/actions/workflows/heads.yml
118
121
  [🚎heads-wf-img]: https://github.com/oauth-xx/oauth-ruby/actions/workflows/heads.yml/badge.svg
119
- [🖐uns-wf]: https://github.com/oauth-xx/oauth-ruby/actions/workflows/unsupported.yml
120
- [🖐uns-wf-img]: https://github.com/oauth-xx/oauth-ruby/actions/workflows/unsupported.yml/badge.svg
121
122
  [🧮mac-wf]: https://github.com/oauth-xx/oauth-ruby/actions/workflows/macos.yml
122
123
  [🧮mac-wf-img]: https://github.com/oauth-xx/oauth-ruby/actions/workflows/macos.yml/badge.svg
123
124
  [📗win-wf]: https://github.com/oauth-xx/oauth-ruby/actions/workflows/windows.yml
@@ -187,12 +188,12 @@ For more see [SECURITY.md][🚎sec-pol].
187
188
  ## Compatibility
188
189
 
189
190
  Targeted ruby compatibility is non-EOL versions of Ruby, currently 2.7, 3.0, and
190
- 3.1. Ruby is limited to 2.4+ in the gemspec, and this will change with minor version bumps,
191
+ 3.1. Ruby is limited to 2.7+ in the gemspec, and this will change with minor version bumps,
191
192
  while the gem is still in 0.x, in accordance with the SemVer spec.
192
193
 
193
- The `main` branch now targets 1.0.x releases.
194
- See `v0.6-maintenance` branch for Ruby >= 2.4.
195
- See `v0.5-maintenance` branch for Ruby >= 2.0.
194
+ The `main` branch now targets 1.0.x releases, for Ruby >= 2.7.
195
+ See `v0.6-maintenance` (EOL April, 2024) branch for Ruby >= 2.4.
196
+ See `v0.5-maintenance` (EOL April, 2023) branch for Ruby >= 2.0.
196
197
 
197
198
  NOTE: No further releases of version < 1.0.x are anticipated.
198
199
 
@@ -224,12 +225,12 @@ fashion. If critical issues for a particular implementation exist at the time
224
225
  of a major release, support for that Ruby version may be dropped.
225
226
  </details>
226
227
 
227
- | | Ruby OAuth Version | Maintenance Branch | 🚂 Compatibility | Official 💎 | Unofficial 💎 | Incidental 💎 |
228
- |:----|--------------------|--------------------|------------------------|----------------------|------------------------------|---------------|
229
- | 1️⃣ | 1.0.x | `main` | Rails 6, 7 | 2.7, 3.0, 3.1 | sorry, not sorry | nope |
230
- | 2️⃣ | 0.6.x | `v0.6-maintenance` | Rails 5, 6, 7 | 2.7, 3.0, 3.1 | 2.5, 2.6 | 2.4 |
231
- | 3️⃣ | 0.5.x | `v0.5-maintenance` | Rails 2, 3, 4, 5, 6, 7 | 2.7, 3.0, 3.1 | 2.1, 2.2, 2.3, 2.4, 2.5, 2.6 | 2.0 |
232
- | 4️⃣ | older | N/A | | Best of luck to you! | Please upgrade! | noop |
228
+ | | Ruby OAuth Version | Maintenance Branch | EOL | 🚂 Compatibility | Official 💎 | Unofficial 💎 | Incidental 💎 |
229
+ |:----|--------------------|--------------------|-----------|------------------------|----------------------|------------------------------|---------------|
230
+ | 1️⃣ | 1.0.x | `main` | | Rails 6, 7 | 2.7, 3.0, 3.1 | sorry, not sorry | nope |
231
+ | 2️⃣ | 0.6.x | `v0.6-maintenance` | 04/2024 | Rails 5, 6, 7 | 2.7, 3.0, 3.1 | 2.5, 2.6 | 2.4 |
232
+ | 3️⃣ | 0.5.x | `v0.5-maintenance` | 04/2023 | Rails 2, 3, 4, 5, 6, 7 | 2.7, 3.0, 3.1 | 2.1, 2.2, 2.3, 2.4, 2.5, 2.6 | 2.0 |
233
+ | 4️⃣ | older | N/A | yesterday | | Best of luck to you! | Please upgrade! | noop |
233
234
 
234
235
  NOTE: Once 1.0 is released, the 0.x series will only receive critical bug and security updates.
235
236
  See [SECURITY.md][🚎sec-pol]
@@ -319,6 +320,8 @@ See [CONTRIBUTING.md][contributing]
319
320
 
320
321
  Made with [contributors-img][contrib-rocks].
321
322
 
323
+ [contrib-rocks]: https://contrib.rocks
324
+
322
325
  ## Versioning
323
326
 
324
327
  This library aims to adhere to [Semantic Versioning 2.0.0][semver]. Violations of this scheme should be reported as
@@ -332,7 +335,7 @@ the [Pessimistic Version Constraint][pvc] with two digits of precision.
332
335
  For example:
333
336
 
334
337
  ```ruby
335
- spec.add_dependency "oauth", "~> 0.6.0"
338
+ spec.add_dependency "oauth", "~> 1.0"
336
339
  ```
337
340
 
338
341
  ## License
data/SECURITY.md CHANGED
@@ -2,11 +2,16 @@
2
2
 
3
3
  ## Supported Versions
4
4
 
5
- | Version | Supported |
6
- |---------|--------------------|
7
- | 0.6.x | :white_check_mark: |
8
- | 0.5.x | :white_check_mark: |
9
- | <= 0.5 | :x: |
5
+ | Version | Supported | EOL |
6
+ |---------|--------------------|---------|
7
+ | 1.0.x | :white_check_mark: | 04/2025 |
8
+ | 0.6.x | :white_check_mark: | 04/2024 |
9
+ | 0.5.x | :white_check_mark: | 04/2023 |
10
+ | <= 0.5 | :x: | :x: |
11
+
12
+ ### EOL Policy
13
+
14
+ Non-commercial support for the oldest version of Ruby (which itself is going EOL) will be dropped each year in April.
10
15
 
11
16
  ## Reporting a Vulnerability
12
17
 
@@ -45,9 +45,7 @@ module OAuth
45
45
  def puts_verbose_request(request)
46
46
  puts "Method: #{request.method}"
47
47
  puts "URI: #{request.uri}"
48
- unless options[:xmpp]
49
- puts "Normalized params: #{request.normalized_parameters}"
50
- end
48
+ puts "Normalized params: #{request.normalized_parameters}" unless options[:xmpp]
51
49
  puts "Signature base string: #{request.signature_base_string}"
52
50
 
53
51
  if xmpp?
@@ -84,9 +84,7 @@ module EventMachine
84
84
  else
85
85
  query.to_s
86
86
  end
87
- unless uri_query.to_s.empty?
88
- combined_query = [combined_query, uri_query].reject(&:empty?).join("&")
89
- end
87
+ combined_query = [combined_query, uri_query].reject(&:empty?).join("&") unless uri_query.to_s.empty?
90
88
  combined_query.to_s.empty? ? path : "#{path}?#{combined_query}"
91
89
  end
92
90
 
@@ -30,47 +30,49 @@ module OAuth
30
30
  end
31
31
  CA_FILE = nil unless defined?(CA_FILE)
32
32
 
33
- @@default_options = {
34
- # Signature method used by server. Defaults to HMAC-SHA1
35
- signature_method: "HMAC-SHA1",
36
-
37
- # default paths on site. These are the same as the defaults set up by the generators
38
- request_token_path: "/oauth/request_token",
39
- authenticate_path: "/oauth/authenticate",
40
- authorize_path: "/oauth/authorize",
41
- access_token_path: "/oauth/access_token",
42
-
43
- proxy: nil,
44
- # How do we send the oauth values to the server see
45
- # https://oauth.net/core/1.0/#consumer_req_param for more info
46
- #
47
- # Possible values:
48
- #
49
- # :header - via the Authorize header (Default) ( option 1. in spec)
50
- # :body - url form encoded in body of POST request ( option 2. in spec)
51
- # :query_string - via the query part of the url ( option 3. in spec)
52
- scheme: :header,
53
-
54
- # Default http method used for OAuth Token Requests (defaults to :post)
55
- http_method: :post,
56
-
57
- # Add a custom ca_file for consumer
58
- # :ca_file => '/etc/certs.pem'
59
-
60
- # Possible values:
61
- #
62
- # nil, false - no debug output
63
- # true - uses $stdout
64
- # some_value - uses some_value
65
- debug_output: nil,
66
-
67
- # Defaults to producing a body_hash as part of the signature but
68
- # can be disabled since it's not officially part of the OAuth 1.0
69
- # spec. Possible values are true and false
70
- body_hash_enabled: true,
71
-
72
- oauth_version: "1.0"
73
- }
33
+ @@default_options = SnakyHash::SymbolKeyed.new(
34
+ {
35
+ # Signature method used by server. Defaults to HMAC-SHA1
36
+ signature_method: "HMAC-SHA1",
37
+
38
+ # default paths on site. These are the same as the defaults set up by the generators
39
+ request_token_path: "/oauth/request_token",
40
+ authenticate_path: "/oauth/authenticate",
41
+ authorize_path: "/oauth/authorize",
42
+ access_token_path: "/oauth/access_token",
43
+
44
+ proxy: nil,
45
+ # How do we send the oauth values to the server see
46
+ # https://oauth.net/core/1.0/#consumer_req_param for more info
47
+ #
48
+ # Possible values:
49
+ #
50
+ # :header - via the Authorize header (Default) ( option 1. in spec)
51
+ # :body - url form encoded in body of POST request ( option 2. in spec)
52
+ # :query_string - via the query part of the url ( option 3. in spec)
53
+ scheme: :header,
54
+
55
+ # Default http method used for OAuth Token Requests (defaults to :post)
56
+ http_method: :post,
57
+
58
+ # Add a custom ca_file for consumer
59
+ # :ca_file => '/etc/certs.pem'
60
+
61
+ # Possible values:
62
+ #
63
+ # nil, false - no debug output
64
+ # true - uses $stdout
65
+ # some_value - uses some_value
66
+ debug_output: nil,
67
+
68
+ # Defaults to producing a body_hash as part of the signature but
69
+ # can be disabled since it's not officially part of the OAuth 1.0
70
+ # spec. Possible values are true and false
71
+ body_hash_enabled: true,
72
+
73
+ oauth_version: "1.0"
74
+ }
75
+ )
74
76
 
75
77
  attr_accessor :options, :key, :secret
76
78
  attr_writer :site, :http
@@ -103,7 +105,8 @@ module OAuth
103
105
  @secret = consumer_secret
104
106
 
105
107
  # ensure that keys are symbols
106
- @options = @@default_options.merge(options.transform_keys(&:to_sym))
108
+ snaky_options = SnakyHash::SymbolKeyed.new(options)
109
+ @options = @@default_options.merge(snaky_options)
107
110
  end
108
111
 
109
112
  # The default http method
@@ -159,9 +162,7 @@ module OAuth
159
162
  def get_request_token(request_options = {}, *arguments, &block)
160
163
  # if oauth_callback wasn't provided, it is assumed that oauth_verifiers
161
164
  # will be exchanged out of band
162
- unless request_options[:exclude_callback]
163
- request_options[:oauth_callback] ||= OAuth::OUT_OF_BAND
164
- end
165
+ request_options[:oauth_callback] ||= OAuth::OUT_OF_BAND unless request_options[:exclude_callback]
165
166
 
166
167
  response = if block
167
168
  token_request(
@@ -386,13 +387,9 @@ module OAuth
386
387
  end
387
388
 
388
389
  http_object.read_timeout = http_object.open_timeout = @options[:timeout] || 60
389
- if @options[:open_timeout]
390
- http_object.open_timeout = @options[:open_timeout]
391
- end
390
+ http_object.open_timeout = @options[:open_timeout] if @options[:open_timeout]
392
391
  http_object.ssl_version = @options[:ssl_version] if @options[:ssl_version]
393
- if @options[:ssl_client_cert]
394
- http_object.cert = @options[:ssl_client_cert]
395
- end
392
+ http_object.cert = @options[:ssl_client_cert] if @options[:ssl_client_cert]
396
393
  http_object.key = @options[:ssl_client_key] if @options[:ssl_client_key]
397
394
  http_object.set_debug_output(debug_output) if debug_output
398
395
 
@@ -409,9 +406,7 @@ module OAuth
409
406
  # only add if the site host matches the current http object's host
410
407
  # (in case we've specified a full url for token requests)
411
408
  uri = URI.parse(site)
412
- if uri.path && uri.path != "/" && uri.host == http.address
413
- path = uri.path + path
414
- end
409
+ path = uri.path + path if uri.path && uri.path != "/" && uri.host == http.address
415
410
 
416
411
  headers = arguments.first.is_a?(Hash) ? arguments.shift : {}
417
412
 
@@ -1,36 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "active_support"
4
- require "active_support/version"
5
4
  require "action_controller"
6
5
  require "uri"
7
6
 
8
- if Gem::Version.new(ActiveSupport::VERSION::STRING) < Gem::Version.new("3")
9
- # rails 2.x
10
- require "action_controller/request"
11
- unless ActionController::Request::HTTP_METHODS.include?("patch")
12
- ActionController::Request::HTTP_METHODS << "patch"
13
- ActionController::Request::HTTP_METHOD_LOOKUP["PATCH"] = :patch
14
- ActionController::Request::HTTP_METHOD_LOOKUP["patch"] = :patch
15
- end
16
-
17
- elsif Gem::Version.new(ActiveSupport::VERSION::STRING) < Gem::Version.new("4")
18
- # rails 3.x
19
- require "action_dispatch/http/request"
20
- unless ActionDispatch::Request::HTTP_METHODS.include?("patch")
21
- ActionDispatch::Request::HTTP_METHODS << "patch"
22
- ActionDispatch::Request::HTTP_METHOD_LOOKUP["PATCH"] = :patch
23
- ActionDispatch::Request::HTTP_METHOD_LOOKUP["patch"] = :patch
24
- end
25
-
26
- else # rails 4.x and later - already has patch
27
- require "action_dispatch/http/request"
28
- end
7
+ require "action_dispatch/http/request"
29
8
 
30
9
  module OAuth
31
10
  module RequestProxy
32
11
  class ActionControllerRequest < OAuth::RequestProxy::Base
33
- proxies(defined?(::ActionDispatch::AbstractRequest) ? ::ActionDispatch::AbstractRequest : ::ActionDispatch::Request)
12
+ proxies(::ActionDispatch::Request)
34
13
 
35
14
  def method
36
15
  request.method.to_s.upcase
@@ -50,7 +29,7 @@ module OAuth
50
29
  end
51
30
  end
52
31
 
53
- # Override from OAuth::RequestProxy::Base to avoid roundtrip
32
+ # Override from OAuth::RequestProxy::Base to avoid round-trip
54
33
  # conversion to Hash or Array and thus preserve the original
55
34
  # parameter names
56
35
  def parameters_for_signature
@@ -79,7 +79,7 @@ module OAuth
79
79
  end
80
80
 
81
81
  def parameters_for_signature
82
- parameters.select { |k, _v| !signature_and_unsigned_parameters.include?(k) }
82
+ parameters.reject { |k, _v| signature_and_unsigned_parameters.include?(k) }
83
83
  end
84
84
 
85
85
  def oauth_parameters
@@ -69,9 +69,7 @@ module OAuth
69
69
  end
70
70
 
71
71
  def auth_header_params
72
- unless request["Authorization"] && request["Authorization"][0, 5] == "OAuth"
73
- return nil
74
- end
72
+ return nil unless request["Authorization"] && request["Authorization"][0, 5] == "OAuth"
75
73
 
76
74
  request["Authorization"]
77
75
  end
@@ -31,9 +31,7 @@ module OAuth
31
31
  @consumer_secret = options[:consumer].secret if options[:consumer]
32
32
 
33
33
  # presence of :consumer_secret option will override any Consumer that's provided
34
- if options[:consumer_secret]
35
- @consumer_secret = options[:consumer_secret]
36
- end
34
+ @consumer_secret = options[:consumer_secret] if options[:consumer_secret]
37
35
 
38
36
  ## token secret was determined beforehand
39
37
 
data/lib/oauth/version.rb CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OAuth
4
4
  module Version
5
- VERSION = "0.6.1"
5
+ VERSION = "1.0.1"
6
6
  end
7
7
  end
data/lib/oauth.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # third party gems
4
+ require "snaky_hash"
4
5
  require "version_gem"
5
6
 
6
7
  require "oauth/version"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pelle Braendgaard
@@ -16,8 +16,22 @@ authors:
16
16
  autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2022-08-23 00:00:00.000000000 Z
19
+ date: 2022-08-29 00:00:00.000000000 Z
20
20
  dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: snaky_hash
23
+ requirement: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '2.0'
28
+ type: :runtime
29
+ prerelease: false
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '2.0'
21
35
  - !ruby/object:Gem::Dependency
22
36
  name: version_gem
23
37
  requirement: !ruby/object:Gem::Requirement
@@ -150,14 +164,14 @@ dependencies:
150
164
  requirements:
151
165
  - - "~>"
152
166
  - !ruby/object:Gem::Version
153
- version: '12.0'
167
+ version: '18.0'
154
168
  type: :development
155
169
  prerelease: false
156
170
  version_requirements: !ruby/object:Gem::Requirement
157
171
  requirements:
158
172
  - - "~>"
159
173
  - !ruby/object:Gem::Version
160
- version: '12.0'
174
+ version: '18.0'
161
175
  - !ruby/object:Gem::Dependency
162
176
  name: typhoeus
163
177
  requirement: !ruby/object:Gem::Requirement
@@ -178,14 +192,14 @@ dependencies:
178
192
  requirements:
179
193
  - - "<="
180
194
  - !ruby/object:Gem::Version
181
- version: 3.14.0
195
+ version: 3.19.0
182
196
  type: :development
183
197
  prerelease: false
184
198
  version_requirements: !ruby/object:Gem::Requirement
185
199
  requirements:
186
200
  - - "<="
187
201
  - !ruby/object:Gem::Version
188
- version: 3.14.0
202
+ version: 3.19.0
189
203
  description:
190
204
  email: oauth-ruby@googlegroups.com
191
205
  executables:
@@ -254,23 +268,23 @@ licenses:
254
268
  - MIT
255
269
  metadata:
256
270
  homepage_uri: https://github.com/oauth-xx/oauth-ruby
257
- source_code_uri: https://github.com/oauth-xx/oauth-ruby/tree/v0.6.1
258
- changelog_uri: https://github.com/oauth-xx/oauth-ruby/blob/v0.6.1/CHANGELOG.md
271
+ source_code_uri: https://github.com/oauth-xx/oauth-ruby/tree/v1.0.1
272
+ changelog_uri: https://github.com/oauth-xx/oauth-ruby/blob/v1.0.1/CHANGELOG.md
259
273
  bug_tracker_uri: https://github.com/oauth-xx/oauth-ruby/issues
260
- documentation_uri: https://www.rubydoc.info/gems/oauth/0.6.1
274
+ documentation_uri: https://www.rubydoc.info/gems/oauth/1.0.1
261
275
  wiki_uri: https://github.com/oauth-xx/oauth-ruby/wiki
262
276
  rubygems_mfa_required: 'true'
263
277
  post_install_message: |2
264
278
 
265
- You have installed oauth version 0.6.1, congratulations!
279
+ You have installed oauth version 1.0.1, congratulations!
266
280
 
267
- Non-commercial support for the 0.6.x series will end in April, 2024. Please upgrade to 1.0.x as soon as possible!
268
- The only breaking change will be dropped support for Ruby 2.4, 2.5, and 2.6.
281
+ Non-commercial support for the 1.x series will end by April, 2025. Please make a plan to upgrade to the next version prior to that date.
282
+ The only breaking change will be dropped support for Ruby 2.7 and any other versions which will also have reached EOL by then.
269
283
 
270
284
  Please see:
271
- • https://github.com/oauth-xx/oauth/blob/main/SECURITY.md
285
+ • https://github.com/oauth-xx/oauth-ruby/blob/main/SECURITY.md
272
286
 
273
- Note also that I, and this project, am in the process of leaving Github.
287
+ Note also that I am, and this project is, in the process of leaving Github.
274
288
  I wrote about some of the reasons here:
275
289
  • https://dev.to/galtzo/im-leaving-github-50ba
276
290
 
@@ -293,14 +307,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
293
307
  requirements:
294
308
  - - ">="
295
309
  - !ruby/object:Gem::Version
296
- version: '2.4'
310
+ version: '2.7'
297
311
  required_rubygems_version: !ruby/object:Gem::Requirement
298
312
  requirements:
299
313
  - - ">="
300
314
  - !ruby/object:Gem::Version
301
315
  version: '0'
302
316
  requirements: []
303
- rubygems_version: 3.3.20
317
+ rubygems_version: 3.3.21
304
318
  signing_key:
305
319
  specification_version: 4
306
320
  summary: OAuth Core Ruby implementation