cloudkit 0.10.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +11 -0
- data/README +7 -6
- data/Rakefile +13 -6
- data/TODO +7 -5
- data/cloudkit.gemspec +23 -23
- data/doc/curl.html +2 -2
- data/doc/index.html +4 -6
- data/examples/5.ru +2 -3
- data/examples/TOC +1 -3
- data/lib/cloudkit.rb +17 -10
- data/lib/cloudkit/constants.rb +0 -6
- data/lib/cloudkit/exceptions.rb +10 -0
- data/lib/cloudkit/flash_session.rb +1 -3
- data/lib/cloudkit/oauth_filter.rb +8 -16
- data/lib/cloudkit/oauth_store.rb +9 -13
- data/lib/cloudkit/openid_filter.rb +25 -7
- data/lib/cloudkit/openid_store.rb +14 -17
- data/lib/cloudkit/request.rb +6 -1
- data/lib/cloudkit/service.rb +15 -15
- data/lib/cloudkit/store.rb +97 -284
- data/lib/cloudkit/store/memory_table.rb +105 -0
- data/lib/cloudkit/store/resource.rb +256 -0
- data/lib/cloudkit/store/response_helpers.rb +0 -1
- data/lib/cloudkit/uri.rb +88 -0
- data/lib/cloudkit/user_store.rb +7 -14
- data/spec/ext_spec.rb +76 -0
- data/spec/flash_session_spec.rb +20 -0
- data/spec/memory_table_spec.rb +86 -0
- data/spec/oauth_filter_spec.rb +326 -0
- data/spec/oauth_store_spec.rb +10 -0
- data/spec/openid_filter_spec.rb +64 -0
- data/spec/openid_store_spec.rb +101 -0
- data/spec/rack_builder_spec.rb +39 -0
- data/spec/request_spec.rb +185 -0
- data/spec/resource_spec.rb +291 -0
- data/spec/service_spec.rb +974 -0
- data/{test/helper.rb → spec/spec_helper.rb} +14 -2
- data/spec/store_spec.rb +10 -0
- data/spec/uri_spec.rb +93 -0
- data/spec/user_store_spec.rb +10 -0
- data/spec/util_spec.rb +11 -0
- metadata +37 -61
- data/examples/6.ru +0 -10
- data/lib/cloudkit/store/adapter.rb +0 -8
- data/lib/cloudkit/store/extraction_view.rb +0 -57
- data/lib/cloudkit/store/sql_adapter.rb +0 -36
- data/test/ext_test.rb +0 -76
- data/test/flash_session_test.rb +0 -22
- data/test/oauth_filter_test.rb +0 -331
- data/test/oauth_store_test.rb +0 -12
- data/test/openid_filter_test.rb +0 -60
- data/test/openid_store_test.rb +0 -12
- data/test/rack_builder_test.rb +0 -41
- data/test/request_test.rb +0 -197
- data/test/service_test.rb +0 -971
- data/test/store_test.rb +0 -93
- data/test/user_store_test.rb +0 -12
- data/test/util_test.rb +0 -13
data/CHANGES
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
0.11.0
|
2
|
+
- Added Tokyo Cabinet storage
|
3
|
+
- Added MemoryTable development-time storage
|
4
|
+
- Improved router performance
|
5
|
+
- Added CloudKit::Resource model
|
6
|
+
- Added custom URIs for OpenID bypass
|
7
|
+
- Removed internal undocumented ExtractionViews
|
8
|
+
- Removed SQL backends
|
9
|
+
- Removed Sequel and Rack::Config dependencies
|
10
|
+
- Switched test framework to RSpec
|
11
|
+
|
1
12
|
0.10.1
|
2
13
|
- Updated oauth and sequel gem dependencies
|
3
14
|
- Fixed 410 responses for stale PUT operations
|
data/README
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
CloudKit is an Open Web JSON Appliance.
|
4
4
|
|
5
|
-
|
5
|
+
CloudKit provides schema-free, auto-versioned, RESTful JSON storage with optional OpenID and OAuth support, including OAuth Discovery.
|
6
6
|
|
7
|
-
CloudKit is Rack middleware
|
7
|
+
CloudKit is Rack middleware. It can be used on its own or alongside other Rack-based applications or middleware components like Rails, Merb or Sinatra.
|
8
8
|
|
9
9
|
===Install
|
10
10
|
|
@@ -35,12 +35,11 @@ An explicit version of example 2, minus the default developer landing page:
|
|
35
35
|
use CloudKit::Service, :collections => [:notes, :todos]
|
36
36
|
run lambda {|env| [200, {'Content-Type' => 'text/html', 'Content-Length' => '5'}, ['HELLO']]}
|
37
37
|
|
38
|
-
The same as above, using
|
38
|
+
The same as above, using Tokyo Cabinet:
|
39
39
|
|
40
40
|
require 'cloudkit'
|
41
|
-
|
42
|
-
|
43
|
-
end
|
41
|
+
require 'rufus/tokyo' # gem install rufus-tokyo
|
42
|
+
CloudKit.setup_storage_adapter(Rufus::Tokyo::Table.new('cloudkit.tdb'))
|
44
43
|
use Rack::Pool::Session
|
45
44
|
use CloudKit::OAuthFilter
|
46
45
|
use CloudKit::OpenIDFilter
|
@@ -59,6 +58,8 @@ Google Group: http://groups.google.com/group/cloudkit
|
|
59
58
|
|
60
59
|
Source: http://github.com/jcrosby/cloudkit
|
61
60
|
|
61
|
+
IRC: #cloudkit on freenode
|
62
|
+
|
62
63
|
===License
|
63
64
|
|
64
65
|
Copyright (c) 2008, 2009 Jon Crosby http://joncrosby.me
|
data/Rakefile
CHANGED
@@ -1,13 +1,20 @@
|
|
1
1
|
require 'rake/clean'
|
2
|
+
require 'spec/rake/spectask'
|
2
3
|
|
3
4
|
CLEAN.include 'doc/api'
|
4
5
|
|
5
|
-
task :default => :
|
6
|
+
task :default => :spec
|
6
7
|
|
7
|
-
desc
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
desc "Run all examples (or a specific spec with TASK=xxxx)"
|
9
|
+
Spec::Rake::SpecTask.new('spec') do |t|
|
10
|
+
t.spec_opts = ["-c"]
|
11
|
+
t.spec_files = begin
|
12
|
+
if ENV["TASK"]
|
13
|
+
ENV["TASK"].split(',').map { |task| "spec/**/#{task}_spec.rb" }
|
14
|
+
else
|
15
|
+
FileList['spec/**/*_spec.rb']
|
16
|
+
end
|
17
|
+
end
|
11
18
|
end
|
12
19
|
|
13
20
|
desc 'Generate rdoc'
|
@@ -25,7 +32,7 @@ task :rdoc do
|
|
25
32
|
--exclude=cloudkit.gemspec
|
26
33
|
--exclude=templates/*
|
27
34
|
--exclude=examples/*
|
28
|
-
--exclude=
|
35
|
+
--exclude=spec/*
|
29
36
|
--exclude=doc/index.html
|
30
37
|
--exclude=doc/curl.html
|
31
38
|
--exclude=doc/rest-api.html
|
data/TODO
CHANGED
@@ -3,19 +3,21 @@
|
|
3
3
|
- oauth token management
|
4
4
|
- oauth consumer registration
|
5
5
|
- acls i.e. allowed methods per user per uri
|
6
|
-
-
|
7
|
-
-
|
8
|
-
-
|
6
|
+
- jsonpath
|
7
|
+
- jsonquery
|
8
|
+
- jsonschema
|
9
|
+
- user lookup via a block for integration with existing stores
|
9
10
|
- custom templates for openid / oauth
|
10
11
|
|
11
12
|
Backlog
|
13
|
+
- method filtering on collections
|
14
|
+
- js functions as observers (validation, mapping, etc.)
|
15
|
+
- complete user data export
|
12
16
|
- batch updates (post, put, delete)
|
13
17
|
- expect header/100-continue
|
14
18
|
- deployable gem + admin app
|
15
19
|
- cappuccino adapter
|
16
20
|
- sproutcore adapter
|
17
|
-
- tokyocabinet
|
18
|
-
- ldap adapter for UserStore
|
19
21
|
- titanium middleware
|
20
22
|
version/upgrade middleware
|
21
23
|
rake automation
|
data/cloudkit.gemspec
CHANGED
@@ -2,8 +2,8 @@ Gem::Specification.new do |s|
|
|
2
2
|
s.specification_version = 2 if s.respond_to? :specification_version=
|
3
3
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
4
4
|
s.name = "cloudkit"
|
5
|
-
s.version = "0.
|
6
|
-
s.date = "2008-
|
5
|
+
s.version = "0.11.0"
|
6
|
+
s.date = "2008-03-09"
|
7
7
|
s.summary = "An Open Web JSON Appliance."
|
8
8
|
s.description = "An Open Web JSON Appliance."
|
9
9
|
s.authors = ["Jon Crosby"]
|
@@ -29,10 +29,10 @@ Gem::Specification.new do |s|
|
|
29
29
|
examples/3.ru
|
30
30
|
examples/4.ru
|
31
31
|
examples/5.ru
|
32
|
-
examples/6.ru
|
33
32
|
examples/TOC
|
34
33
|
lib/cloudkit.rb
|
35
34
|
lib/cloudkit/constants.rb
|
35
|
+
lib/cloudkit/exceptions.rb
|
36
36
|
lib/cloudkit/flash_session.rb
|
37
37
|
lib/cloudkit/oauth_filter.rb
|
38
38
|
lib/cloudkit/oauth_store.rb
|
@@ -43,42 +43,42 @@ Gem::Specification.new do |s|
|
|
43
43
|
lib/cloudkit/request.rb
|
44
44
|
lib/cloudkit/service.rb
|
45
45
|
lib/cloudkit/store.rb
|
46
|
-
lib/cloudkit/store/
|
47
|
-
lib/cloudkit/store/
|
46
|
+
lib/cloudkit/store/memory_table.rb
|
47
|
+
lib/cloudkit/store/resource.rb
|
48
48
|
lib/cloudkit/store/response.rb
|
49
49
|
lib/cloudkit/store/response_helpers.rb
|
50
|
-
lib/cloudkit/store/sql_adapter.rb
|
51
50
|
lib/cloudkit/templates/authorize_request_token.erb
|
52
51
|
lib/cloudkit/templates/oauth_descriptor.erb
|
53
52
|
lib/cloudkit/templates/oauth_meta.erb
|
54
53
|
lib/cloudkit/templates/openid_login.erb
|
55
54
|
lib/cloudkit/templates/request_authorization.erb
|
56
55
|
lib/cloudkit/templates/request_token_denied.erb
|
56
|
+
lib/cloudkit/uri.rb
|
57
57
|
lib/cloudkit/user_store.rb
|
58
58
|
lib/cloudkit/util.rb
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
59
|
+
spec/ext_spec.rb
|
60
|
+
spec/flash_session_spec.rb
|
61
|
+
spec/memory_table_spec.rb
|
62
|
+
spec/oauth_filter_spec.rb
|
63
|
+
spec/oauth_store_spec.rb
|
64
|
+
spec/openid_filter_spec.rb
|
65
|
+
spec/openid_store_spec.rb
|
66
|
+
spec/rack_builder_spec.rb
|
67
|
+
spec/request_spec.rb
|
68
|
+
spec/resource_spec.rb
|
69
|
+
spec/service_spec.rb
|
70
|
+
spec/spec_helper.rb
|
71
|
+
spec/store_spec.rb
|
72
|
+
spec/uri_spec.rb
|
73
|
+
spec/user_store_spec.rb
|
74
|
+
spec/util_spec.rb
|
72
75
|
]
|
73
|
-
s.test_files = s.files.select {|path| path =~ /^
|
76
|
+
s.test_files = s.files.select {|path| path =~ /^spec\/.*_spec.rb/}
|
74
77
|
s.rubyforge_project = "cloudkit"
|
75
78
|
s.rubygems_version = "1.1.1"
|
76
79
|
s.add_dependency 'rack', '~> 0.9'
|
77
|
-
s.add_dependency 'rack-config', '>= 0.9'
|
78
80
|
s.add_dependency 'uuid', '= 2.0.1'
|
79
|
-
s.add_dependency 'sequel', '~> 2.9'
|
80
81
|
s.add_dependency 'oauth', '~> 0.3'
|
81
82
|
s.add_dependency 'ruby-openid', '= 2.1.2'
|
82
83
|
s.add_dependency 'json', '= 1.1.3'
|
83
|
-
s.add_dependency 'sqlite3-ruby', '= 1.2.4'
|
84
84
|
end
|
data/doc/curl.html
CHANGED
@@ -38,13 +38,13 @@ If you haven't already installed the gem:
|
|
38
38
|
</p>
|
39
39
|
|
40
40
|
<p>
|
41
|
-
If you already have the gem, make sure you're running the latest version (0.
|
41
|
+
If you already have the gem, make sure you're running the latest version (0.11.0):
|
42
42
|
<div class="code">
|
43
43
|
$ gem list cloudkit<br/>
|
44
44
|
cloudkit (0.9.1) <-- need to upgrade<br/>
|
45
45
|
$ gem update cloudkit<br/>
|
46
46
|
$ gem list cloudkit<br/>
|
47
|
-
cloudkit (0.
|
47
|
+
cloudkit (0.11.0, 0.9.1) <-- 0.11.0 is now in the list
|
48
48
|
</div>
|
49
49
|
</p>
|
50
50
|
|
data/doc/index.html
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
</div>
|
25
25
|
<div class="meta">
|
26
26
|
<p class="wrapper">
|
27
|
-
Version 0.
|
27
|
+
Version 0.11 released with Tokyo Cabinet support. Install with <em>gem install cloudkit</em>.
|
28
28
|
</p>
|
29
29
|
</div>
|
30
30
|
<div class="wrapper intro-row">
|
@@ -36,13 +36,11 @@
|
|
36
36
|
</div>
|
37
37
|
<div class="column-two">
|
38
38
|
<p>
|
39
|
-
CloudKit provides RESTful JSON storage with optional OpenID and OAuth
|
40
|
-
support, including OAuth Discovery.
|
41
|
-
Services manage their own storage and do not require schema updates
|
42
|
-
when models change.
|
39
|
+
CloudKit provides schema-free, auto-versioned, RESTful JSON storage with optional OpenID and OAuth
|
40
|
+
support, including OAuth Discovery.
|
43
41
|
</p>
|
44
42
|
<p>
|
45
|
-
CloudKit is Rack middleware
|
43
|
+
CloudKit is Rack middleware. It can be used on its own or
|
46
44
|
alongside other Rack-based applications or middleware components such
|
47
45
|
as Rails, Merb or Sinatra.
|
48
46
|
</p>
|
data/examples/5.ru
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
$:.unshift File.expand_path(File.dirname(__FILE__)) + '/../lib'
|
2
2
|
require 'cloudkit'
|
3
|
-
|
4
|
-
|
5
|
-
end
|
3
|
+
require 'rufus/tokyo' # gem install rufus-tokyo
|
4
|
+
CloudKit.setup_storage_adapter(Rufus::Tokyo::Table.new('cloudkit.tdb'))
|
6
5
|
use Rack::Session::Pool
|
7
6
|
use CloudKit::OAuthFilter
|
8
7
|
use CloudKit::OpenIDFilter
|
data/examples/TOC
CHANGED
data/lib/cloudkit.rb
CHANGED
@@ -3,23 +3,22 @@ require 'erb'
|
|
3
3
|
require 'json'
|
4
4
|
require 'md5'
|
5
5
|
require 'openid'
|
6
|
-
require 'sequel'
|
7
6
|
require 'time'
|
8
7
|
require 'uuid'
|
9
8
|
require 'rack'
|
10
|
-
require 'rack/config'
|
11
9
|
require 'oauth'
|
12
10
|
require 'oauth/consumer'
|
13
11
|
require 'oauth/request_proxy/rack_request'
|
14
12
|
require 'oauth/server'
|
15
13
|
require 'oauth/signature'
|
16
14
|
require 'cloudkit/constants'
|
15
|
+
require 'cloudkit/exceptions'
|
17
16
|
require 'cloudkit/util'
|
18
|
-
require 'cloudkit/
|
19
|
-
require 'cloudkit/store/
|
17
|
+
require 'cloudkit/uri'
|
18
|
+
require 'cloudkit/store/memory_table'
|
19
|
+
require 'cloudkit/store/resource'
|
20
20
|
require 'cloudkit/store/response'
|
21
21
|
require 'cloudkit/store/response_helpers'
|
22
|
-
require 'cloudkit/store/sql_adapter'
|
23
22
|
require 'cloudkit/store'
|
24
23
|
require 'cloudkit/flash_session'
|
25
24
|
require 'cloudkit/oauth_filter'
|
@@ -35,7 +34,19 @@ require 'cloudkit/user_store'
|
|
35
34
|
include CloudKit::Constants
|
36
35
|
|
37
36
|
module CloudKit
|
38
|
-
VERSION = '0.
|
37
|
+
VERSION = '0.11.0'
|
38
|
+
|
39
|
+
# Sets up the storage adapter. Defaults to development-time
|
40
|
+
# CloudKit::MemoryTable. Also supports Rufus Tokyo Table instances. See the
|
41
|
+
# examples directory for a demonstration.
|
42
|
+
def self.setup_storage_adapter(adapter_instance=nil)
|
43
|
+
@storage_adapter = adapter_instance || CloudKit::MemoryTable.new
|
44
|
+
end
|
45
|
+
|
46
|
+
# Return the shared storage adapter.
|
47
|
+
def self.storage_adapter
|
48
|
+
@storage_adapter
|
49
|
+
end
|
39
50
|
end
|
40
51
|
|
41
52
|
class Object
|
@@ -52,7 +63,6 @@ class Hash
|
|
52
63
|
# Hash.
|
53
64
|
def filter_merge!(other={})
|
54
65
|
other.each_pair{|k,v| self.merge!(k => v) unless v.nil?}
|
55
|
-
|
56
66
|
self
|
57
67
|
end
|
58
68
|
|
@@ -61,7 +71,6 @@ class Hash
|
|
61
71
|
if self.has_key? oldkey
|
62
72
|
self[newkey] = self.delete(oldkey)
|
63
73
|
end
|
64
|
-
|
65
74
|
nil
|
66
75
|
end
|
67
76
|
|
@@ -69,7 +78,6 @@ class Hash
|
|
69
78
|
def excluding(*keys)
|
70
79
|
trimmed = self.dup
|
71
80
|
keys.each{|k| trimmed.delete(k)}
|
72
|
-
|
73
81
|
trimmed
|
74
82
|
end
|
75
83
|
end
|
@@ -79,7 +87,6 @@ class Array
|
|
79
87
|
# Return a new Array, excluding the specified list of values.
|
80
88
|
def excluding(*keys)
|
81
89
|
trimmed = self.dup
|
82
|
-
|
83
90
|
trimmed - keys
|
84
91
|
end
|
85
92
|
end
|
data/lib/cloudkit/constants.rb
CHANGED
@@ -23,9 +23,6 @@ module CloudKit
|
|
23
23
|
# The 'via' key for the OpenID filter.
|
24
24
|
CLOUDKIT_OPENID_FILTER_KEY = 'cloudkit.filter.openid'.freeze
|
25
25
|
|
26
|
-
# The key used to store the shared storage URI for the stack.
|
27
|
-
CLOUDKIT_STORAGE_URI = 'cloudkit.storage.uri'.freeze
|
28
|
-
|
29
26
|
# The key for the login URL used in OpenID and OAuth middleware
|
30
27
|
# components.
|
31
28
|
CLOUDKIT_LOGIN_URL = 'cloudkit.filter.openid.url.login'.freeze
|
@@ -33,8 +30,5 @@ module CloudKit
|
|
33
30
|
# The key for the logout URL used in OpenID and OAuth middleware
|
34
31
|
# components.
|
35
32
|
CLOUDKIT_LOGOUT_URL = 'cloudkit.filter.openid.url.logout'.freeze
|
36
|
-
|
37
|
-
# The outer namespace key for the JSON store.
|
38
|
-
CLOUDKIT_STORE = :cloudkit_json_store.freeze
|
39
33
|
end
|
40
34
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module CloudKit
|
2
|
+
|
3
|
+
# HistoricalIntegrityViolation exceptions are raised when an attempt is made
|
4
|
+
# to modify an archived or deleted version of a resource.
|
5
|
+
class HistoricalIntegrityViolation < Exception; end
|
6
|
+
|
7
|
+
# InvalidURIFormat exceptions are raised during attempts to get or generate
|
8
|
+
# cannonical URIs from non-collection or non-resource URIs.
|
9
|
+
class InvalidURIFormat < Exception; end
|
10
|
+
end
|
@@ -31,7 +31,7 @@ module CloudKit
|
|
31
31
|
|
32
32
|
def call(env)
|
33
33
|
@@lock.synchronize do
|
34
|
-
@@store = OAuthStore.new
|
34
|
+
@@store = OAuthStore.new
|
35
35
|
end unless @@store
|
36
36
|
|
37
37
|
request = Request.new(env)
|
@@ -82,8 +82,7 @@ module CloudKit
|
|
82
82
|
def create_request_token(request)
|
83
83
|
return challenge(request, 'invalid nonce') unless valid_nonce?(request)
|
84
84
|
|
85
|
-
consumer_result = @@store.get(
|
86
|
-
"/cloudkit_oauth_consumers/#{request[:oauth_consumer_key]}")
|
85
|
+
consumer_result = @@store.get("/cloudkit_oauth_consumers/#{request[:oauth_consumer_key]}")
|
87
86
|
unless consumer_result.status == 200
|
88
87
|
return challenge(request, 'invalid consumer')
|
89
88
|
end
|
@@ -105,8 +104,7 @@ module CloudKit
|
|
105
104
|
def request_authorization(request)
|
106
105
|
return login_redirect(request) unless request.current_user
|
107
106
|
|
108
|
-
request_token_result = @@store.get(
|
109
|
-
"/cloudkit_oauth_request_tokens/#{request[:oauth_token]}")
|
107
|
+
request_token_result = @@store.get("/cloudkit_oauth_request_tokens/#{request[:oauth_token]}")
|
110
108
|
unless request_token_result.status == 200
|
111
109
|
return challenge(request, 'invalid request token')
|
112
110
|
end
|
@@ -118,8 +116,7 @@ module CloudKit
|
|
118
116
|
def authorize_request_token(request)
|
119
117
|
return login_redirect(request) unless request.current_user
|
120
118
|
|
121
|
-
request_token_response = @@store.get(
|
122
|
-
"/cloudkit_oauth_request_tokens/#{request.last_path_element}")
|
119
|
+
request_token_response = @@store.get("/cloudkit_oauth_request_tokens/#{request.last_path_element}")
|
123
120
|
request_token = request_token_response.parsed_content
|
124
121
|
if request_token['authorized_at']
|
125
122
|
return challenge(request, 'invalid request token')
|
@@ -138,8 +135,7 @@ module CloudKit
|
|
138
135
|
def deny_request_token(request)
|
139
136
|
return login_redirect(request) unless request.current_user
|
140
137
|
|
141
|
-
request_token_response = @@store.get(
|
142
|
-
"/cloudkit_oauth_request_tokens/#{request.last_path_element}")
|
138
|
+
request_token_response = @@store.get("/cloudkit_oauth_request_tokens/#{request.last_path_element}")
|
143
139
|
@@store.delete(
|
144
140
|
"/cloudkit_oauth_request_tokens/#{request.last_path_element}",
|
145
141
|
:etag => request_token_response.etag)
|
@@ -149,15 +145,13 @@ module CloudKit
|
|
149
145
|
def create_access_token(request)
|
150
146
|
return challenge(request, 'invalid nonce') unless valid_nonce?(request)
|
151
147
|
|
152
|
-
consumer_response = @@store.get(
|
153
|
-
"/cloudkit_oauth_consumers/#{request[:oauth_consumer_key]}")
|
148
|
+
consumer_response = @@store.get("/cloudkit_oauth_consumers/#{request[:oauth_consumer_key]}")
|
154
149
|
unless consumer_response.status == 200
|
155
150
|
return challenge(request, 'invalid consumer')
|
156
151
|
end
|
157
152
|
|
158
153
|
consumer = consumer_response.parsed_content
|
159
|
-
request_token_response = @@store.get(
|
160
|
-
"/cloudkit_oauth_request_tokens/#{request[:oauth_token]}")
|
154
|
+
request_token_response = @@store.get("/cloudkit_oauth_request_tokens/#{request[:oauth_token]}")
|
161
155
|
unless request_token_response.status == 200
|
162
156
|
return challenge(request, 'invalid request token')
|
163
157
|
end
|
@@ -180,9 +174,7 @@ module CloudKit
|
|
180
174
|
:consumer_key => request[:oauth_consumer_key],
|
181
175
|
:consumer_secret => consumer['secret'],
|
182
176
|
:user_id => request_token['user_id'])
|
183
|
-
@@store.put(
|
184
|
-
"/cloudkit_oauth_tokens/#{token_id}",
|
185
|
-
:json => token_data)
|
177
|
+
@@store.put("/cloudkit_oauth_tokens/#{token_id}", :json => token_data)
|
186
178
|
@@store.delete(
|
187
179
|
"/cloudkit_oauth_request_tokens/#{request[:oauth_token]}",
|
188
180
|
:etag => request_token_response.etag)
|