opro 0.4.0 → 0.4.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.
Files changed (37) hide show
  1. data/.travis.yml +1 -0
  2. data/CHANGELOG.md +13 -0
  3. data/Gemfile +6 -22
  4. data/Gemfile.lock +13 -9
  5. data/README.md +48 -34
  6. data/Rakefile +2 -2
  7. data/VERSION +1 -1
  8. data/app/controllers/opro/oauth/client_app_controller.rb +19 -1
  9. data/app/controllers/opro/oauth/docs_controller.rb +21 -11
  10. data/app/controllers/opro/oauth/tests_controller.rb +6 -6
  11. data/app/models/opro/oauth/auth_grant.rb +6 -4
  12. data/app/views/opro/oauth/auth/new.html.erb +21 -22
  13. data/app/views/opro/oauth/client_app/edit.html.erb +14 -0
  14. data/app/views/opro/oauth/client_app/index.html.erb +17 -16
  15. data/app/views/opro/oauth/client_app/new.html.erb +19 -13
  16. data/app/views/opro/oauth/client_app/show.html.erb +15 -0
  17. data/app/views/opro/oauth/docs/index.html.erb +20 -21
  18. data/app/views/opro/oauth/docs/markdown/curl.md.erb +10 -10
  19. data/app/views/opro/oauth/docs/markdown/oauth.md.erb +6 -6
  20. data/app/views/opro/oauth/docs/markdown/password_exchange.md.erb +9 -9
  21. data/app/views/opro/oauth/docs/markdown/permissions.md.erb +1 -1
  22. data/app/views/opro/oauth/docs/markdown/quick_start.md.erb +21 -21
  23. data/app/views/opro/oauth/docs/markdown/refresh_tokens.md.erb +4 -4
  24. data/app/views/opro/oauth/docs/show.html.erb +4 -2
  25. data/app/views/opro/oauth/tests/index.html.erb +7 -7
  26. data/lib/generators/opro/install_generator.rb +1 -1
  27. data/lib/opro.rb +6 -6
  28. data/lib/opro/controllers/concerns/error_messages.rb +3 -3
  29. data/lib/opro/controllers/concerns/permissions.rb +1 -1
  30. data/lib/opro/rails/routes.rb +12 -3
  31. data/opro.gemspec +15 -17
  32. data/test/integration/client_app_controller_test.rb +28 -1
  33. data/test/integration/docs_controller_test.rb +1 -0
  34. data/test/models/opro/oauth/auth_grant_test.rb +7 -0
  35. data/test/test_helper.rb +6 -3
  36. metadata +91 -41
  37. data/app/views/opro/oauth/client_app/create.html.erb +0 -15
@@ -2,11 +2,11 @@
2
2
 
3
3
  # Refresh Tokens
4
4
 
5
- Refresh tokens can be used to refresh an expiring `access_token`. When you receive your initial `access_token` you will receive a `request_token` in the json as well as an `expires_in` value. The `expires_in` value marks the seconds that the current `access_token` is still valid. After this value reaches zero a client application will not be able to use the existing `access_token`.
5
+ Refresh tokens can be used to refresh an expired `access_token`. When you receive your initial `access_token` you will receive a `request_token` in the JSON response, as well as an `expires_in` value. The `expires_in` value marks the seconds that the current `access_token` is still valid. After this value reaches zero, a client application will not be able to use the existing `access_token`.
6
6
 
7
7
  ## Refreshing an Access Token
8
8
 
9
- If a token has expired or you simply wish to receive a new `access_token` you can send your `refresh_token` along with your `app_id` and `app_secret` to `/oauth/token` and your access_token will be refreshed.
9
+ If a token has expired or you simply wish to receive a new `access_token` you can send your `refresh_token` along with your `client_id` and `client_secret` to `<%= oauth_token_url(:protocol => @protocol) %>` and your access_token will be refreshed.
10
10
 
11
11
 
12
12
 
@@ -15,8 +15,8 @@ If a token has expired or you simply wish to receive a new `access_token` you ca
15
15
  :client_secret => "14321myClientSecret8765",
16
16
  :refresh_token => "4857goldfish827423") %>'
17
17
 
18
- You'll want to make sure to replace `client_id`, `client_secret`, and `refresh_token` with your values.
18
+ Make sure to replace `client_id`, `client_secret`, and `refresh_token` with your values.
19
19
 
20
- You should get back a response that looks like this
20
+ You should get back a response that looks like this:
21
21
 
22
22
  $ {"access_token":"9693accessTokena7ca570bbaf","refresh_token":"3a3c129ad02b573de78e65af06c293f1","expires_in":7300 }
@@ -1,3 +1,5 @@
1
- <%= render_doc(@doc) %>
1
+ <div class="opro">
2
+ <%= render_doc(@doc) %>
2
3
 
3
- <%= link_to ' ← back', oauth_docs_path %>
4
+ <%= link_to ' ← back', oauth_docs_path %>
5
+ </div>
@@ -1,23 +1,23 @@
1
- <h2>Oauth Test</h2>
1
+ <h2>OAuth Test</h2>
2
2
 
3
- <p>Use this url scheme to test your OAuth application</p>
3
+ <p>Use this url scheme to test your OAuth application.</p>
4
4
 
5
5
  <h2>Test OAuth Allow</h2>
6
6
 
7
7
  <p>
8
- If you send a valid OAuth request to any oauth_test url such as <%= link_to oauth_test_path(:show_me_the_money), oauth_test_path(:show_me_the_money) %> you should see a response like this
8
+ If you send a valid OAuth request to any oauth_test url such as <%= link_to oauth_test_path(:show_me_the_money), oauth_test_path(:show_me_the_money) %>, you should see a response like this:
9
9
  </p>
10
- <pre><code><%= {:status => 200, :message => 'Oauth Worked!! ', :params => {:id => 'show_me_the_money', :access_token => '3948fuAlo10gnsu'} }.to_json %></code></pre>
10
+ <pre><code><%= {:status => 200, :message => 'OAuth Worked!! ', :params => {:id => 'show_me_the_money', :access_token => '3948fuAlo10gnsu'} }.to_json %></code></pre>
11
11
  <p>
12
- If the request is not valid you will receive a message detailing the errors.
12
+ If the request is not valid, you will receive a message detailing the errors.
13
13
  </p>
14
14
 
15
15
  <h2>Test OAuth Disallow</h2>
16
16
  <p>
17
17
  If you send a valid OAuth request using the 'DELETE' HTTP method to <%= oauth_test_path(:show_me_the_money) %> you should see a response like below.</p>
18
18
  <%= button_to oauth_test_path(:show_me_the_money), oauth_test_path(:show_me_the_money), :method => :delete, :id => 'deleteButton' %>
19
- <pre><code><%= {:status => 401, :message => 'Oauth is Disabled on this Action, this is the correct result!', :params => {:id => 'show_me_the_money', :access_token => '3948fuAlo10gnsu'}}.to_json %></code></pre>
19
+ <pre><code><%= {:status => 401, :message => 'OAuth is disabled on this action; this is the correct result!', :params => {:id => 'show_me_the_money', :access_token => '3948fuAlo10gnsu'}}.to_json %></code></pre>
20
20
 
21
21
  <p>
22
- If you get a 200 result, then there is something configured incorrectly on the server, please contact the administrator.
22
+ If you get a 200 result, then there is something configured incorrectly on the server; please contact the administrator.
23
23
  </p>
@@ -5,7 +5,7 @@ module Opro
5
5
  class InstallGenerator < Rails::Generators::Base
6
6
  source_root File.expand_path("../../templates", __FILE__)
7
7
 
8
- desc "Creates a Opro initializer"
8
+ desc "Creates an oPRO initializer"
9
9
  class_option :orm
10
10
 
11
11
  def copy_initializer
@@ -46,13 +46,13 @@ module Opro
46
46
 
47
47
  # Used by application controller to log user in
48
48
  def self.login(*args)
49
- raise 'login method not set, please specify Opro auth_strategy' if login_method.blank?
49
+ raise 'login method not set; please specify an oPRO auth_strategy in config/initializers/opro.rb' if login_method.blank?
50
50
  login_method.call(*args)
51
51
  end
52
52
 
53
53
  # Used by application controller to log user out
54
54
  def self.logout(*args)
55
- raise 'login method not set, please specify Opro auth_strategy' if login_method.blank?
55
+ raise 'logout method not set; please specify an oPRO auth_strategy in config/initializers/opro.rb' if login_method.blank?
56
56
  logout_method.call(*args)
57
57
  end
58
58
 
@@ -74,7 +74,7 @@ module Opro
74
74
  if block.present?
75
75
  @login_method = block
76
76
  else
77
- @login_method or raise 'login method not set, please specify Opro auth_strategy'
77
+ @login_method or raise 'login method not set; please specify an oPRO auth_strategy in config/initializers/opro.rb'
78
78
  end
79
79
  end
80
80
 
@@ -98,7 +98,7 @@ module Opro
98
98
  if block.present?
99
99
  @logout_method = block
100
100
  else
101
- @logout_method or raise 'login method not set, please specify Opro auth_strategy'
101
+ @logout_method or raise 'logout method not set; please specify an oPRO auth_strategy in config/initializers/opro.rb'
102
102
  end
103
103
  end
104
104
 
@@ -106,7 +106,7 @@ module Opro
106
106
  if block.present?
107
107
  @authenticate_user_method = block
108
108
  else
109
- @authenticate_user_method or raise 'authenticate_user_method not set, please specify Opro auth_strategy'
109
+ @authenticate_user_method or raise 'authenticate_user_method not set, please specify an oPRO auth_strategy in config/initializers/opro.rb'
110
110
  end
111
111
  end
112
112
 
@@ -147,7 +147,7 @@ module Opro
147
147
  @find_for_authentication ||= []
148
148
  @find_for_authentication << convert_to_lambda(&block)
149
149
  else
150
- @find_for_authentication or raise 'find_for_authentication not set, please specify Opro auth_strategy'
150
+ @find_for_authentication or raise 'find_for_authentication not set, please specify an oPRO auth_strategy in config/initializers/opro.rb'
151
151
  end
152
152
  end
153
153
 
@@ -3,8 +3,8 @@ module Opro::Controllers::Concerns::ErrorMessages
3
3
 
4
4
  def generate_oauth_error_message!
5
5
  msg = ""
6
- msg << ' - No OAuth Token Provided!' if oauth_access_token.blank?
7
- msg << ' - Allow OAuth set to false!' if allow_oauth? == false
6
+ msg << ' - No OAuth token provided!' if oauth_access_token.blank?
7
+ msg << ' - `Allow OAuth` is set to false!' if allow_oauth? == false
8
8
  msg << ' - OAuth user not found!' if oauth_user.blank?
9
9
  msg << ' - OAuth client has been rate limited' if oauth_client_over_rate_limit?
10
10
  msg = generate_oauth_permissions_error_message!(msg)
@@ -15,7 +15,7 @@ module Opro::Controllers::Concerns::ErrorMessages
15
15
  if !oauth_client_has_permissions?
16
16
  msg << ' - OAuth client not permitted'
17
17
  oauth_required_permissions.each do |permission|
18
- msg << "- #{permission} permission required;" unless oauth_client_has_permission?(permission)
18
+ msg << "- #{permission} permission required" unless oauth_client_has_permission?(permission)
19
19
  end
20
20
  end
21
21
  msg
@@ -80,7 +80,7 @@ module Opro::Controllers::Concerns::Permissions
80
80
  permissions = args
81
81
  prepend_before_filter(options) do
82
82
  permissions.each do |permission|
83
- raise "You must add #{permission.inspect} to the Opro request_permissions in an initializer" unless Opro.request_permissions.include?(permission)
83
+ raise "You must add #{permission.inspect} to the oPRO request_permissions setting in an initializer" unless Opro.request_permissions.include?(permission)
84
84
  controller.add_oauth_required_permission(permission)
85
85
  end
86
86
  end
@@ -10,9 +10,18 @@ module ActionDispatch::Routing
10
10
  match 'oauth/authorize' => 'opro/oauth/auth#create', :as => 'oauth_authorize'
11
11
  match 'oauth/token' => 'opro/oauth/token#create', :as => 'oauth_token'
12
12
 
13
- resources :oauth_docs, :controller => controllers[:oauth_docs] ||'opro/oauth/docs' unless skip_routes.include?(:docs)
14
- resources :oauth_tests, :controller => controllers[:oauth_tests] ||'opro/oauth/tests' unless skip_routes.include?(:tests)
15
- resources :oauth_client_apps, :controller => controllers[:oauth_client_apps]||'opro/oauth/client_app' unless skip_routes.include?(:client_apps)
13
+ unless skip_routes.include?(:client_apps)
14
+ oauth_client_apps = controllers[:oauth_client_apps]||'opro/oauth/client_app'
15
+ resources :oauth_client_apps, :controller => oauth_client_apps
16
+ end
17
+ unless skip_routes.include?(:docs)
18
+ oauth_docs = controllers[:oauth_docs]||'opro/oauth/docs'
19
+ resources :oauth_docs, :controller => oauth_docs, :only => [:index, :show]
20
+ end
21
+ unless skip_routes.include?(:tests)
22
+ oauth_tests = controllers[:oauth_tests] ||'opro/oauth/tests'
23
+ resources :oauth_tests, :controller => oauth_tests, :only => [:index, :show, :create, :destroy]
24
+ end
16
25
  end
17
26
  end
18
27
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "opro"
8
- s.version = "0.4.0"
8
+ s.version = "0.4.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["schneems"]
12
- s.date = "2012-08-09"
12
+ s.date = "2012-10-30"
13
13
  s.description = " Enable OAuth clients (iphone, android, web sites, etc.) to access and use your Rails application, what you do with it is up to you"
14
14
  s.email = "richard.schneeman@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -33,9 +33,10 @@ Gem::Specification.new do |s|
33
33
  "app/models/opro/oauth/auth_grant.rb",
34
34
  "app/models/opro/oauth/client_app.rb",
35
35
  "app/views/opro/oauth/auth/new.html.erb",
36
- "app/views/opro/oauth/client_app/create.html.erb",
36
+ "app/views/opro/oauth/client_app/edit.html.erb",
37
37
  "app/views/opro/oauth/client_app/index.html.erb",
38
38
  "app/views/opro/oauth/client_app/new.html.erb",
39
+ "app/views/opro/oauth/client_app/show.html.erb",
39
40
  "app/views/opro/oauth/docs/index.html.erb",
40
41
  "app/views/opro/oauth/docs/markdown/curl.md.erb",
41
42
  "app/views/opro/oauth/docs/markdown/oauth.md.erb",
@@ -123,8 +124,8 @@ Gem::Specification.new do |s|
123
124
  s.homepage = "http://github.com/schneems/opro"
124
125
  s.licenses = ["MIT"]
125
126
  s.require_paths = ["lib"]
126
- s.rubygems_version = "1.8.10"
127
- s.summary = "Opro turns your Rails application into an OAuth Provider"
127
+ s.rubygems_version = "1.8.24"
128
+ s.summary = "oPRO turns your Rails application into an OAuth Provider"
128
129
 
129
130
  if s.respond_to? :specification_version then
130
131
  s.specification_version = 3
@@ -132,46 +133,43 @@ Gem::Specification.new do |s|
132
133
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
133
134
  s.add_runtime_dependency(%q<activesupport>, [">= 3.1.0"])
134
135
  s.add_runtime_dependency(%q<rails>, [">= 3.1.0"])
135
- s.add_runtime_dependency(%q<bluecloth>, [">= 0"])
136
+ s.add_runtime_dependency(%q<kramdown>, [">= 0"])
136
137
  s.add_development_dependency(%q<mocha>, [">= 0"])
137
138
  s.add_development_dependency(%q<timecop>, [">= 0"])
138
139
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
139
140
  s.add_development_dependency(%q<bundler>, [">= 1.1.3"])
140
141
  s.add_development_dependency(%q<capybara>, [">= 0.4.0"])
141
- s.add_development_dependency(%q<sqlite3>, [">= 0"])
142
142
  s.add_development_dependency(%q<launchy>, [">= 0"])
143
+ s.add_development_dependency(%q<sqlite3>, [">= 0"])
144
+ s.add_development_dependency(%q<activerecord-jdbcsqlite3-adapter>, [">= 0"])
143
145
  s.add_development_dependency(%q<devise>, [">= 0"])
144
- s.add_development_dependency(%q<rcov>, [">= 0"])
145
- s.add_development_dependency(%q<simplecov>, [">= 0"])
146
146
  else
147
147
  s.add_dependency(%q<activesupport>, [">= 3.1.0"])
148
148
  s.add_dependency(%q<rails>, [">= 3.1.0"])
149
- s.add_dependency(%q<bluecloth>, [">= 0"])
149
+ s.add_dependency(%q<kramdown>, [">= 0"])
150
150
  s.add_dependency(%q<mocha>, [">= 0"])
151
151
  s.add_dependency(%q<timecop>, [">= 0"])
152
152
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
153
153
  s.add_dependency(%q<bundler>, [">= 1.1.3"])
154
154
  s.add_dependency(%q<capybara>, [">= 0.4.0"])
155
- s.add_dependency(%q<sqlite3>, [">= 0"])
156
155
  s.add_dependency(%q<launchy>, [">= 0"])
156
+ s.add_dependency(%q<sqlite3>, [">= 0"])
157
+ s.add_dependency(%q<activerecord-jdbcsqlite3-adapter>, [">= 0"])
157
158
  s.add_dependency(%q<devise>, [">= 0"])
158
- s.add_dependency(%q<rcov>, [">= 0"])
159
- s.add_dependency(%q<simplecov>, [">= 0"])
160
159
  end
161
160
  else
162
161
  s.add_dependency(%q<activesupport>, [">= 3.1.0"])
163
162
  s.add_dependency(%q<rails>, [">= 3.1.0"])
164
- s.add_dependency(%q<bluecloth>, [">= 0"])
163
+ s.add_dependency(%q<kramdown>, [">= 0"])
165
164
  s.add_dependency(%q<mocha>, [">= 0"])
166
165
  s.add_dependency(%q<timecop>, [">= 0"])
167
166
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
168
167
  s.add_dependency(%q<bundler>, [">= 1.1.3"])
169
168
  s.add_dependency(%q<capybara>, [">= 0.4.0"])
170
- s.add_dependency(%q<sqlite3>, [">= 0"])
171
169
  s.add_dependency(%q<launchy>, [">= 0"])
170
+ s.add_dependency(%q<sqlite3>, [">= 0"])
171
+ s.add_dependency(%q<activerecord-jdbcsqlite3-adapter>, [">= 0"])
172
172
  s.add_dependency(%q<devise>, [">= 0"])
173
- s.add_dependency(%q<rcov>, [">= 0"])
174
- s.add_dependency(%q<simplecov>, [">= 0"])
175
173
  end
176
174
  end
177
175
 
@@ -14,11 +14,38 @@ class ClientAppControllerTest < ActiveSupport::IntegrationCase
14
14
  fill_in 'opro_oauth_client_app_name', :with => rand_name
15
15
 
16
16
  click_button 'submitApp'
17
- assert_equal '/oauth_client_apps', current_path
17
+ assert_match /oauth_client_apps\/\d*/, current_path
18
18
 
19
19
  last_client = Opro::Oauth::ClientApp.order(:created_at).last
20
20
  assert has_content?(last_client.name)
21
21
  assert has_content?(last_client.client_id)
22
22
  assert has_content?(last_client.client_secret)
23
23
  end
24
+
25
+ test 'edit existing client application' do
26
+ app = create_client_app
27
+ as_user(app.user).visit oauth_client_app_path(app)
28
+
29
+ click_link "edit"
30
+
31
+ assert_equal edit_oauth_client_app_path(app), current_path
32
+ new_name = rand_name
33
+ old_name = app.name
34
+ refute new_name == old_name # smoke test
35
+
36
+ fill_in "opro_oauth_client_app_name", :with => new_name
37
+ click_button 'submitApp'
38
+
39
+ assert has_content?(new_name)
40
+ end
41
+
42
+ test 'index client applications' do
43
+ app = create_client_app
44
+ create_client_app(:user => app.user)
45
+ create_client_app(:user => app.user)
46
+
47
+ as_user(app.user).visit oauth_client_apps_path
48
+ assert_equal oauth_client_apps_path, current_path
49
+ end
50
+
24
51
  end
@@ -14,6 +14,7 @@ class DocsControllerTest < ActiveSupport::IntegrationCase
14
14
  doc_path = oauth_doc_path(:id => doc)
15
15
  visit doc_path
16
16
  assert_equal doc_path, current_path
17
+ refute has_content?("The page you were looking for doesn't exist")
17
18
  end
18
19
  end
19
20
  end
@@ -15,4 +15,11 @@ class OproAuthGrantTest < ActiveSupport::TestCase
15
15
  new_token = grant.unique_token_for(:access_token, token)
16
16
  assert_not_equal token, new_token
17
17
  end
18
+
19
+ test "no expiration without access_token expiration time" do
20
+ ::Opro.require_refresh_within = nil
21
+ grant = create_auth_grant
22
+ ::Opro.require_refresh_within = 1.day
23
+ refute grant.expired?
24
+ end
18
25
  end
@@ -1,9 +1,12 @@
1
1
  # Configure Rails Envinronment
2
2
  ENV["RAILS_ENV"] = "test"
3
3
 
4
- if RUBY_VERSION >= "1.9"
5
- require 'simplecov'
6
- SimpleCov.start 'rails'
4
+ begin
5
+ if RUBY_VERSION >= "1.9"
6
+ require 'simplecov'
7
+ SimpleCov.start 'rails'
8
+ end
9
+ rescue LoadError => e
7
10
  end
8
11
 
9
12
  ENGINE_RAILS_ROOT=File.join(File.dirname(__FILE__), '../')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-09 00:00:00.000000000Z
12
+ date: 2012-10-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &70236452285760 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70236452285760
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.1.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rails
27
- requirement: &70236452291300 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 3.1.0
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70236452291300
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 3.1.0
36
46
  - !ruby/object:Gem::Dependency
37
- name: bluecloth
38
- requirement: &70236452293960 !ruby/object:Gem::Requirement
47
+ name: kramdown
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70236452293960
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: mocha
49
- requirement: &70236452295480 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70236452295480
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: timecop
60
- requirement: &70236452297460 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *70236452297460
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: jeweler
71
- requirement: &70236456034720 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ~>
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: 1.6.4
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *70236456034720
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.6.4
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: bundler
82
- requirement: &70236456033900 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ! '>='
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: 1.1.3
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *70236456033900
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: 1.1.3
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: capybara
93
- requirement: &70236456033180 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ! '>='
@@ -98,21 +133,15 @@ dependencies:
98
133
  version: 0.4.0
99
134
  type: :development
100
135
  prerelease: false
101
- version_requirements: *70236456033180
102
- - !ruby/object:Gem::Dependency
103
- name: sqlite3
104
- requirement: &70236456032180 !ruby/object:Gem::Requirement
136
+ version_requirements: !ruby/object:Gem::Requirement
105
137
  none: false
106
138
  requirements:
107
139
  - - ! '>='
108
140
  - !ruby/object:Gem::Version
109
- version: '0'
110
- type: :development
111
- prerelease: false
112
- version_requirements: *70236456032180
141
+ version: 0.4.0
113
142
  - !ruby/object:Gem::Dependency
114
143
  name: launchy
115
- requirement: &70236456031660 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
116
145
  none: false
117
146
  requirements:
118
147
  - - ! '>='
@@ -120,10 +149,15 @@ dependencies:
120
149
  version: '0'
121
150
  type: :development
122
151
  prerelease: false
123
- version_requirements: *70236456031660
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
124
158
  - !ruby/object:Gem::Dependency
125
- name: devise
126
- requirement: &70236456030960 !ruby/object:Gem::Requirement
159
+ name: sqlite3
160
+ requirement: !ruby/object:Gem::Requirement
127
161
  none: false
128
162
  requirements:
129
163
  - - ! '>='
@@ -131,10 +165,15 @@ dependencies:
131
165
  version: '0'
132
166
  type: :development
133
167
  prerelease: false
134
- version_requirements: *70236456030960
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
135
174
  - !ruby/object:Gem::Dependency
136
- name: rcov
137
- requirement: &70236456030160 !ruby/object:Gem::Requirement
175
+ name: activerecord-jdbcsqlite3-adapter
176
+ requirement: !ruby/object:Gem::Requirement
138
177
  none: false
139
178
  requirements:
140
179
  - - ! '>='
@@ -142,10 +181,15 @@ dependencies:
142
181
  version: '0'
143
182
  type: :development
144
183
  prerelease: false
145
- version_requirements: *70236456030160
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
146
190
  - !ruby/object:Gem::Dependency
147
- name: simplecov
148
- requirement: &70236456029360 !ruby/object:Gem::Requirement
191
+ name: devise
192
+ requirement: !ruby/object:Gem::Requirement
149
193
  none: false
150
194
  requirements:
151
195
  - - ! '>='
@@ -153,7 +197,12 @@ dependencies:
153
197
  version: '0'
154
198
  type: :development
155
199
  prerelease: false
156
- version_requirements: *70236456029360
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
157
206
  description: ! ' Enable OAuth clients (iphone, android, web sites, etc.) to access
158
207
  and use your Rails application, what you do with it is up to you'
159
208
  email: richard.schneeman@gmail.com
@@ -179,9 +228,10 @@ files:
179
228
  - app/models/opro/oauth/auth_grant.rb
180
229
  - app/models/opro/oauth/client_app.rb
181
230
  - app/views/opro/oauth/auth/new.html.erb
182
- - app/views/opro/oauth/client_app/create.html.erb
231
+ - app/views/opro/oauth/client_app/edit.html.erb
183
232
  - app/views/opro/oauth/client_app/index.html.erb
184
233
  - app/views/opro/oauth/client_app/new.html.erb
234
+ - app/views/opro/oauth/client_app/show.html.erb
185
235
  - app/views/opro/oauth/docs/index.html.erb
186
236
  - app/views/opro/oauth/docs/markdown/curl.md.erb
187
237
  - app/views/opro/oauth/docs/markdown/oauth.md.erb
@@ -280,7 +330,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
280
330
  version: '0'
281
331
  segments:
282
332
  - 0
283
- hash: -2359912822064241279
333
+ hash: -3824248644036353497
284
334
  required_rubygems_version: !ruby/object:Gem::Requirement
285
335
  none: false
286
336
  requirements:
@@ -289,8 +339,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
289
339
  version: '0'
290
340
  requirements: []
291
341
  rubyforge_project:
292
- rubygems_version: 1.8.10
342
+ rubygems_version: 1.8.24
293
343
  signing_key:
294
344
  specification_version: 3
295
- summary: Opro turns your Rails application into an OAuth Provider
345
+ summary: oPRO turns your Rails application into an OAuth Provider
296
346
  test_files: []