rest-graph 1.4.2 → 1.4.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.
- data/CHANGES +14 -1
- data/README +1 -1
- data/README.rdoc +1 -1
- data/example/rails/test/test_helper.rb +1 -0
- data/example/rails/test/unit/rails_util_test.rb +32 -0
- data/lib/rest-graph/rails_util.rb +13 -7
- data/lib/rest-graph/version.rb +1 -1
- data/lib/rest-graph.rb +3 -4
- data/test/test_parse.rb +8 -0
- metadata +5 -4
data/CHANGES
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
= rest-graph changes history
|
2
2
|
|
3
|
+
== rest-graph 1.4.3 -- 2010-08-06
|
4
|
+
|
5
|
+
* [RestGraph] Fixed a bug in RestGraph#fbs, which didn't join '&'.
|
6
|
+
Thanks, Andrew.
|
7
|
+
|
8
|
+
* [RailsUtil] Fixed a bug that wrongly rewrites request URI.
|
9
|
+
Previously it is processed by regular expressions,
|
10
|
+
now we're using URI.parse to handle this. Closed #4.
|
11
|
+
Thanks, Justin.
|
12
|
+
|
13
|
+
* [RailsUtil] Favor Request#fullpath over Request#request_uri,
|
14
|
+
which came from newer Rack and thus for Rails 3.
|
15
|
+
|
3
16
|
== rest-graph 1.4.2 -- 2010-08-05
|
4
17
|
|
5
18
|
* [RestGraph] Added RestGraph#fbs to generate fbs with correct sig,
|
@@ -9,7 +22,7 @@
|
|
9
22
|
* [RailsUtil] Fixed a bug that write_session didn't parse because parse_fbs!
|
10
23
|
reject the fbs due to missing sig.
|
11
24
|
* [RailsUtil] Fixed a bug that in Rails 3, must call safe_html to prevent
|
12
|
-
unintended HTML escaping.
|
25
|
+
unintended HTML escaping. Thanks, Justin.
|
13
26
|
|
14
27
|
* Thanks a lot, Andrew.
|
15
28
|
|
data/README
CHANGED
data/README.rdoc
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
|
2
|
+
require 'test_helper'
|
3
|
+
require 'rr'
|
4
|
+
|
5
|
+
class RailsUtilTest < ActiveSupport::TestCase
|
6
|
+
include RR::Adapters::TestUnit
|
7
|
+
|
8
|
+
def setup_mock url
|
9
|
+
mock(RestGraph::RailsUtil).rest_graph_in_canvas?{ false }
|
10
|
+
mock(RestGraph::RailsUtil).request{
|
11
|
+
mock(Object.new).url{ url }
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_rest_graph_normalized_request_uri_0
|
16
|
+
setup_mock( 'http://test.com/?code=123&lang=en')
|
17
|
+
assert_equal('http://test.com/?lang=en',
|
18
|
+
RestGraph::RailsUtil.rest_graph_normalized_request_uri)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_rest_graph_normalized_request_uri_1
|
22
|
+
setup_mock( 'http://test.com/?lang=en&code=123')
|
23
|
+
assert_equal('http://test.com/?lang=en',
|
24
|
+
RestGraph::RailsUtil.rest_graph_normalized_request_uri)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_rest_graph_normalized_request_uri_2
|
28
|
+
setup_mock( 'http://test.com/?session=abc&lang=en&code=123')
|
29
|
+
assert_equal('http://test.com/?lang=en',
|
30
|
+
RestGraph::RailsUtil.rest_graph_normalized_request_uri)
|
31
|
+
end
|
32
|
+
end
|
@@ -237,13 +237,19 @@ module RestGraph::RailsUtil
|
|
237
237
|
end
|
238
238
|
|
239
239
|
def rest_graph_normalized_request_uri
|
240
|
-
if rest_graph_in_canvas?
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
240
|
+
URI.parse(if rest_graph_in_canvas?
|
241
|
+
# rails 3 uses newer rack which has fullpath
|
242
|
+
"http://apps.facebook.com/#{rest_graph_oget(:canvas)}" +
|
243
|
+
(request.respond_to?(:fullpath) ?
|
244
|
+
request.fullpath : request.request_uri)
|
245
|
+
else
|
246
|
+
request.url
|
247
|
+
end).
|
248
|
+
tap{ |uri|
|
249
|
+
uri.query = uri.query.split('&').reject{ |q|
|
250
|
+
q =~ /^(code|session)\=/
|
251
|
+
}.join('&') if uri.query
|
252
|
+
}.to_s
|
247
253
|
end
|
248
254
|
|
249
255
|
def rest_graph_in_canvas?
|
data/lib/rest-graph/version.rb
CHANGED
data/lib/rest-graph.rb
CHANGED
@@ -131,7 +131,7 @@ class RestGraph < RestGraphStruct
|
|
131
131
|
end
|
132
132
|
|
133
133
|
def fbs
|
134
|
-
"#{fbs_without_sig(data)}&sig=#{calculate_sig(data)}"
|
134
|
+
"#{fbs_without_sig(data).join('&')}&sig=#{calculate_sig(data)}"
|
135
135
|
end
|
136
136
|
|
137
137
|
# facebook's new signed_request...
|
@@ -239,12 +239,11 @@ class RestGraph < RestGraphStruct
|
|
239
239
|
end
|
240
240
|
|
241
241
|
def calculate_sig cookies
|
242
|
-
Digest::MD5.hexdigest(fbs_without_sig(cookies) + secret)
|
242
|
+
Digest::MD5.hexdigest(fbs_without_sig(cookies).join + secret)
|
243
243
|
end
|
244
244
|
|
245
245
|
def fbs_without_sig cookies
|
246
|
-
cookies.reject{ |(k, v)| k == 'sig' }.sort.
|
247
|
-
map{ |a| a.join('=') }.join
|
246
|
+
cookies.reject{ |(k, v)| k == 'sig' }.sort.map{ |a| a.join('=') }
|
248
247
|
end
|
249
248
|
|
250
249
|
def cache_key uri
|
data/test/test_parse.rb
CHANGED
@@ -98,4 +98,12 @@ describe RestGraph do
|
|
98
98
|
rg.parse_fbs!(rg.fbs.sub(/sig\=\w+/, 'sig=abc')).should == nil
|
99
99
|
end
|
100
100
|
|
101
|
+
it 'could generate correct fbs with additional parameters' do
|
102
|
+
rg = RestGraph.new(:access_token => 'a', :secret => 'z')
|
103
|
+
rg.data['expires'] = '1234'
|
104
|
+
rg.parse_fbs!(rg.fbs) .should.kind_of?(Hash)
|
105
|
+
rg.data['access_token'] .should == 'a'
|
106
|
+
rg.data['expires'] .should == '1234'
|
107
|
+
end
|
108
|
+
|
101
109
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest-graph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 1.4.
|
9
|
+
- 3
|
10
|
+
version: 1.4.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Cardinal Blue
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-08-
|
19
|
+
date: 2010-08-06 00:00:00 +08:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- example/rails/script/server
|
178
178
|
- example/rails/test/functional/application_controller_test.rb
|
179
179
|
- example/rails/test/test_helper.rb
|
180
|
+
- example/rails/test/unit/rails_util_test.rb
|
180
181
|
- init.rb
|
181
182
|
- lib/rest-graph.rb
|
182
183
|
- lib/rest-graph/auto_load.rb
|