rest-graph 1.9.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml ADDED
@@ -0,0 +1,13 @@
1
+ script: 'git submodule update --init; bundle exec rake test:travis'
2
+
3
+ env:
4
+ - 'RESTGRAPH=rest-graph'
5
+ - 'RESTGRAPH=rails2'
6
+ - 'RESTGRAPH=rails3'
7
+
8
+ rvm:
9
+ - 1.8.7
10
+ - 1.9.2
11
+ - 1.9.3
12
+ - rbx-2.0
13
+ - jruby
@@ -1,10 +1,37 @@
1
- = rest-graph changes history
1
+ # CHANGES
2
2
 
3
- == rest-graph 1.9.1 -- 2011-06-07
3
+ ## rest-graph 2.0.0 -- 2011-10-08
4
+
5
+ We have moved the development from rest-graph to [rest-core][].
6
+ By now on, we would only fix bugs in rest-graph rather than adding
7
+ features, and we would only backport important changes from rest-core
8
+ once in a period. If you want the latest goodies, please see [rest-core][]
9
+ Otherwise, you can stay with rest-graph with bugs fixes.
10
+
11
+ [rest-core]: https://github.com/cardinalblue/rest-core
12
+
13
+ * [RestGraph] Added `RestGraph#parse_fbsr!` which can parse Facebook's new
14
+ cookie. Also, `RestGraph#parse_cookies!` would look for that too.
15
+ * [RestGraph] Added `expires_in` attribute which would be passed to cache.
16
+ The default value is 600 seconds. No effect if there's no cache, or if
17
+ the cache didn't support `:expires_in` option.
18
+ * [RestGraph] Now `RestGraph#initialize` accepts string keys.
19
+ * [RestGraph] We don't support em-http-request >= 1 at the moment.
20
+ * [RestGraph] Fixed that parsing an invalid signed_request would raise an
21
+ error. From now on it would simply ignore it and wipe out the data.
22
+
23
+ * [RailsUtil] Now by default, RestGraph would cache all GET requests in
24
+ `Rails.cache` for 600 seconds. You can change this by running:
25
+
26
+ rest_graph_setup(:cache => nil, :expires_in => 3600)
27
+
28
+ To disable cache or lengthen/shorten the lifetime of the cache result.
29
+
30
+ ## rest-graph 1.9.1 -- 2011-06-07
4
31
 
5
32
  * [RestGraph] Fixed parse_fbs! where fbs contains some json. (thanks Bruce)
6
33
 
7
- == rest-graph 1.9.0 -- 2011-05-26
34
+ ## rest-graph 1.9.0 -- 2011-05-26
8
35
 
9
36
  * [RestGraph] Removed deprecated rest-graph/auto_load.rb, and
10
37
  rest-graph/autoload.rb. Please simply require 'rest-graph'
@@ -35,7 +62,7 @@
35
62
  cause problems, thus we have provided this option to use POST
36
63
  instead.
37
64
 
38
- == rest-graph 1.8.0 -- 2011-03-08
65
+ ## rest-graph 1.8.0 -- 2011-03-08
39
66
 
40
67
  * [RestGraph] Now require 'rest-graph/autoload' is deprecated, simply use
41
68
  require 'rest-graph' would require anything you "might" or
@@ -79,7 +106,7 @@
79
106
 
80
107
  * [FacebookUtil] Added some very Facebook specific utilities.
81
108
 
82
- == rest-graph 1.7.0 -- 2010-12-30
109
+ ## rest-graph 1.7.0 -- 2010-12-30
83
110
 
84
111
  * [RestGraph] Renamed rest-graph/auto_load to rest-graph/autoload; auto_load
85
112
  would be still working for a while.
@@ -101,7 +128,7 @@
101
128
  * [RailsUtil] Extract rest_graph_filter_uri, which would filter session,
102
129
  code, singed_request, etc. on the redirecting URI.
103
130
 
104
- == rest-graph 1.6.0 -- 2010-11-19
131
+ ## rest-graph 1.6.0 -- 2010-11-19
105
132
 
106
133
  * [RestGraph] Added em-http as an alternate for HTTP client. So rest-client
107
134
  is no longer a must-have dependency. Pass :async => true to
@@ -179,7 +206,7 @@
179
206
  RestGraph::TestUtil.history. This would get cleaned up in
180
207
  RestGraph::TestUtil.teardown as well.
181
208
 
182
- == rest-graph 1.5.0 -- 2010-10-11
209
+ ## rest-graph 1.5.0 -- 2010-10-11
183
210
 
184
211
  * [RestGraph] Make sure RestGraph::Error#message is string, that way,
185
212
  irb could print out error message correctly. Introduced
@@ -246,7 +273,7 @@ should be formatted by "#{app_id}|#{secret}" instead of the usual one.
246
273
 
247
274
  * [RailsUtil] URI.encode before URI.parse for broken URL Facebook passed.
248
275
 
249
- == rest-graph 1.4.6 -- 2010-09-01
276
+ ## rest-graph 1.4.6 -- 2010-09-01
250
277
 
251
278
  * [RestGraph] Now it will try to pick yajl-ruby or json gem from memory first,
252
279
  if it's not there, then try to load one and try to pick one
@@ -277,7 +304,7 @@ should be formatted by "#{app_id}|#{secret}" instead of the usual one.
277
304
  Now it's:
278
305
  `rest_graph_authorize(message)`
279
306
 
280
- == rest-graph 1.4.5 -- 2010-08-07
307
+ ## rest-graph 1.4.5 -- 2010-08-07
281
308
 
282
309
  * [RestGraph] Treat oauth_token as access_token as well. This came from
283
310
  Facebook's new signed_request. Why didn't they choose
@@ -290,12 +317,12 @@ should be formatted by "#{app_id}|#{secret}" instead of the usual one.
290
317
  fbs with user code, instead of using sessions/cookies.
291
318
  That way, you can save fbs into memcache or somewhere.
292
319
 
293
- == rest-graph 1.4.4 -- 2010-08-06
320
+ ## rest-graph 1.4.4 -- 2010-08-06
294
321
 
295
322
  * [RailsUtil] Fixed a bug that empty query appends a question mark,
296
323
  that confuses Facebook, so that redirect_uri didn't match.
297
324
 
298
- == rest-graph 1.4.3 -- 2010-08-06
325
+ ## rest-graph 1.4.3 -- 2010-08-06
299
326
 
300
327
  * [RestGraph] Fixed a bug in RestGraph#fbs, which didn't join '&'.
301
328
  Thanks, Andrew.
@@ -308,7 +335,7 @@ should be formatted by "#{app_id}|#{secret}" instead of the usual one.
308
335
  * [RailsUtil] Favor Request#fullpath over Request#request_uri,
309
336
  which came from newer Rack and thus for Rails 3.
310
337
 
311
- == rest-graph 1.4.2 -- 2010-08-05
338
+ ## rest-graph 1.4.2 -- 2010-08-05
312
339
 
313
340
  * [RestGraph] Added RestGraph#fbs to generate fbs with correct sig,
314
341
  to be used for future parse_fbs! See the bug in RailsUtil.
@@ -321,7 +348,7 @@ should be formatted by "#{app_id}|#{secret}" instead of the usual one.
321
348
 
322
349
  * Thanks a lot, Andrew.
323
350
 
324
- == rest-graph 1.4.1 -- 2010-08-04
351
+ ## rest-graph 1.4.1 -- 2010-08-04
325
352
 
326
353
  * [RestGraph] Call error_handler when response contains error_code as well,
327
354
  which came from FQL response. Thanks Florent.
@@ -341,7 +368,7 @@ should be formatted by "#{app_id}|#{secret}" instead of the usual one.
341
368
  * [RailsUtil] Favor signed_request over session in rest_graph_setup
342
369
  * [RailsUtil] Now it's possible to setup all options in rest-graph.yaml.
343
370
 
344
- == rest-graph 1.4.0 -- 2010-07-15
371
+ ## rest-graph 1.4.0 -- 2010-07-15
345
372
 
346
373
  Changes only for RailsUtil, the core (rest-graph.rb) is pretty stable for now.
347
374
 
@@ -356,7 +383,8 @@ Changes only for RailsUtil, the core (rest-graph.rb) is pretty stable for now.
356
383
  * Now :auto_authorize_scope default to nothing.
357
384
  * Now there's :write_session option to save fbs in session, default to false.
358
385
 
359
- == rest-graph 1.3.0 -- 2010-06-11
386
+ ## rest-graph 1.3.0 -- 2010-06-11
387
+
360
388
  * Now rest-graph is rescuing all exceptions from rest-client.
361
389
  * Added RestGraph#exchange_sessions to exchange old sessions to access tokens.
362
390
 
@@ -378,7 +406,8 @@ for RailsUtil:
378
406
  http://github.com/cardinalblue/rest-graph/tree/rest-graph-1.3.0/example
379
407
  * url_for and link_to would auto pass :host option if it's inside canvas.
380
408
 
381
- == rest-graph 1.2.1 -- 2010-06-02
409
+ ## rest-graph 1.2.1 -- 2010-06-02
410
+
382
411
  * Deprecated RailsController, use RailsUtil instead.
383
412
  * Fixed a bug that passing access_token in query string
384
413
  in RestGraph#authorize_url
@@ -386,7 +415,8 @@ for RailsUtil:
386
415
  Thanks betelgeuse, closes #1
387
416
  http://github.com/cardinalblue/rest-graph/issues/issue/1
388
417
 
389
- == rest-graph 1.2.0 -- 2010-05-27
418
+ ## rest-graph 1.2.0 -- 2010-05-27
419
+
390
420
  * Add RestGraph#parse_json!
391
421
  * Add RailsController to help you integrate into Rails.
392
422
  * Simplify arguments checking and require dependency.
@@ -419,12 +449,14 @@ for RailsUtil:
419
449
  * Add RestGraph#fql_multi to do FQL multiquery. Thanks Ethan Czahor
420
450
  Usage: rg.fql_multi(:query1 => 'SELECT ...', :query2 => 'SELECT ...')
421
451
 
422
- == rest-graph 1.1.1 -- 2010-05-21
452
+ ## rest-graph 1.1.1 -- 2010-05-21
453
+
423
454
  * Add oauth realted utilites -- authorize_url and authorize!
424
455
  * Fixed a bug that in Ruby 1.8.7-, nil =~ /regexp/ equals to false.
425
456
  It is nil as expected in Ruby 1.9.1+
426
457
 
427
- == rest-graph 1.1.0 -- 2010-05-13
458
+ ## rest-graph 1.1.0 -- 2010-05-13
459
+
428
460
  * Main repository was moved to http://github.com/cardinalblue/rest-graph
429
461
  Sorry for the inconvenience. I'll keep pushing to both repositories until
430
462
  I am too lazy to do that.
@@ -439,20 +471,24 @@ for RailsUtil:
439
471
  * Config could be loaded manually as well. require 'rest-graph/load_config'
440
472
  and RestGraph::LoadConfig.load_config!('path/to/rest-graph.yaml', 'env')
441
473
 
442
- == rest-graph 1.0.0 -- 2010-05-06
474
+ ## rest-graph 1.0.0 -- 2010-05-06
475
+
443
476
  * now access_token is saved in data attributes.
444
477
  * cookies related methods got renamed, and saved all data in RestGraph
445
478
  * parse failed would return nil, while data is always a hash
446
479
 
447
- == rest-graph 0.9.0 -- 2010-05-04
480
+ ## rest-graph 0.9.0 -- 2010-05-04
481
+
448
482
  * renamed :server option to :graph_server
449
483
  * added :fql_server option and fql support.
450
484
  * cookies related parsing utility is now instance methods.
451
485
  you'll need to pass app_id and secret when initializing
452
486
  * if sig in cookies is bad, then it won't extract the access_token
453
487
 
454
- == rest-graph 0.8.1 -- 2010-05-03
488
+ ## rest-graph 0.8.1 -- 2010-05-03
489
+
455
490
  * added access_token parsing utility
456
491
 
457
- == rest-graph 0.8.0 -- 2010-05-03
492
+ ## rest-graph 0.8.0 -- 2010-05-03
493
+
458
494
  * release early, release often
data/Gemfile CHANGED
@@ -1,24 +1,29 @@
1
1
 
2
2
  source 'http://rubygems.org'
3
3
 
4
- group :test do
5
- # pick one http client
6
- gem 'rest-client', '>=1.6'
7
- gem 'em-http-request'
4
+ gemspec
8
5
 
9
- # optional
10
- gem 'rack'
6
+ gem 'rake'
7
+ gem 'bacon'
8
+ gem 'rr'
9
+ gem 'webmock'
11
10
 
12
- # optional, pick one json backend
13
- gem 'yajl-ruby'
14
- gem 'json'
15
- gem 'json_pure'
11
+ gem 'json'
12
+ gem 'json_pure'
13
+
14
+ gem 'rack'
15
+ gem 'ruby-hmac'
16
+
17
+ gem 'rest-client'
18
+ gem 'em-http-request', '<1'
16
19
 
17
- # falls back from openssl
18
- gem 'ruby-hmac'
20
+ platforms(:ruby) do
21
+ gem 'yajl-ruby'
22
+ end
19
23
 
20
- # for testing
21
- gem 'rr'
22
- gem 'webmock'
23
- gem 'bacon'
24
+ platforms(:jruby) do
25
+ gem 'jruby-openssl'
24
26
  end
27
+
28
+ gem 'rails', '2.3.14' if ENV['RESTGRAPH'] == 'rails2'
29
+ gem 'rails', '3.0.9' if ENV['RESTGRAPH'] == 'rails3'
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
- # rest-graph
1
+ # rest-graph [![Build Status](http://travis-ci.org/godfat/rest-graph.png)](http://travis-ci.org/godfat/rest-graph)
2
+
2
3
  by Cardinal Blue <http://cardinalblue.com>
3
4
 
4
5
  Tutorial on setting up a sample Facebook application with Rails 3
@@ -11,7 +12,7 @@ an experienced Ruby programmer, you might also want to look at
11
12
 
12
13
  ## LINKS:
13
14
 
14
- * [github](http://github.com/cardinalblue/rest-graph)
15
+ * [github](https://ithub.com/cardinalblue/rest-graph)
15
16
  * [rubygems](http://rubygems.org/gems/rest-graph)
16
17
  * [rdoc](http://rdoc.info/projects/cardinalblue/rest-graph)
17
18
  * [mailing list](http://groups.google.com/group/rest-graph/topics)
@@ -20,6 +21,14 @@ an experienced Ruby programmer, you might also want to look at
20
21
 
21
22
  A lightweight Facebook Graph API client
22
23
 
24
+ We have moved the development from rest-graph to [rest-core][].
25
+ By now on, we would only fix bugs in rest-graph rather than adding
26
+ features, and we would only backport important changes from rest-core
27
+ once in a period. If you want the latest goodies, please see [rest-core][]
28
+ Otherwise, you can stay with rest-graph with bugs fixes.
29
+
30
+ [rest-core]: https://github.com/cardinalblue/rest-core
31
+
23
32
  ## FEATURES:
24
33
 
25
34
  * Simple Graph API call
@@ -53,7 +62,8 @@ A lightweight Facebook Graph API client
53
62
 
54
63
  Or if you want development version, put this in Gemfile:
55
64
 
56
- gem 'rest-graph', :git => 'git://github.com/cardinalblue/rest-graph.git'
65
+ gem 'rest-graph', :git => 'git://github.com/cardinalblue/rest-graph.git',
66
+ :submodules => true
57
67
 
58
68
  Or as a Rails2 plugin:
59
69
 
@@ -354,18 +364,18 @@ Takes a session key from the old REST API
354
364
 
355
365
  ## LICENSE:
356
366
 
357
- Apache License 2.0
367
+ Apache License 2.0
358
368
 
359
- Copyright (c) 2010, Cardinal Blue
369
+ Copyright (c) 2010-2011, Cardinal Blue
360
370
 
361
- Licensed under the Apache License, Version 2.0 (the "License");
362
- you may not use this file except in compliance with the License.
363
- You may obtain a copy of the License at
371
+ Licensed under the Apache License, Version 2.0 (the "License");
372
+ you may not use this file except in compliance with the License.
373
+ You may obtain a copy of the License at
364
374
 
365
- <http://www.apache.org/licenses/LICENSE-2.0>
375
+ <http://www.apache.org/licenses/LICENSE-2.0>
366
376
 
367
- Unless required by applicable law or agreed to in writing, software
368
- distributed under the License is distributed on an "AS IS" BASIS,
369
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
370
- See the License for the specific language governing permissions and
371
- limitations under the License.
377
+ Unless required by applicable law or agreed to in writing, software
378
+ distributed under the License is distributed on an "AS IS" BASIS,
379
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
380
+ See the License for the specific language governing permissions and
381
+ limitations under the License.
data/Rakefile CHANGED
@@ -9,34 +9,40 @@ desc 'Generate gemspec'
9
9
  task 'gem:spec' do
10
10
  Gemgem.spec = Gemgem.create do |s|
11
11
  require 'rest-graph/version'
12
- s.name = 'rest-graph'
13
- s.version = RestGraph::VERSION
14
- # s.executables = [s.name]
12
+ s.name = 'rest-graph'
13
+ s.version = RestGraph::VERSION
14
+ s.homepage = 'https://github.com/cardinalblue/rest-graph'
15
15
 
16
16
  %w[].each{ |g| s.add_runtime_dependency(g) }
17
- %w[rest-client em-http-request rack yajl-ruby json json_pure ruby-hmac
18
- webmock bacon rr].each{ |g| s.add_development_dependency(g) }
17
+ %w[].each{ |g| s.add_development_dependency(g) }
19
18
 
20
- s.authors = ['Cardinal Blue', 'Lin Jen-Shin (godfat)']
21
- s.email = ['dev (XD) cardinalblue.com']
19
+ s.authors = ['Cardinal Blue', 'Lin Jen-Shin (godfat)']
20
+ s.email = ['dev (XD) cardinalblue.com']
22
21
  end
23
22
 
24
23
  Gemgem.write
25
24
  end
26
25
 
26
+ module Gemgem
27
+ module_function
28
+ def test_rails *rails
29
+ rails.each{ |framework|
30
+ opts = Rake.application.options
31
+ args = (opts.singleton_methods - [:rakelib, 'rakelib']).map{ |arg|
32
+ if arg.to_s !~ /=$/ && opts.send(arg)
33
+ "--#{arg}"
34
+ else
35
+ ''
36
+ end
37
+ }.join(' ')
38
+ Rake.sh "cd example/#{framework}; #{Gem.ruby} -S rake test #{args}"
39
+ }
40
+ end
41
+ end
42
+
27
43
  desc 'Run example tests'
28
- task 'test:example' => ['gem:install'] do
29
- %w[rails3 rails2].each{ |framework|
30
- opts = Rake.application.options
31
- args = (opts.singleton_methods - [:rakelib, 'rakelib']).map{ |arg|
32
- if arg.to_s !~ /=$/ && opts.send(arg)
33
- "--#{arg}"
34
- else
35
- ''
36
- end
37
- }.join(' ')
38
- sh "cd example/#{framework}; #{Gem.ruby} -S rake test #{args}"
39
- }
44
+ task 'test:example' do
45
+ Gemgem.test_rails('rails3', 'rails2')
40
46
  end
41
47
 
42
48
  desc 'Run all tests'
@@ -45,6 +51,14 @@ task 'test:all' => ['test', 'test:example']
45
51
  desc 'Run different json test'
46
52
  task 'test:json' do
47
53
  %w[yajl json].each{ |json|
48
- sh "#{Gem.ruby} -S rake -r #{json} test"
54
+ Rake.sh "#{Gem.ruby} -S rake -r #{json} test"
49
55
  }
50
56
  end
57
+
58
+ task 'test:travis' do
59
+ case ENV['RESTGRAPH']
60
+ when 'rails3'; Gemgem.test_rails('rails3')
61
+ when 'rails2'; Gemgem.test_rails('rails2')
62
+ else ; Rake::Task['test'].invoke
63
+ end
64
+ end
data/{TODO → TODO.md} RENAMED
@@ -1,10 +1,12 @@
1
- = rest-graph todo list
1
+ # TODO
2
+
3
+ ## RailsUtil
2
4
 
3
- == RailsUtil
4
5
  * provide a :validate_access_token or so option
5
6
  * test for rails util for writing cookie
6
7
 
7
- == RestGraph
8
+ ## RestGraph
9
+
8
10
  * error_handler can't be turned off
9
11
  * more docs?
10
12
  * more examples?
@@ -1,11 +1,11 @@
1
1
 
2
2
  source 'http://rubygems.org'
3
3
 
4
- gem 'rails', '2.3.11'
4
+ gem 'rails', '2.3.14'
5
5
 
6
6
  gem 'rest-client' # for rest-graph
7
7
  gem 'yajl-ruby' # for rest-graph
8
- gem 'rest-graph'
8
+ gem 'rest-graph', :path => '../../'
9
9
 
10
10
  group 'test' do
11
11
  gem 'rr'
@@ -3,6 +3,7 @@
3
3
 
4
4
  require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5
5
 
6
+ require 'rake/dsl_definition'
6
7
  require 'rake'
7
8
  require 'rake/testtask'
8
9
  require 'rake/rdoctask'