cow_auth 0.6.2 → 0.7.0

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: d6aea234e2c37d4fee91e09c9e3dc9e14b70a2f13a4773469e9d80432b28fd40
4
- data.tar.gz: 250d64c10dbcda5e92666727e1a0be0766955ea080f628d39a619be21aca805b
3
+ metadata.gz: c0e869b68884793590a26fb92fa2071936551cd02d12c711ad6c26442ed40004
4
+ data.tar.gz: a6460389351e4f70e079b63c8c0f946415579213a14c2ad2a0895e6602c84afa
5
5
  SHA512:
6
- metadata.gz: 7ac5e15556b99e862ea1ef7275c671b30abf6e557c595f8ecae8364141f8a8e09ecd6bd62dd2a86c009cd8009bfa9c6a6b5ece58b9df4545b9ab3cfa73e72557
7
- data.tar.gz: 2dfe9a53ef07272d9cfc435b87d6ad772be6cb27ca54ef0e7f28bae9ee898b42e9aa5916ea90a7e849a80cb56810cdea6b708df830fc2e6fc2a96fc05af981f2
6
+ metadata.gz: 5d8324716f594328482fea1dcf04d7330d4ff20ecf325eb7e51b68e399598975e1294901cfae4b221adc7e679d101368da355d6d56620540da032cdb81b4c1ca
7
+ data.tar.gz: 834d84c38351ea0a066beed3fbff1723542996f81a10d305c6c69295a23c33af38ef86bf17869b7b351e93ecd6f8f9196417b8fd5a480867e2248445ed91c9ec
data/.gitignore CHANGED
@@ -6,4 +6,3 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
- *.gem
@@ -1,5 +1,6 @@
1
- sudo: false
1
+ ---
2
2
  language: ruby
3
+ cache: bundler
3
4
  rvm:
4
- - 2.5.0
5
- before_install: gem install bundler -v 1.16.1.pre1
5
+ - 2.7.1
6
+ before_install: gem install bundler -v 2.1.4
@@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
55
55
  ## Enforcement
56
56
 
57
57
  Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
- reported by contacting the project team at mickey@vt.edu. All
58
+ reported by contacting the project team at mickey@cowden.tech. All
59
59
  complaints will be reviewed and investigated and will result in a response that
60
60
  is deemed necessary and appropriate to the circumstances. The project team is
61
61
  obligated to maintain confidentiality with regard to the reporter of an incident.
@@ -68,7 +68,7 @@ members of the project's leadership.
68
68
  ## Attribution
69
69
 
70
70
  This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
- available at [http://contributor-covenant.org/version/1/4][version]
71
+ available at [https://contributor-covenant.org/version/1/4][version]
72
72
 
73
- [homepage]: http://contributor-covenant.org
74
- [version]: http://contributor-covenant.org/version/1/4/
73
+ [homepage]: https://contributor-covenant.org
74
+ [version]: https://contributor-covenant.org/version/1/4/
data/Gemfile CHANGED
@@ -1,6 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
-
5
3
  # Specify your gem's dependencies in cow_auth.gemspec
6
4
  gemspec
5
+
6
+ gem 'rake', '~> 12.0'
7
+ gem 'minitest', '~> 5.0'
@@ -1,41 +1,47 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cow_auth (0.6.2)
5
- activesupport (~> 5.1)
4
+ cow_auth (0.7.0)
5
+ activerecord (~> 6.0)
6
6
  scrypt (~> 3.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activesupport (5.2.1)
11
+ activemodel (6.0.3.2)
12
+ activesupport (= 6.0.3.2)
13
+ activerecord (6.0.3.2)
14
+ activemodel (= 6.0.3.2)
15
+ activesupport (= 6.0.3.2)
16
+ activesupport (6.0.3.2)
12
17
  concurrent-ruby (~> 1.0, >= 1.0.2)
13
18
  i18n (>= 0.7, < 2)
14
19
  minitest (~> 5.1)
15
20
  tzinfo (~> 1.1)
16
- concurrent-ruby (1.0.5)
17
- ffi (1.9.25)
21
+ zeitwerk (~> 2.2, >= 2.2.2)
22
+ concurrent-ruby (1.1.6)
23
+ ffi (1.13.1)
18
24
  ffi-compiler (1.0.1)
19
25
  ffi (>= 1.0.0)
20
26
  rake
21
- i18n (1.1.0)
27
+ i18n (1.8.5)
22
28
  concurrent-ruby (~> 1.0)
23
- minitest (5.11.3)
24
- rake (12.3.1)
25
- scrypt (3.0.5)
29
+ minitest (5.14.1)
30
+ rake (12.3.3)
31
+ scrypt (3.0.7)
26
32
  ffi-compiler (>= 1.0, < 2.0)
27
33
  thread_safe (0.3.6)
28
- tzinfo (1.2.5)
34
+ tzinfo (1.2.7)
29
35
  thread_safe (~> 0.1)
36
+ zeitwerk (2.4.0)
30
37
 
31
38
  PLATFORMS
32
39
  ruby
33
40
 
34
41
  DEPENDENCIES
35
- bundler (~> 1.16)
36
42
  cow_auth!
37
- minitest (~> 5.11)
38
- rake (~> 12.3)
43
+ minitest (~> 5.0)
44
+ rake (~> 12.0)
39
45
 
40
46
  BUNDLED WITH
41
- 1.16.2
47
+ 2.1.4
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2017 Mickey Cowden
3
+ Copyright (c) 2020 Mickey Cowden
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # CowAuth
2
2
 
3
- The main goal of this gem is to provide token-based authentication for Rails (or Rails-like) web applications.
3
+ The goal of this gem is to provide token-based authentication for Rails (or Rails-like) web applications.
4
4
 
5
5
  ## Installation
6
6
 
@@ -12,7 +12,7 @@ gem 'cow_auth'
12
12
 
13
13
  And then execute:
14
14
 
15
- $ bundle
15
+ $ bundle install
16
16
 
17
17
  Or install it yourself as:
18
18
 
@@ -31,31 +31,32 @@ Configure your user model to add the authentication mechanism.
31
31
  #### Migration (Example)
32
32
 
33
33
  # Modified migration; includes indexes and other stuff you might not want.
34
- class CreateUsers < ActiveRecord::Migration[5.2]
34
+ class CreateUsers < ActiveRecord::Migration[6.0]
35
35
  def change
36
36
  create_table :users do |t|
37
37
  t.string :uuid, null: false
38
38
  t.string :email, null: false
39
39
  t.string :sid, null: false
40
- t.string :encrypted_password, null: false
41
40
  t.string :locale, null: false
41
+ t.string :encrypted_password, null: false
42
+ t.string :auth_token
42
43
  t.string :first_name
43
44
  t.string :last_name
44
45
  t.integer :sign_in_count, default: 0, null: false
45
46
  t.boolean :is_enabled, default: false, null: false
46
47
  t.boolean :is_deleted, default: false, null: false
48
+ t.timestamp :expires_at
47
49
  t.timestamps
48
- t.index [:uuid], unique: true
49
- t.index [:email], unique: true
50
- t.index [:sid], unique: true
51
50
  end
51
+ add_index :users, :uuid, unique: true
52
+ add_index :users, :email, unique: true
53
+ add_index :users, :sid, unique: true
52
54
  end
53
55
  end
54
56
 
55
- #### Model Concern
57
+ #### Model Inheritance
56
58
 
57
- class User < ApplicationRecord
58
- include CowAuth::User
59
+ class User < CowAuth::User
59
60
  end
60
61
 
61
62
  #### Create User
@@ -165,7 +166,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
165
166
 
166
167
  ## Contributing
167
168
 
168
- Bug reports and pull requests are welcome on GitHub at https://github.com/mickey13/cow_auth. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
169
+ Bug reports and pull requests are welcome on GitHub at https://github.com/mickey13/cow-auth. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/mickey13/cow-auth/blob/master/CODE_OF_CONDUCT.md).
169
170
 
170
171
  ## License
171
172
 
@@ -173,4 +174,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
173
174
 
174
175
  ## Code of Conduct
175
176
 
176
- Everyone interacting in the CowAuth projects codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/mickey13/cow-auth/blob/master/CODE_OF_CONDUCT.md).
177
+ Everyone interacting in the CowAuth project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/mickey13/cow-auth/blob/master/CODE_OF_CONDUCT.md).
@@ -1,31 +1,30 @@
1
-
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'cow_auth/version'
1
+ require_relative 'lib/cow_auth/version'
5
2
 
6
3
  Gem::Specification.new do |spec|
7
4
  spec.name = 'cow_auth'
8
5
  spec.version = CowAuth::VERSION
9
6
  spec.authors = ['Mickey Cowden']
10
- spec.email = ['mickey@vt.edu']
7
+ spec.email = ['mickey@cowden.tech']
11
8
 
12
9
  spec.summary = 'Authentication gem'
13
- spec.description = 'The main goal of this gem is to provide token-based authentication for Rails (or Rails-like) web applications.'
10
+ spec.description = 'The goal of this gem is to provide token-based authentication for Rails (or Rails-like) web applications.'
14
11
  spec.homepage = 'https://github.com/mickey13/cow-auth'
15
12
  spec.license = 'MIT'
13
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
14
+
15
+ spec.metadata['homepage_uri'] = spec.homepage
16
+ spec.metadata['source_code_uri'] = spec.homepage
17
+ spec.metadata['changelog_uri'] = spec.homepage
16
18
 
17
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
- f.match(%r{^(test|spec|features)/})
19
+ # Specify which files should be added to the gem when it is released.
20
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
22
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
23
  end
20
24
  spec.bindir = 'exe'
21
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
26
  spec.require_paths = ['lib']
23
27
 
24
- spec.required_ruby_version = '~> 2.4'
25
-
26
- spec.add_development_dependency 'bundler', '~> 1.16'
27
- spec.add_development_dependency 'rake', '~> 12.3'
28
- spec.add_development_dependency 'minitest', '~> 5.11'
29
- spec.add_runtime_dependency 'activesupport', '~> 5.1'
28
+ spec.add_runtime_dependency 'activerecord', '~> 6.0'
30
29
  spec.add_runtime_dependency 'scrypt', '~> 3.0'
31
30
  end
@@ -1,19 +1,16 @@
1
+ require 'active_record'
1
2
  require 'scrypt'
2
3
 
3
4
  module CowAuth
4
- module User
5
- extend ActiveSupport::Concern
5
+ class User < ActiveRecord::Base
6
+ after_initialize :generate_sid_if_necessary
6
7
 
7
- included do
8
- after_initialize :generate_sid_if_necessary
9
-
10
- validates :email, presence: true
11
- validates :email, uniqueness: true
12
- validates :encrypted_password, presence: true
13
- validates :sid, presence: true
14
- validates :sid, uniqueness: true
15
- validates :sid, format: { with: /\AC[a-z0-9]{32}\z/ }
16
- end
8
+ validates :email, presence: true
9
+ validates :email, uniqueness: true
10
+ validates :encrypted_password, presence: true
11
+ validates :sid, presence: true
12
+ validates :sid, uniqueness: true
13
+ validates :sid, format: { with: /\AC[a-z0-9]{32}\z/ }
17
14
 
18
15
  def authenticate_with_password(password)
19
16
  return false if self.encrypted_password.blank?
@@ -1,3 +1,3 @@
1
1
  module CowAuth
2
- VERSION = '0.6.2'
2
+ VERSION = '0.7.0'
3
3
  end
metadata CHANGED
@@ -1,71 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cow_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mickey Cowden
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-11 00:00:00.000000000 Z
11
+ date: 2020-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.16'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '12.3'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '12.3'
41
- - !ruby/object:Gem::Dependency
42
- name: minitest
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '5.11'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '5.11'
55
- - !ruby/object:Gem::Dependency
56
- name: activesupport
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '5.1'
19
+ version: '6.0'
62
20
  type: :runtime
63
21
  prerelease: false
64
22
  version_requirements: !ruby/object:Gem::Requirement
65
23
  requirements:
66
24
  - - "~>"
67
25
  - !ruby/object:Gem::Version
68
- version: '5.1'
26
+ version: '6.0'
69
27
  - !ruby/object:Gem::Dependency
70
28
  name: scrypt
71
29
  requirement: !ruby/object:Gem::Requirement
@@ -80,10 +38,10 @@ dependencies:
80
38
  - - "~>"
81
39
  - !ruby/object:Gem::Version
82
40
  version: '3.0'
83
- description: The main goal of this gem is to provide token-based authentication for
84
- Rails (or Rails-like) web applications.
41
+ description: The goal of this gem is to provide token-based authentication for Rails
42
+ (or Rails-like) web applications.
85
43
  email:
86
- - mickey@vt.edu
44
+ - mickey@cowden.tech
87
45
  executables: []
88
46
  extensions: []
89
47
  extra_rdoc_files: []
@@ -110,24 +68,26 @@ files:
110
68
  homepage: https://github.com/mickey13/cow-auth
111
69
  licenses:
112
70
  - MIT
113
- metadata: {}
71
+ metadata:
72
+ homepage_uri: https://github.com/mickey13/cow-auth
73
+ source_code_uri: https://github.com/mickey13/cow-auth
74
+ changelog_uri: https://github.com/mickey13/cow-auth
114
75
  post_install_message:
115
76
  rdoc_options: []
116
77
  require_paths:
117
78
  - lib
118
79
  required_ruby_version: !ruby/object:Gem::Requirement
119
80
  requirements:
120
- - - "~>"
81
+ - - ">="
121
82
  - !ruby/object:Gem::Version
122
- version: '2.4'
83
+ version: 2.3.0
123
84
  required_rubygems_version: !ruby/object:Gem::Requirement
124
85
  requirements:
125
86
  - - ">="
126
87
  - !ruby/object:Gem::Version
127
88
  version: '0'
128
89
  requirements: []
129
- rubyforge_project:
130
- rubygems_version: 2.7.7
90
+ rubygems_version: 3.1.4
131
91
  signing_key:
132
92
  specification_version: 4
133
93
  summary: Authentication gem