opro 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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: []