-
Notifications
You must be signed in to change notification settings - Fork 33
/
cloudkit.rb
92 lines (80 loc) · 2.12 KB
/
cloudkit.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
require 'rubygems'
require 'erb'
require 'json'
require 'digest/md5'
require 'openid'
require 'time'
require 'uuid'
require 'rack'
require 'oauth'
require 'oauth/consumer'
require 'oauth/request_proxy/rack_request'
require 'oauth/server'
require 'oauth/signature'
require 'cloudkit/constants'
require 'cloudkit/exceptions'
require 'cloudkit/util'
require 'cloudkit/uri'
require 'cloudkit/store/memory_table'
require 'cloudkit/store/resource'
require 'cloudkit/store/response'
require 'cloudkit/store/response_helpers'
require 'cloudkit/store'
require 'cloudkit/flash_session'
require 'cloudkit/oauth_filter'
require 'cloudkit/oauth_store'
require 'cloudkit/openid_filter'
require 'cloudkit/openid_store'
require 'cloudkit/rack/builder'
require 'cloudkit/rack/router'
require 'cloudkit/request'
require 'cloudkit/service'
require 'cloudkit/user_store'
include CloudKit::Constants
module CloudKit
VERSION = '0.11.2'
# Sets up the storage adapter. Defaults to development-time
# CloudKit::MemoryTable. Also supports Rufus Tokyo Table instances. See the
# examples directory for Cabinet and Tyrant Table examples.
def self.setup_storage_adapter(adapter_instance=nil)
@storage_adapter = adapter_instance || CloudKit::MemoryTable.new
end
# Return the shared storage adapter.
def self.storage_adapter
@storage_adapter
end
end
class Object
# Execute a method if it exists.
def try(method) # via defunkt
send method if respond_to? method
end
end
class Hash
# For each key in 'other' that has a non-nil value, merge it into the current
# Hash.
def filter_merge!(other={})
other.each_pair{|k,v| self.merge!(k => v) unless v.nil?}
self
end
# Change the key 'oldkey' to 'newkey'
def rekey!(oldkey, newkey)
if self.has_key? oldkey
self[newkey] = self.delete(oldkey)
end
nil
end
# Return a new Hash, excluding the specified list of keys.
def excluding(*keys)
trimmed = self.dup
keys.each{|k| trimmed.delete(k)}
trimmed
end
end
class Array
# Return a new Array, excluding the specified list of values.
def excluding(*keys)
trimmed = self.dup
trimmed - keys
end
end