Skip to content

Commit 3772941

Browse files
authored
Allow using of Sequel 5: merge pull request #8 from nbulaj/sequel5
Allow to use Sequel 5
2 parents 6b66bd6 + 945d714 commit 3772941

26 files changed

+154
-151
lines changed

.rubocop.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ Rails:
99
Enabled: true
1010
Documentation:
1111
Enabled: false
12+
Layout/EndOfLine:
13+
Enabled: false
1214
Metrics/BlockLength:
1315
Exclude:
1416
- lib/doorkeeper/orm/sequel/validators/*
15-
- lib/generators/doorkeeper/sequel/templates/*
17+
- lib/doorkeeper-sequel/generators/templates*

CHANGELOG.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,18 @@ Reverse Chronological Order:
44

55
## master
66

7-
https://github.com/nbulaj/doorkeeper-sequel/compare/1.2.3...master
7+
https://github.com/nbulaj/doorkeeper-sequel/compare/1.3.0...master
88

99
...
1010

11+
## `1.3.0` (2017-12-13)
12+
13+
https://github.com/nbulaj/doorkeeper-sequel/compare/1.2.3...1.3.0
14+
15+
* Fix dependencies to allow using of Sequel 5
16+
* Fix models plugins for Sequel >= 4.47
17+
* Fix generators to allow migration generation when tables not created
18+
1119
## `1.2.3` (2017-08-10)
1220

1321
https://github.com/nbulaj/doorkeeper-sequel/compare/1.2.2...1.2.3

README.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
To start using the Doorkeeper Sequel ORM, add to your Gemfile:
1919

2020
``` ruby
21-
gem 'doorkeeper-sequel', '~> 1.2'
21+
gem 'doorkeeper-sequel', '~> 1.3'
2222
```
2323

2424
Or you can use git `master` branch for the latest gem version:
@@ -38,9 +38,9 @@ end
3838
Generate migrations:
3939

4040
```
41-
rails generate doorkeeper:sequel:migration
42-
rails generate doorkeeper:sequel:application_owner
43-
rails generate doorkeeper:sequel:previous_refresh_token
41+
rake doorkeeper_sequel:generate:migration
42+
rake doorkeeper_sequel:generate:application_owner
43+
rake doorkeeper_sequel:generate:previous_refresh_token
4444
```
4545

4646
## Tests
@@ -73,7 +73,7 @@ Thanks.
7373

7474
Doorkeeper-sequel gem is released under the [MIT License](http://www.opensource.org/licenses/MIT).
7575

76-
Copyright (c) 2016-2017 Nikita Bulai ([email protected]).
76+
Copyright (c) 2016-2018 Nikita Bulai ([email protected]).
7777

7878
---
7979

Rakefile

+2-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class ExtensionIntegrator
1212
base_dir = File.join(Dir.pwd, 'spec')
1313

1414
Dir.foreach(base_dir) do |file|
15-
next if %w(. .. stubs).include?(file)
15+
next if %w[. .. stubs].include?(file)
1616

1717
file_name = File.join(base_dir, file)
1818

@@ -31,9 +31,8 @@ class ExtensionIntegrator
3131
FileUtils.cp_r('spec/stubs/config/application.rb', 'spec/dummy/config/application.rb')
3232
FileUtils.cp_r('spec/stubs/support/sequel.rb', 'spec/support/orm/sequel.rb')
3333
FileUtils.rm('spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb')
34-
# Generators
34+
# Remove generators specs because we are using our own
3535
FileUtils.rm(Dir.glob('spec/generators/*.rb'))
36-
FileUtils.cp_r(Dir.glob('spec/stubs/generators/*.rb'), 'spec/generators/')
3736
end
3837
end
3938
end

doorkeeper-sequel.gemspec

+8-5
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,30 @@ Gem::Specification.new do |gem|
66
gem.name = 'doorkeeper-sequel'
77
gem.version = DoorkeeperSequel.gem_version
88
gem.authors = ['Nikita Bulai']
9-
gem.date = '2017-08-10'
9+
gem.date = '2017-12-13'
1010
gem.email = ['[email protected]']
1111
gem.homepage = 'http://github.com/nbulaj/doorkeeper-sequel'
1212
gem.summary = 'Doorkeeper Sequel ORM'
1313
gem.description = 'Provides Doorkeeper support to Sequel database toolkit.'
1414
gem.license = 'MIT'
1515

16-
gem.require_paths = %w(lib config)
16+
gem.bindir = 'bin'
17+
gem.require_paths = %w[lib config]
1718
gem.files = `git ls-files`.split($RS)
19+
gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
1820
gem.test_files = Dir['spec/**/*']
1921

2022
gem.required_ruby_version = '>= 2.0.0'
2123

2224
gem.add_runtime_dependency 'doorkeeper', '~> 4.0', '>= 4.0.0'
2325
gem.add_runtime_dependency 'sequel', '>= 4.0.0', '< 6'
2426
gem.add_runtime_dependency 'sequel_polymorphic', '~> 0.2', '< 1.0'
27+
gem.add_runtime_dependency 'thor', '>= 0.18', '< 6'
2528

26-
gem.add_development_dependency 'rspec-rails', '~> 3.5', '>= 3.5.0'
2729
gem.add_development_dependency 'capybara', '~> 2.14', '>= 2.14.0'
28-
gem.add_development_dependency 'generator_spec', '~> 0.9.4'
30+
gem.add_development_dependency 'database_cleaner', '~> 1.5', '>= 1.5.0'
2931
gem.add_development_dependency 'factory_girl', '~> 4.8', '>= 4.8.0'
32+
gem.add_development_dependency 'generator_spec', '~> 0.9.4'
33+
gem.add_development_dependency 'rspec-rails', '~> 3.5', '>= 3.5.0'
3034
gem.add_development_dependency 'timecop', '~> 0.9.0'
31-
gem.add_development_dependency 'database_cleaner', '~> 1.5', '>= 1.5.0'
3235
end

gemfiles/rails-4.2.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
22

33
gemspec path: '../'
44

5-
gem 'rails', '~> 4.2'
5+
gem 'rails', '~> 4.2', '<= 5.0'
66
gem 'sqlite3', '~> 1.3.5'
77
gem 'sequel', '>= 4.0'
88

gemfiles/rails-5.0.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
22

33
gemspec path: '..'
44

5-
gem 'rails', '~> 5.0'
5+
gem 'rails', '~> 5.0', '<= 5.1'
66
gem 'sqlite3', '~> 1.3.5'
77
gem 'sequel', '>= 4.0'
88

gemfiles/rails-5.1.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
22

33
gemspec path: '..'
44

5-
gem 'rails', '5.1.1'
5+
gem 'rails', '~> 5.1', '<= 5.2'
66
gem 'sqlite3', '~> 1.3.5'
77
gem 'sequel', '>= 4.0'
88

lib/doorkeeper-sequel.rb

+11-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
require 'doorkeeper-sequel/version'
22

3-
require 'doorkeeper'
3+
if defined?(::Rails)
4+
require 'thor/group'
5+
6+
require 'doorkeeper-sequel/generators/concerns/migration_actions'
7+
require 'doorkeeper-sequel/generators/application_owner_generator'
8+
require 'doorkeeper-sequel/generators/migration_generator'
9+
require 'doorkeeper-sequel/generators/previous_refresh_token_generator'
410

11+
require 'doorkeeper-sequel/railtie'
12+
end
13+
14+
require 'doorkeeper'
515
require 'doorkeeper/orm/sequel'
616

717
module DoorkeeperSequel

lib/doorkeeper-sequel/gem_version.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ def self.gem_version
55

66
module VERSION
77
MAJOR = 1
8-
MINOR = 2
9-
TINY = 3
8+
MINOR = 3
9+
TINY = 0
1010

1111
STRING = [MAJOR, MINOR, TINY].compact.join('.')
1212
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module DoorkeeperSequel
2+
class ApplicationOwnerGenerator < ::Thor::Group
3+
include ::Thor::Actions
4+
include MigrationActions
5+
6+
source_root File.expand_path('../templates', __FILE__)
7+
8+
desc 'Provide support for client application ownership.'
9+
10+
def install
11+
create_migration 'add_owner_to_application.rb'
12+
end
13+
end
14+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
module DoorkeeperSequel
2+
module MigrationActions
3+
extend ::ActiveSupport::Concern
4+
5+
protected
6+
7+
def create_migration(template_name)
8+
copy_file template_name, migration_filename_for(template_name)
9+
end
10+
11+
def migration_template
12+
File.expand_path('../templates/migration.rb', __FILE__)
13+
end
14+
15+
private
16+
17+
def migration_filename_for(template_name)
18+
"db/migrate/#{new_migration_number}_#{template_name}"
19+
end
20+
21+
def new_migration_number
22+
current_number = current_migration_number('db/migrate')
23+
24+
# possible numeric migration
25+
if current_number && current_number.start_with?('0')
26+
# generate the same name as used by the developer
27+
"%.#{current_number.length}d" % (current_number.to_i + 1)
28+
else
29+
Time.now.utc.strftime('%Y%m%d%H%M%S')
30+
end
31+
end
32+
33+
def current_migration_number(dirname)
34+
migration_lookup_at(dirname).collect do |file|
35+
File.basename(file).split('_').first
36+
end.max
37+
end
38+
39+
def migration_lookup_at(dirname)
40+
Dir.glob("#{dirname}/[0-9]*_*.rb")
41+
end
42+
end
43+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module DoorkeeperSequel
2+
class MigrationGenerator < ::Thor::Group
3+
include ::Thor::Actions
4+
include MigrationActions
5+
6+
source_root File.expand_path('../templates', __FILE__)
7+
8+
desc 'Installs Doorkeeper Sequel migration file.'
9+
10+
def install
11+
create_migration 'migration.rb'
12+
end
13+
end
14+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module DoorkeeperSequel
2+
class PreviousRefreshTokenGenerator < ::Thor::Group
3+
include ::Thor::Actions
4+
include MigrationActions
5+
6+
source_root File.expand_path('../templates', __FILE__)
7+
8+
desc 'Support revoke refresh token on access token use'
9+
10+
def install
11+
create_migration 'add_previous_refresh_token_to_access_tokens.rb'
12+
end
13+
end
14+
end

lib/doorkeeper-sequel/railtie.rb

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module DoorkeeperSequel
2+
class Railtie < ::Rails::Railtie
3+
rake_tasks do
4+
load File.expand_path('../tasks/doorkeeper-sequel.rake', __FILE__)
5+
end
6+
end
7+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
namespace :doorkeeper_sequel do
2+
namespace :generate do
3+
desc 'Generate main migration file'
4+
task :migration do
5+
DoorkeeperSequel::MigrationGenerator.start
6+
end
7+
8+
desc 'Generate migration file for Application Owner functionality'
9+
task :application_owner do
10+
DoorkeeperSequel::ApplicationOwnerGenerator.start
11+
end
12+
13+
desc 'Generate migration file for Previous Refresh Token functionality'
14+
task :previous_refresh_token do
15+
DoorkeeperSequel::PreviousRefreshTokenGenerator.start
16+
end
17+
end
18+
end

lib/doorkeeper/orm/sequel/models/access_token_mixin.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def matching_token_for(application, resource_owner_or_id, scopes)
7373
end
7474

7575
def scopes_match?(token_scopes, param_scopes, app_scopes)
76-
(!token_scopes.present? && !param_scopes.present?) ||
76+
(token_scopes.blank? && param_scopes.blank?) ||
7777
Doorkeeper::OAuth::Helpers::ScopeChecker.match?(
7878
token_scopes.to_s,
7979
param_scopes,

lib/generators/doorkeeper/sequel/application_owner_generator.rb

-23
This file was deleted.

lib/generators/doorkeeper/sequel/migration_generator.rb

-23
This file was deleted.

lib/generators/doorkeeper/sequel/previous_refresh_token_generator.rb

-23
This file was deleted.

spec/stubs/generators/application_owner_generator_spec.rb

-20
This file was deleted.

0 commit comments

Comments
 (0)