omniauth-identity 3.0.8 → 3.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 26637a55190cccdef70e9a1fc568005e23b7ebff9ba3ec6d2f5ea4398117f04d
4
- data.tar.gz: d31d884aae50bd00c0d3820030c107def5bbcaf6507eb5628e068ac090ccc8c7
3
+ metadata.gz: 3eaf9c4edfdb4716551abeeb233e63716d4bbb6a2c90d921129d05e06434c3ed
4
+ data.tar.gz: ccb786b04aa010387b3d4d7ae369038a3760d52a1b9a7077e76e3051d364ca1f
5
5
  SHA512:
6
- metadata.gz: 86f91851a1e9884d95e3b3d765176f8faed5c7acbf7d79e168d803a09275c228a5cfe1221ee5fedd69689fccbc2af04d4857342bf5ae273f7a4d873a5e7e36c7
7
- data.tar.gz: 81462770cbbd476db63d133831a36710178fef1702f5277a8a13248c17bf3fd91bba74f81337239b43202b10c079a3196f2ce912452c803e387c13b0c7361214
6
+ metadata.gz: fdbb4c0951fca595a37d1efc13491c6eaba328d77cae2184624260b9bb643c6483a0d167296a36ab168d0dd2afafbc8a3be9df1dfeb6ba9fc7cd83556c02b1c3
7
+ data.tar.gz: 9d8385b53f5e46ed414f59c6a9acbcb62734b94df6b86224e0fa401da349cd44c1af57ff54d0ec01c100d2ccd8e003ea1c062eb1a7d772b404d82c0c2eda579b
data/CHANGELOG.md CHANGED
@@ -8,6 +8,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [3.0.9] - 2021-06-16
12
+
13
+ ### Fixed
14
+
15
+ - \[Sequel\] Fixes loading the Sequel adapter, issue reported as [#112](https://github.com/omniauth/omniauth-identity/issues/112)
16
+
17
+ ### Added
18
+
19
+ - 📝 Document the Database adapters and drivers the gem currently works with
20
+
11
21
  ## [3.0.8] - 2021-03-24
12
22
 
13
23
  ### Fixed
data/README.md CHANGED
@@ -21,6 +21,15 @@ This gem is compatible with, as of Feb 2021, version 3:
21
21
 
22
22
  * Latest released version of omniauth, v2.0.2
23
23
  * Ruby 2.4, 2.5, 2.6, 2.7, 3.0, ruby-head
24
+ * At least 5 different database ORM adapters, which connect to 15 different database clients!
25
+
26
+ | Databases | Adapter Libraries |
27
+ |--------- | -------- |
28
+ | MySQL, PostgreSQL, SQLite3 | [ActiveRecord](https://guides.rubyonrails.org/active_record_basics.html) |
29
+ | CouchDB | [CouchPotato](https://github.com/langalex/couch_potato) |
30
+ | MongoDB | [Mongoid](https://github.com/mongodb/mongoid) |
31
+ | RethinkDB | [NoBrainer](http://nobrainer.io/) |
32
+ | ADO, Amalgalite, IBM_DB, JDBC, MySQL, Mysql2, ODBC, Oracle, PostgreSQL, SQLAnywhere, SQLite3, and TinyTDS | [Sequel](http://sequel.jeremyevans.net) |
24
33
 
25
34
  ## Installation
26
35
 
@@ -171,7 +180,7 @@ end
171
180
  ```
172
181
 
173
182
  NOTE: In the above example, `MyCustomClass` must have a class method called `auth_key` that returns
174
- the default (`email`) or custom `auth_key` to use.
183
+ the default (`email`) or custom `auth_key` to use.
175
184
 
176
185
  ## Customizing Registration Failure
177
186
 
@@ -273,40 +282,41 @@ Please contribute some documentation if you have the gumption! The maintainer's
273
282
  3. Commit your changes (`git commit -am ‘Added some feature’`)
274
283
  4. Push to the branch (`git push origin my-new-feature`)
275
284
  5. Make sure to add tests for it. This is important so I don’t break it in a future version unintentionally.
276
- - NOTE: In order to run *all* the tests you will need to have the following databases installed, configured, and running.
277
- 1. [RethinkDB](https://rethinkdb.com), an open source, real-time, web database, [installed](https://rethinkdb.com/docs/install/) and [running](https://rethinkdb.com/docs/start-a-server/), e.g.
278
- ```bash
279
- brew install rethinkdb
280
- rethinkdb
281
- ```
282
- 2. [MongoDB](https://docs.mongodb.com/manual/administration/install-community/)
283
- ```bash
284
- brew tap mongodb/brew
285
- brew install mongodb-community@4.4
286
- mongod --config /usr/local/etc/mongod.conf
287
- ```
288
- 3. [CouchDB](https://couchdb.apache.org) (download the .app)
289
- To run all tests on all databases:
290
- ```bash
291
- bundle exec rake
292
- ```
293
- To run a specific DB:
294
- ```bash
295
- # CouchDB / CouchPotato
296
- bundle exec rspec spec spec_orms --tag 'couchdb'
297
-
298
- # ActiveRecord and Sequel, as they both use the in-memory SQLite driver.
299
- bundle exec rspec spec spec_orms --tag 'sqlite3'
300
-
301
- # NOTE - mongoid and nobrainer specs can't be isolated with "tag" because it still loads everything,
302
- # and the two libraries are fundamentally incompatible.
303
-
304
- # MongoDB / Mongoid
305
- bundle exec rspec spec_orms/mongoid_spec.rb
306
-
307
- # RethinkDB / NoBrainer
308
- bundle exec rspec spec_orms/nobrainer_spec.rb
309
- ```
285
+ - NOTE: In order to run *all* the tests you will need to have the following databases installed, configured, and running.
286
+ 1. [RethinkDB](https://rethinkdb.com), an open source, real-time, web database, [installed](https://rethinkdb.com/docs/install/) and [running](https://rethinkdb.com/docs/start-a-server/), e.g.
287
+ ```bash
288
+ brew install rethinkdb
289
+ rethinkdb
290
+ ```
291
+ 2. [MongoDB](https://docs.mongodb.com/manual/administration/install-community/)
292
+ ```bash
293
+ brew tap mongodb/brew
294
+ brew install mongodb-community@4.4
295
+ mongod --config /usr/local/etc/mongod.conf
296
+ ```
297
+ 3. [CouchDB](https://couchdb.apache.org) (download the .app)
298
+
299
+ To run all tests on all databases:
300
+ ```bash
301
+ bundle exec rake
302
+ ```
303
+ To run a specific DB:
304
+ ```bash
305
+ # CouchDB / CouchPotato
306
+ bundle exec rspec spec spec_orms --tag 'couchdb'
307
+
308
+ # ActiveRecord and Sequel, as they both use the in-memory SQLite driver.
309
+ bundle exec rspec spec spec_orms --tag 'sqlite3'
310
+
311
+ # NOTE - mongoid and nobrainer specs can't be isolated with "tag" because it still loads everything,
312
+ # and the two libraries are fundamentally incompatible.
313
+
314
+ # MongoDB / Mongoid
315
+ bundle exec rspec spec_orms/mongoid_spec.rb
316
+
317
+ # RethinkDB / NoBrainer
318
+ bundle exec rspec spec_orms/nobrainer_spec.rb
319
+ ```
310
320
  6. Create new Pull Request
311
321
 
312
322
  ## License
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OmniAuth
4
4
  module Identity
5
- VERSION = '3.0.8'
5
+ VERSION = '3.0.9'
6
6
  end
7
7
  end
@@ -5,6 +5,9 @@ require 'active_record'
5
5
  module OmniAuth
6
6
  module Identity
7
7
  module Models
8
+ # ActiveRecord is an ORM for MySQL, PostgreSQL, and SQLite3:
9
+ # https://guides.rubyonrails.org/active_record_basics.html
10
+ # NOTE: ActiveRecord is based on ActiveModel.
8
11
  class ActiveRecord < ::ActiveRecord::Base
9
12
  include ::OmniAuth::Identity::Model
10
13
  include ::OmniAuth::Identity::SecurePassword
@@ -5,9 +5,11 @@ require 'couch_potato'
5
5
  module OmniAuth
6
6
  module Identity
7
7
  module Models
8
- # can not be named CouchPotato since there is a class with that name
8
+ # CouchPotato is an ORM adapter for CouchDB:
9
+ # https://github.com/langalex/couch_potato
9
10
  # NOTE: CouchPotato is based on ActiveModel.
10
11
  # NOTE: CouchPotato::Persistence must be included before OmniAuth::Identity::Models::CouchPotatoModule
12
+ # NOTE: Includes "Module" in the name for invalid legacy reasons. Rename only with a major version bump.
11
13
  module CouchPotatoModule
12
14
  def self.included(base)
13
15
  base.class_eval do
@@ -5,6 +5,8 @@ require 'mongoid'
5
5
  module OmniAuth
6
6
  module Identity
7
7
  module Models
8
+ # Mongoid is an ORM adapter for MongoDB:
9
+ # https://github.com/mongodb/mongoid
8
10
  # NOTE: Mongoid is based on ActiveModel.
9
11
  module Mongoid
10
12
  def self.included(base)
@@ -5,7 +5,8 @@ require 'nobrainer'
5
5
  module OmniAuth
6
6
  module Identity
7
7
  module Models
8
- # http://nobrainer.io/ an ORM for RethinkDB
8
+ # NoBrainer is an ORM adapter for RethinkDB:
9
+ # http://nobrainer.io/
9
10
  # NOTE: NoBrainer is based on ActiveModel.
10
11
  module NoBrainer
11
12
  def self.included(base)
@@ -1,11 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'nobrainer'
3
+ require 'sequel'
4
4
 
5
5
  module OmniAuth
6
6
  module Identity
7
7
  module Models
8
- # http://sequel.jeremyevans.net/ an SQL ORM
8
+ # Sequel is an ORM adapter for the following databases:
9
+ # ADO, Amalgalite, IBM_DB, JDBC, MySQL, Mysql2, ODBC, Oracle, PostgreSQL, SQLAnywhere, SQLite3, and TinyTDS
10
+ # The homepage is: http://sequel.jeremyevans.net/
9
11
  # NOTE: Sequel is *not* based on ActiveModel, but supports the API we need, except for `persisted?`:
10
12
  # * create
11
13
  # * save
@@ -22,8 +24,6 @@ module OmniAuth
22
24
 
23
25
  has_secure_password
24
26
 
25
- alias_method :persisted?, :valid?
26
-
27
27
  def self.auth_key=(key)
28
28
  super
29
29
  validates_uniqueness_of :key, case_sensitive: false
@@ -14,6 +14,7 @@ RSpec.describe(OmniAuth::Identity::Models::ActiveRecord, sqlite3: true) do
14
14
  columns: OmniAuth::Identity::Model::SCHEMA_ATTRIBUTES | %w[provider password_digest],
15
15
  connection_params: { adapter: 'sqlite3', encoding: 'utf8', database: ':memory:' }
16
16
  ) do
17
+ auth_key :email
17
18
  def flower
18
19
  '🌸'
19
20
  end
@@ -18,6 +18,7 @@ RSpec.describe(OmniAuth::Identity::Models::Sequel, sqlite3: true) do
18
18
  before do
19
19
  sequel_test_identity = Class.new(Sequel::Model(:sequel_test_identities)) do
20
20
  include ::OmniAuth::Identity::Models::Sequel
21
+ auth_key :email
21
22
  end
22
23
  stub_const('SequelTestIdentity', sequel_test_identity)
23
24
  end
@@ -17,6 +17,7 @@ RSpec.describe OmniAuth::Strategies::Identity, sqlite3: true do
17
17
  columns: OmniAuth::Identity::Model::SCHEMA_ATTRIBUTES | %w[provider password_digest],
18
18
  connection_params: { adapter: 'sqlite3', encoding: 'utf8', database: ':memory:' }
19
19
  ) do
20
+ auth_key :email
20
21
  def balloon
21
22
  '🎈'
22
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-identity
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.8
4
+ version: 3.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Boling
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2021-03-24 00:00:00.000000000 Z
13
+ date: 2021-06-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bcrypt
@@ -160,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
160
  - !ruby/object:Gem::Version
161
161
  version: 1.3.6
162
162
  requirements: []
163
- rubygems_version: 3.2.9
163
+ rubygems_version: 3.2.17
164
164
  signing_key:
165
165
  specification_version: 4
166
166
  summary: Traditional username/password based authentication system for OmniAuth