doorkeeper 0.6.7 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of doorkeeper might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/.travis.yml +6 -5
- data/CHANGELOG.md +12 -0
- data/Gemfile +6 -5
- data/README.md +12 -20
- data/app/controllers/doorkeeper/applications_controller.rb +18 -7
- data/app/validators/redirect_uri_validator.rb +1 -1
- data/doorkeeper.gemspec +4 -3
- data/lib/doorkeeper/config.rb +1 -1
- data/lib/doorkeeper/helpers/controller.rb +3 -3
- data/lib/doorkeeper/models/access_grant.rb +0 -2
- data/lib/doorkeeper/models/access_token.rb +0 -1
- data/lib/doorkeeper/models/active_record/access_grant.rb +4 -0
- data/lib/doorkeeper/models/active_record/access_token.rb +4 -0
- data/lib/doorkeeper/models/active_record/application.rb +14 -6
- data/lib/doorkeeper/models/application.rb +0 -2
- data/lib/doorkeeper/oauth/scopes.rb +3 -3
- data/lib/doorkeeper/rails/routes.rb +26 -14
- data/lib/doorkeeper/version.rb +1 -1
- data/spec/dummy/app/models/user.rb +0 -2
- data/spec/dummy/config/application.rb +0 -3
- data/spec/dummy/config/initializers/secret_token.rb +3 -1
- metadata +54 -65
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7fcb07abcda6e9eed4a8cfec8203ef88dc243f50
|
4
|
+
data.tar.gz: fe23329643e7a1e88dfe432aa2c04314de90ac35
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b169d9dbe8e64af11e65c2e505ca00ddc472ef8e33eb63bb1f9ea2651387f49dc14424e0e9e22148b6f5927519c995d26fde39ff45b18660de7ed211c1ac8cbf
|
7
|
+
data.tar.gz: 082d67eaa6f7b296ac9de89b9deb58612e7451bd95901ff4c989377ccea8f207cae006551e4f57346d3da3b251f2a7362aee3b3d70e8010ceb2ab247382c2d29
|
data/.travis.yml
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 1.8.7
|
4
|
-
- 1.9.2
|
5
3
|
- 1.9.3
|
4
|
+
- 2.0.0
|
6
5
|
env:
|
7
|
-
- rails=3.2.8
|
8
6
|
- rails=3.1.8
|
7
|
+
- rails=3.2.8
|
8
|
+
- rails=3.2.13
|
9
|
+
- rails=4.0.0
|
9
10
|
- orm=mongoid2
|
10
11
|
- orm=mongoid3
|
11
12
|
- orm=mongo_mapper
|
@@ -15,7 +16,7 @@ matrix:
|
|
15
16
|
allow_failures:
|
16
17
|
- env: orm=mongoid2
|
17
18
|
exclude:
|
18
|
-
- rvm: 1.8.7
|
19
|
-
env: orm=mongoid3
|
20
19
|
- rvm: 1.9.2
|
21
20
|
env: orm=mongoid3
|
21
|
+
- rvm: 1.9.2
|
22
|
+
env: rails=4.0.0
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.7.0
|
4
|
+
|
5
|
+
- enhancements
|
6
|
+
- [#229] Rails 4!
|
7
|
+
- internals
|
8
|
+
- [#203] Changing table name to be specific in column_names_with_table
|
9
|
+
- [#215] README update
|
10
|
+
- [#227] Use Rails.config.paths["config/routes"] instead of assuming "config/routes.rb" exists
|
11
|
+
- [#262] Add jquery as gem dependency
|
12
|
+
- [#263] Add a configuration for ActiveRecord.establish_connection
|
13
|
+
- Deprecation and Ruby warnings (PRs merged outside of GitHub).
|
14
|
+
|
3
15
|
## 0.6.7
|
4
16
|
|
5
17
|
- internals
|
data/Gemfile
CHANGED
@@ -1,18 +1,19 @@
|
|
1
1
|
# Defaults. For supported versions check .travis.yml
|
2
|
-
ENV['rails'] ||= '3.2.
|
2
|
+
ENV['rails'] ||= '3.2.13'
|
3
3
|
ENV['orm'] ||= 'active_record'
|
4
4
|
|
5
|
-
source
|
5
|
+
source 'https://rubygems.org'
|
6
6
|
|
7
7
|
gem 'jquery-rails'
|
8
8
|
|
9
9
|
# Define Rails version
|
10
|
-
|
11
|
-
|
10
|
+
gem 'rails', ENV['rails']
|
11
|
+
|
12
|
+
gem 'database_cleaner', '~> 1.0.0.RC1' if ENV['rails'][0] == '4'
|
12
13
|
|
13
14
|
case ENV['orm']
|
14
15
|
when 'active_record'
|
15
|
-
gem 'activerecord'
|
16
|
+
gem 'activerecord'
|
16
17
|
|
17
18
|
when 'mongoid2'
|
18
19
|
gem 'mongoid', '2.5.1'
|
data/README.md
CHANGED
@@ -1,39 +1,31 @@
|
|
1
1
|
# Doorkeeper - awesome oauth provider for your Rails app.
|
2
2
|
|
3
3
|
[![Build Status](https://travis-ci.org/applicake/doorkeeper.png?branch=master)](https://travis-ci.org/applicake/doorkeeper)
|
4
|
-
[![Dependency Status](https://gemnasium.com/applicake/doorkeeper.png)](https://gemnasium.com/applicake/doorkeeper)
|
5
|
-
[![Code Climate](https://codeclimate.com/
|
6
|
-
[![Gem Version](https://
|
4
|
+
[![Dependency Status](https://gemnasium.com/applicake/doorkeeper.png?travis)](https://gemnasium.com/applicake/doorkeeper)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/applicake/doorkeeper.png)](https://codeclimate.com/github/applicake/doorkeeper)
|
6
|
+
[![Gem Version](https://badge.fury.io/rb/doorkeeper.png)](https://rubygems.org/gems/doorkeeper)
|
7
7
|
|
8
8
|
Doorkeeper is a gem that makes it easy to introduce OAuth 2 provider functionality to your application.
|
9
9
|
|
10
10
|
The gem is under constant development. It is based in the [version 22 of the OAuth specification](http://tools.ietf.org/html/draft-ietf-oauth-v2-22) and it still does not support all OAuth features.
|
11
11
|
|
12
|
-
|
12
|
+
## Useful links
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
### Ruby
|
17
|
-
|
18
|
-
- 1.8.7, 1.9.2 or 1.9.3
|
14
|
+
- For documentation, please check out our [wiki](https://github.com/applicake/doorkeeper/wiki)
|
15
|
+
- For general questions, please post it in our [google groups](https://groups.google.com/forum/?fromgroups#!forum/doorkeeper-gem) or [stack overflow](http://stackoverflow.com/questions/tagged/doorkeeper)
|
19
16
|
|
20
|
-
|
21
|
-
|
22
|
-
- 3.1.x or 3.2.x
|
23
|
-
|
24
|
-
### ORM
|
17
|
+
## Requirements
|
25
18
|
|
26
|
-
-
|
27
|
-
-
|
28
|
-
- Mongoid 3
|
29
|
-
- MongoMapper
|
19
|
+
- Ruby 1.9.3 or 2.0.0
|
20
|
+
- Rails 3.1, 3.2, 4.0
|
21
|
+
- ORM ActiveRecord, Mongoid 2, Mongoid 3, MongoMapper
|
30
22
|
|
31
23
|
## Installation
|
32
24
|
|
33
25
|
Put this in your Gemfile:
|
34
26
|
|
35
27
|
``` ruby
|
36
|
-
gem 'doorkeeper', '~> 0.
|
28
|
+
gem 'doorkeeper', '~> 0.7.0'
|
37
29
|
```
|
38
30
|
|
39
31
|
Run the installation generator with:
|
@@ -122,7 +114,7 @@ end
|
|
122
114
|
|
123
115
|
Side note: when using devise you have access to current_user as devise extends entire ActionController::Base with the current_#{mapping}.
|
124
116
|
|
125
|
-
If you are not using devise, you may want to check other ways of authentication [here](https://github.com/applicake/doorkeeper/wiki/Authenticating-using-Clearance-DIY).
|
117
|
+
If you are not using devise, you may want to check other ways of authentication [here](https://github.com/applicake/doorkeeper/wiki/Authenticating-using-Clearance-or-DIY).
|
126
118
|
|
127
119
|
## Protecting resources with OAuth (a.k.a your API endpoint)
|
128
120
|
|
@@ -3,7 +3,8 @@ module Doorkeeper
|
|
3
3
|
respond_to :html
|
4
4
|
|
5
5
|
before_filter :authenticate_admin!
|
6
|
-
|
6
|
+
before_filter :set_application, :only => [:show, :edit, :update, :destroy]
|
7
|
+
|
7
8
|
def index
|
8
9
|
@applications = Application.all
|
9
10
|
end
|
@@ -13,7 +14,7 @@ module Doorkeeper
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def create
|
16
|
-
@application = Application.new(
|
17
|
+
@application = Application.new(application_params)
|
17
18
|
if @application.save
|
18
19
|
flash[:notice] = I18n.t(:notice, :scope => [:doorkeeper, :flash, :applications, :create])
|
19
20
|
respond_with [:oauth, @application]
|
@@ -23,16 +24,13 @@ module Doorkeeper
|
|
23
24
|
end
|
24
25
|
|
25
26
|
def show
|
26
|
-
@application = Application.find(params[:id])
|
27
27
|
end
|
28
28
|
|
29
29
|
def edit
|
30
|
-
@application = Application.find(params[:id])
|
31
30
|
end
|
32
31
|
|
33
32
|
def update
|
34
|
-
@application
|
35
|
-
if @application.update_attributes(params[:application])
|
33
|
+
if @application.update_attributes(application_params)
|
36
34
|
flash[:notice] = I18n.t(:notice, :scope => [:doorkeeper, :flash, :applications, :update])
|
37
35
|
respond_with [:oauth, @application]
|
38
36
|
else
|
@@ -41,9 +39,22 @@ module Doorkeeper
|
|
41
39
|
end
|
42
40
|
|
43
41
|
def destroy
|
44
|
-
@application = Application.find(params[:id])
|
45
42
|
flash[:notice] = I18n.t(:notice, :scope => [:doorkeeper, :flash, :applications, :destroy]) if @application.destroy
|
46
43
|
redirect_to oauth_applications_url
|
47
44
|
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def set_application
|
49
|
+
@application = Application.find(params[:id])
|
50
|
+
end
|
51
|
+
|
52
|
+
def application_params
|
53
|
+
if params.respond_to?(:permit)
|
54
|
+
params.require(:application).permit(:name, :redirect_uri)
|
55
|
+
else
|
56
|
+
params[:application].slice(:name, :redirect_uri) rescue nil
|
57
|
+
end
|
58
|
+
end
|
48
59
|
end
|
49
60
|
end
|
@@ -11,7 +11,7 @@ class RedirectUriValidator < ActiveModel::EachValidator
|
|
11
11
|
record.errors.add(attribute, :fragment_present) unless uri.fragment.nil?
|
12
12
|
record.errors.add(attribute, :relative_uri) if uri.scheme.nil? || uri.host.nil?
|
13
13
|
record.errors.add(attribute, :has_query_parameter) unless uri.query.nil?
|
14
|
-
rescue URI::InvalidURIError
|
14
|
+
rescue URI::InvalidURIError
|
15
15
|
record.errors.add(attribute, :invalid_uri)
|
16
16
|
end
|
17
17
|
|
data/doorkeeper.gemspec
CHANGED
@@ -15,12 +15,13 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.test_files = `git ls-files -- test/*`.split("\n")
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
|
18
|
-
s.add_dependency "railties", "
|
18
|
+
s.add_dependency "railties", ">= 3.1"
|
19
|
+
s.add_dependency "jquery-rails", "~> 3.0.4"
|
19
20
|
|
20
21
|
s.add_development_dependency "sqlite3", "~> 1.3.5"
|
21
|
-
s.add_development_dependency "rspec-rails", "
|
22
|
+
s.add_development_dependency "rspec-rails", ">= 2.11.4"
|
22
23
|
s.add_development_dependency "capybara", "~> 1.1.2"
|
23
|
-
s.add_development_dependency "generator_spec", "~> 0.
|
24
|
+
s.add_development_dependency "generator_spec", "~> 0.9.0"
|
24
25
|
s.add_development_dependency "factory_girl", "~> 2.6.4"
|
25
26
|
s.add_development_dependency "timecop", "~> 0.5.2"
|
26
27
|
s.add_development_dependency "database_cleaner", "~> 0.9.1"
|
data/lib/doorkeeper/config.rb
CHANGED
@@ -153,7 +153,7 @@ module Doorkeeper
|
|
153
153
|
option :authorization_code_expires_in,:default => 600
|
154
154
|
option :orm, :default => :active_record
|
155
155
|
option :test_redirect_uri, :default => 'urn:ietf:wg:oauth:2.0:oob'
|
156
|
-
|
156
|
+
option :active_record_options, :default => {}
|
157
157
|
|
158
158
|
def refresh_token_enabled?
|
159
159
|
!!@refresh_token_enabled
|
@@ -15,15 +15,15 @@ module Doorkeeper
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def current_resource_owner
|
18
|
-
instance_eval
|
18
|
+
instance_eval(&Doorkeeper.configuration.authenticate_resource_owner)
|
19
19
|
end
|
20
20
|
|
21
21
|
def resource_owner_from_credentials
|
22
|
-
instance_eval
|
22
|
+
instance_eval(&Doorkeeper.configuration.resource_owner_from_credentials)
|
23
23
|
end
|
24
24
|
|
25
25
|
def authenticate_admin!
|
26
|
-
instance_eval
|
26
|
+
instance_eval(&Doorkeeper.configuration.authenticate_admin)
|
27
27
|
end
|
28
28
|
|
29
29
|
def server
|
@@ -8,8 +8,6 @@ module Doorkeeper
|
|
8
8
|
|
9
9
|
belongs_to :application, :class_name => "Doorkeeper::Application", :inverse_of => :access_grants
|
10
10
|
|
11
|
-
attr_accessible :resource_owner_id, :application_id, :expires_in, :redirect_uri, :scopes
|
12
|
-
|
13
11
|
validates :resource_owner_id, :application_id, :token, :expires_in, :redirect_uri, :presence => true
|
14
12
|
validates :token, :uniqueness => true
|
15
13
|
|
@@ -13,7 +13,6 @@ module Doorkeeper
|
|
13
13
|
validates :refresh_token, :uniqueness => true, :if => :use_refresh_token?
|
14
14
|
|
15
15
|
attr_accessor :use_refresh_token
|
16
|
-
attr_accessible :application_id, :resource_owner_id, :expires_in, :scopes, :use_refresh_token
|
17
16
|
|
18
17
|
before_validation :generate_token, :on => :create
|
19
18
|
before_validation :generate_refresh_token, :on => :create, :if => :use_refresh_token?
|
@@ -1,5 +1,9 @@
|
|
1
1
|
module Doorkeeper
|
2
2
|
class AccessGrant < ActiveRecord::Base
|
3
|
+
if Doorkeeper.configuration.active_record_options[:establish_connection]
|
4
|
+
establish_connection Doorkeeper.configuration.active_record_options[:establish_connection]
|
5
|
+
end
|
6
|
+
|
3
7
|
self.table_name = :oauth_access_grants
|
4
8
|
end
|
5
9
|
end
|
@@ -1,5 +1,9 @@
|
|
1
1
|
module Doorkeeper
|
2
2
|
class AccessToken < ActiveRecord::Base
|
3
|
+
if Doorkeeper.configuration.active_record_options[:establish_connection]
|
4
|
+
establish_connection Doorkeeper.configuration.active_record_options[:establish_connection]
|
5
|
+
end
|
6
|
+
|
3
7
|
self.table_name = :oauth_access_tokens
|
4
8
|
|
5
9
|
def self.delete_all_for(application_id, resource_owner)
|
@@ -1,18 +1,26 @@
|
|
1
1
|
module Doorkeeper
|
2
2
|
class Application < ActiveRecord::Base
|
3
|
+
if Doorkeeper.configuration.active_record_options[:establish_connection]
|
4
|
+
establish_connection Doorkeeper.configuration.active_record_options[:establish_connection]
|
5
|
+
end
|
6
|
+
|
3
7
|
self.table_name = :oauth_applications
|
4
8
|
|
5
|
-
|
6
|
-
|
9
|
+
if ActiveRecord::VERSION::MAJOR >= 4
|
10
|
+
has_many :authorized_tokens, -> { where(revoked_at: nil) }, class_name: "AccessToken"
|
11
|
+
else
|
12
|
+
has_many :authorized_tokens, class_name: "AccessToken", conditions: { revoked_at: nil }
|
13
|
+
end
|
14
|
+
has_many :authorized_applications, through: :authorized_tokens, source: :application
|
7
15
|
|
8
16
|
def self.column_names_with_table
|
9
|
-
self.column_names.map { |c| "
|
17
|
+
self.column_names.map { |c| "#{self.table_name}.#{c}" }
|
10
18
|
end
|
11
19
|
|
12
20
|
def self.authorized_for(resource_owner)
|
13
|
-
joins(:authorized_applications)
|
14
|
-
where(:
|
15
|
-
group(column_names_with_table.join(','))
|
21
|
+
joins(:authorized_applications)
|
22
|
+
.where(oauth_access_tokens: { resource_owner_id: resource_owner.id, revoked_at: nil })
|
23
|
+
.group(column_names_with_table.join(','))
|
16
24
|
end
|
17
25
|
end
|
18
26
|
end
|
@@ -7,13 +7,13 @@ module Doorkeeper
|
|
7
7
|
def self.from_string(string)
|
8
8
|
string ||= ""
|
9
9
|
new.tap do |scope|
|
10
|
-
scope.add
|
10
|
+
scope.add(*string.split)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
def self.from_array(array)
|
15
15
|
new.tap do |scope|
|
16
|
-
scope.add
|
16
|
+
scope.add(*array)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -28,7 +28,7 @@ module Doorkeeper
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def add(*scopes)
|
31
|
-
@scopes.push
|
31
|
+
@scopes.push(*scopes.map(&:to_sym))
|
32
32
|
@scopes.uniq!
|
33
33
|
end
|
34
34
|
|
@@ -16,8 +16,13 @@ module Doorkeeper
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.warn_if_using_mount_method!
|
19
|
-
|
20
|
-
|
19
|
+
paths = ::Rails.application.config.paths["config/routes"] ||
|
20
|
+
::Rails.application.config.paths["config/routes.rb"]
|
21
|
+
|
22
|
+
paths.each do |path|
|
23
|
+
if File.read(::Rails.root.join(path)) =~ %r[mount Doorkeeper::Engine]
|
24
|
+
warn "\n[DOORKEEPER] `mount Doorkeeper::Engine` is not being used anymore. Please replace it with `use_doorkeeper` in your #{path} file\n"
|
25
|
+
end
|
21
26
|
end
|
22
27
|
end
|
23
28
|
|
@@ -46,24 +51,31 @@ module Doorkeeper
|
|
46
51
|
end
|
47
52
|
|
48
53
|
def authorization_routes(mapping)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
54
|
+
routes.resource(
|
55
|
+
:authorization, :path => 'authorize',
|
56
|
+
:only => [:create, :update, :destroy],
|
57
|
+
:as => mapping[:as],
|
58
|
+
:controller => mapping[:controllers]
|
59
|
+
) do
|
60
|
+
routes.get '/:code', :action => :show, :on => :member
|
61
|
+
routes.get '/', :action => :new, :on => :member
|
62
|
+
end
|
55
63
|
end
|
56
64
|
|
57
65
|
def token_routes(mapping)
|
58
|
-
routes.
|
59
|
-
|
60
|
-
|
66
|
+
routes.resource(
|
67
|
+
:token, :path => 'token',
|
68
|
+
:only => [:create], :as => mapping[:as],
|
69
|
+
:controller => mapping[:controllers]
|
70
|
+
)
|
61
71
|
end
|
62
72
|
|
63
73
|
def token_info_routes(mapping)
|
64
|
-
routes.
|
65
|
-
|
66
|
-
|
74
|
+
routes.resource(
|
75
|
+
:token_info, :path => 'token/info',
|
76
|
+
:only => [:show], :as => mapping[:as],
|
77
|
+
:controller => mapping[:controllers]
|
78
|
+
)
|
67
79
|
end
|
68
80
|
|
69
81
|
def application_routes(mapping)
|
data/lib/doorkeeper/version.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require File.expand_path('../boot', __FILE__)
|
2
2
|
|
3
3
|
require "action_controller/railtie"
|
4
|
-
require "active_resource/railtie"
|
5
4
|
require "sprockets/railtie"
|
6
5
|
|
7
6
|
Bundler.require :default
|
@@ -31,8 +30,6 @@ module Dummy
|
|
31
30
|
# Activate observers that should always be running.
|
32
31
|
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
|
33
32
|
|
34
|
-
config.active_record.whitelist_attributes = true if defined?(ActiveRecord)
|
35
|
-
|
36
33
|
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
37
34
|
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
38
35
|
# config.time_zone = 'Central Time (US & Canada)'
|
@@ -4,4 +4,6 @@
|
|
4
4
|
# If you change this key, all old signed cookies will become invalid!
|
5
5
|
# Make sure the secret is at least 30 characters and all random,
|
6
6
|
# no regular words or you'll be exposed to dictionary attacks.
|
7
|
-
Dummy::Application.config.
|
7
|
+
Dummy::Application.config.secret_key_base =
|
8
|
+
Dummy::Application.config.secret_token =
|
9
|
+
'c00157b5a1bb6181792f0f4a8a080485de7bab9987e6cf159dc74c4f0573345c1bfa713b5d756e1491fc0b098567e8a619e2f8d268eda86a20a720d05d633780'
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: doorkeeper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.7.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Felipe Elias Philipp
|
@@ -10,148 +9,144 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-08-22 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
15
|
+
name: railties
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - '>='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '3.1'
|
16
21
|
type: :runtime
|
22
|
+
prerelease: false
|
17
23
|
version_requirements: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
24
|
requirements:
|
20
|
-
- -
|
25
|
+
- - '>='
|
21
26
|
- !ruby/object:Gem::Version
|
22
27
|
version: '3.1'
|
23
|
-
|
24
|
-
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: jquery-rails
|
25
30
|
requirement: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
31
|
requirements:
|
28
32
|
- - ~>
|
29
33
|
- !ruby/object:Gem::Version
|
30
|
-
version:
|
31
|
-
|
32
|
-
|
34
|
+
version: 3.0.4
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
33
37
|
version_requirements: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
38
|
requirements:
|
36
39
|
- - ~>
|
37
40
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
41
|
+
version: 3.0.4
|
42
|
+
- !ruby/object:Gem::Dependency
|
39
43
|
name: sqlite3
|
40
|
-
prerelease: false
|
41
44
|
requirement: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
45
|
requirements:
|
44
46
|
- - ~>
|
45
47
|
- !ruby/object:Gem::Version
|
46
48
|
version: 1.3.5
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
49
|
type: :development
|
50
|
+
prerelease: false
|
49
51
|
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
52
|
requirements:
|
52
53
|
- - ~>
|
53
54
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
+
version: 1.3.5
|
56
|
+
- !ruby/object:Gem::Dependency
|
55
57
|
name: rspec-rails
|
56
|
-
prerelease: false
|
57
58
|
requirement: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - '>='
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: 2.11.4
|
63
|
-
- !ruby/object:Gem::Dependency
|
64
63
|
type: :development
|
64
|
+
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
66
|
requirements:
|
68
|
-
- -
|
67
|
+
- - '>='
|
69
68
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
69
|
+
version: 2.11.4
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
71
|
name: capybara
|
72
|
-
prerelease: false
|
73
72
|
requirement: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
73
|
requirements:
|
76
74
|
- - ~>
|
77
75
|
- !ruby/object:Gem::Version
|
78
76
|
version: 1.1.2
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
77
|
type: :development
|
78
|
+
prerelease: false
|
81
79
|
version_requirements: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
80
|
requirements:
|
84
81
|
- - ~>
|
85
82
|
- !ruby/object:Gem::Version
|
86
|
-
version:
|
83
|
+
version: 1.1.2
|
84
|
+
- !ruby/object:Gem::Dependency
|
87
85
|
name: generator_spec
|
88
|
-
prerelease: false
|
89
86
|
requirement: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
87
|
requirements:
|
92
88
|
- - ~>
|
93
89
|
- !ruby/object:Gem::Version
|
94
|
-
version: 0.
|
95
|
-
- !ruby/object:Gem::Dependency
|
90
|
+
version: 0.9.0
|
96
91
|
type: :development
|
92
|
+
prerelease: false
|
97
93
|
version_requirements: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
94
|
requirements:
|
100
95
|
- - ~>
|
101
96
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
97
|
+
version: 0.9.0
|
98
|
+
- !ruby/object:Gem::Dependency
|
103
99
|
name: factory_girl
|
104
|
-
prerelease: false
|
105
100
|
requirement: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
101
|
requirements:
|
108
102
|
- - ~>
|
109
103
|
- !ruby/object:Gem::Version
|
110
104
|
version: 2.6.4
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
105
|
type: :development
|
106
|
+
prerelease: false
|
113
107
|
version_requirements: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
108
|
requirements:
|
116
109
|
- - ~>
|
117
110
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
111
|
+
version: 2.6.4
|
112
|
+
- !ruby/object:Gem::Dependency
|
119
113
|
name: timecop
|
120
|
-
prerelease: false
|
121
114
|
requirement: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
115
|
requirements:
|
124
116
|
- - ~>
|
125
117
|
- !ruby/object:Gem::Version
|
126
118
|
version: 0.5.2
|
127
|
-
- !ruby/object:Gem::Dependency
|
128
119
|
type: :development
|
120
|
+
prerelease: false
|
129
121
|
version_requirements: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
122
|
requirements:
|
132
123
|
- - ~>
|
133
124
|
- !ruby/object:Gem::Version
|
134
|
-
version: 0.
|
125
|
+
version: 0.5.2
|
126
|
+
- !ruby/object:Gem::Dependency
|
135
127
|
name: database_cleaner
|
136
|
-
prerelease: false
|
137
128
|
requirement: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
129
|
requirements:
|
140
130
|
- - ~>
|
141
131
|
- !ruby/object:Gem::Version
|
142
132
|
version: 0.9.1
|
143
|
-
- !ruby/object:Gem::Dependency
|
144
133
|
type: :development
|
134
|
+
prerelease: false
|
145
135
|
version_requirements: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
136
|
requirements:
|
148
137
|
- - ~>
|
149
138
|
- !ruby/object:Gem::Version
|
150
|
-
version:
|
139
|
+
version: 0.9.1
|
140
|
+
- !ruby/object:Gem::Dependency
|
151
141
|
name: bcrypt-ruby
|
152
|
-
prerelease: false
|
153
142
|
requirement: !ruby/object:Gem::Requirement
|
154
|
-
|
143
|
+
requirements:
|
144
|
+
- - ~>
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: 3.0.1
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
150
|
requirements:
|
156
151
|
- - ~>
|
157
152
|
- !ruby/object:Gem::Version
|
@@ -394,32 +389,26 @@ files:
|
|
394
389
|
- vendor/assets/stylesheets/doorkeeper/bootstrap.min.css
|
395
390
|
homepage: https://github.com/applicake/doorkeeper
|
396
391
|
licenses: []
|
392
|
+
metadata: {}
|
397
393
|
post_install_message:
|
398
394
|
rdoc_options: []
|
399
395
|
require_paths:
|
400
396
|
- lib
|
401
397
|
required_ruby_version: !ruby/object:Gem::Requirement
|
402
|
-
none: false
|
403
398
|
requirements:
|
404
|
-
- -
|
399
|
+
- - '>='
|
405
400
|
- !ruby/object:Gem::Version
|
406
|
-
segments:
|
407
|
-
- 0
|
408
401
|
version: '0'
|
409
|
-
hash: -1446926071548474952
|
410
402
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
411
|
-
none: false
|
412
403
|
requirements:
|
413
|
-
- -
|
404
|
+
- - '>='
|
414
405
|
- !ruby/object:Gem::Version
|
415
|
-
segments:
|
416
|
-
- 0
|
417
406
|
version: '0'
|
418
|
-
hash: -1446926071548474952
|
419
407
|
requirements: []
|
420
408
|
rubyforge_project:
|
421
|
-
rubygems_version:
|
409
|
+
rubygems_version: 2.0.3
|
422
410
|
signing_key:
|
423
|
-
specification_version:
|
411
|
+
specification_version: 4
|
424
412
|
summary: Doorkeeper is an OAuth 2 provider for Rails.
|
425
413
|
test_files: []
|
414
|
+
has_rdoc:
|