rest-core 2.0.2 → 2.0.3
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.
- checksums.yaml +7 -0
- data/.travis.yml +1 -0
- data/CHANGES.md +7 -0
- data/lib/rest-core/client_oauth1.rb +2 -6
- data/lib/rest-core/middleware.rb +8 -2
- data/lib/rest-core/middleware/defaults.rb +1 -1
- data/lib/rest-core/middleware/oauth1_header.rb +0 -6
- data/lib/rest-core/version.rb +1 -1
- data/rest-core.gemspec +4 -4
- metadata +5 -9
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: 53be9b581bc7a4fcb1a7e1f1a42341c7298b9434
|
4
|
+
data.tar.gz: 75f8582f77c1fd69d12e1437f487f4785b49ed6d
|
5
|
+
!binary "U0hBNTEy":
|
6
|
+
metadata.gz: 164029833febdeb100e027761b780eadc937085193f8713340d48fe59975e30029c6a2a2651ea67073c400bcde86524b4cde8e445f802c1b43b820aea1c48c4b
|
7
|
+
data.tar.gz: 4a8d30cf61afbf17950ce3418b15791c9b948b12f14d3dc7915cf8dedad7239ed80f3cec91dbc8d5192d48149c35f2471bacbb68a7a0a4fc28d71a5b67db91c7
|
data/.travis.yml
CHANGED
data/CHANGES.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# CHANGES
|
2
2
|
|
3
|
+
## rest-core 2.0.3 -- 2013-04-01
|
4
|
+
|
5
|
+
* Use `URI.escape(string, UNRESERVED)` for URI escaping instead of
|
6
|
+
`CGI.escape`
|
7
|
+
|
8
|
+
* [`Defaults`] Use `respond_to_missing?` instead of `respond_to?`
|
9
|
+
|
3
10
|
## rest-core 2.0.2 -- 2013-02-07
|
4
11
|
|
5
12
|
### Bugs fixes
|
@@ -68,12 +68,8 @@ module RestCore::ClientOauth1
|
|
68
68
|
|
69
69
|
def calculate_sig hash=data
|
70
70
|
base = hash.reject{ |(k, _)| k == 'sig' }.sort.map{ |(k, v)|
|
71
|
-
"#{escape(k.to_s)}=#{escape(v.to_s)}"
|
71
|
+
"#{Middleware.escape(k.to_s)}=#{Middleware.escape(v.to_s)}"
|
72
72
|
}.join('&')
|
73
|
-
Digest::MD5.hexdigest("#{escape(consumer_secret)}&#{base}")
|
74
|
-
end
|
75
|
-
|
76
|
-
def escape string
|
77
|
-
CGI.escape(string).gsub('+', '%20')
|
73
|
+
Digest::MD5.hexdigest("#{Middleware.escape(consumer_secret)}&#{base}")
|
78
74
|
end
|
79
75
|
end
|
data/lib/rest-core/middleware.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
require 'rest-core'
|
3
3
|
|
4
|
-
require '
|
4
|
+
require 'uri'
|
5
5
|
|
6
6
|
module RestCore::Middleware
|
7
7
|
include RestCore
|
@@ -60,11 +60,17 @@ module RestCore::Middleware
|
|
60
60
|
q = if env[REQUEST_PATH] =~ /\?/ then '&' else '?' end
|
61
61
|
"#{env[REQUEST_PATH]}#{q}" \
|
62
62
|
"#{query.sort.map{ |(k, v)|
|
63
|
-
"#{
|
63
|
+
"#{escape(k.to_s)}=#{escape(v.to_s)}" }.join('&')}"
|
64
64
|
end
|
65
65
|
end
|
66
66
|
public :request_uri
|
67
67
|
|
68
|
+
UNRESERVED = /[^a-zA-Z0-9\-\.\_\~]/
|
69
|
+
def escape string
|
70
|
+
URI.escape(string, UNRESERVED)
|
71
|
+
end
|
72
|
+
public :escape
|
73
|
+
|
68
74
|
def string_keys hash
|
69
75
|
hash.inject({}){ |r, (k, v)|
|
70
76
|
if v.kind_of?(Hash)
|
@@ -30,7 +30,7 @@ class RestCore::Defaults
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
33
|
+
def respond_to_missing? msg, include_private=false
|
34
34
|
# since psych would call respond_to? before setting up
|
35
35
|
# instance variables when restoring ruby objects, we might
|
36
36
|
# be accessing undefined ivars in that case even all ivars are
|
@@ -6,8 +6,6 @@ require 'uri'
|
|
6
6
|
require 'openssl'
|
7
7
|
|
8
8
|
class RestCore::Oauth1Header
|
9
|
-
UNRESERVED = /[^a-zA-Z0-9\-\.\_\~]/
|
10
|
-
|
11
9
|
def self.members
|
12
10
|
[:request_token_path, :access_token_path, :authorize_path,
|
13
11
|
:consumer_key, :consumer_secret,
|
@@ -107,8 +105,4 @@ class RestCore::Oauth1Header
|
|
107
105
|
v.respond_to?(:empty) &&
|
108
106
|
v.strip.empty? == true) }
|
109
107
|
end
|
110
|
-
|
111
|
-
def escape string
|
112
|
-
URI.escape(string, UNRESERVED)
|
113
|
-
end
|
114
108
|
end
|
data/lib/rest-core/version.rb
CHANGED
data/rest-core.gemspec
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "rest-core"
|
5
|
-
s.version = "2.0.
|
5
|
+
s.version = "2.0.3"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = [
|
9
9
|
"Cardinal Blue",
|
10
10
|
"Lin Jen-Shin (godfat)"]
|
11
|
-
s.date = "2013-
|
11
|
+
s.date = "2013-04-01"
|
12
12
|
s.description = "Modular Ruby clients interface for REST APIs\n\nThere has been an explosion in the number of REST APIs available today.\nTo address the need for a way to access these APIs easily and elegantly,\nwe have developed rest-core, which consists of composable middleware\nthat allows you to build a REST client for any REST API. Or in the case of\ncommon APIs such as Facebook, Github, and Twitter, you can simply use the\ndedicated clients provided by [rest-more][].\n\n[rest-more]: https://github.com/cardinalblue/rest-more"
|
13
13
|
s.email = ["dev (XD) cardinalblue.com"]
|
14
14
|
s.files = [
|
@@ -94,7 +94,7 @@ Gem::Specification.new do |s|
|
|
94
94
|
"test/test_wrapper.rb"]
|
95
95
|
s.homepage = "https://github.com/cardinalblue/rest-core"
|
96
96
|
s.require_paths = ["lib"]
|
97
|
-
s.rubygems_version = "
|
97
|
+
s.rubygems_version = "2.0.0"
|
98
98
|
s.summary = "Modular Ruby clients interface for REST APIs"
|
99
99
|
s.test_files = [
|
100
100
|
"test/test_auth_basic.rb",
|
@@ -118,7 +118,7 @@ Gem::Specification.new do |s|
|
|
118
118
|
"test/test_wrapper.rb"]
|
119
119
|
|
120
120
|
if s.respond_to? :specification_version then
|
121
|
-
s.specification_version =
|
121
|
+
s.specification_version = 4
|
122
122
|
|
123
123
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
124
124
|
s.add_runtime_dependency(%q<rest-client>, [">= 0"])
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Cardinal Blue
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-04-01 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: rest-client
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ! '>='
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ! '>='
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -133,27 +130,26 @@ files:
|
|
133
130
|
- test/test_wrapper.rb
|
134
131
|
homepage: https://github.com/cardinalblue/rest-core
|
135
132
|
licenses: []
|
133
|
+
metadata: {}
|
136
134
|
post_install_message:
|
137
135
|
rdoc_options: []
|
138
136
|
require_paths:
|
139
137
|
- lib
|
140
138
|
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
-
none: false
|
142
139
|
requirements:
|
143
140
|
- - ! '>='
|
144
141
|
- !ruby/object:Gem::Version
|
145
142
|
version: '0'
|
146
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
-
none: false
|
148
144
|
requirements:
|
149
145
|
- - ! '>='
|
150
146
|
- !ruby/object:Gem::Version
|
151
147
|
version: '0'
|
152
148
|
requirements: []
|
153
149
|
rubyforge_project:
|
154
|
-
rubygems_version:
|
150
|
+
rubygems_version: 2.0.0
|
155
151
|
signing_key:
|
156
|
-
specification_version:
|
152
|
+
specification_version: 4
|
157
153
|
summary: Modular Ruby clients interface for REST APIs
|
158
154
|
test_files:
|
159
155
|
- test/test_auth_basic.rb
|