rest-graph 1.8.0 → 1.9.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/task/gemgem.rb CHANGED
@@ -11,7 +11,7 @@ module Gemgem
11
11
  yield(spec = Gem::Specification.new{ |s|
12
12
  s.authors = ['Lin Jen-Shin (godfat)']
13
13
  s.email = ['godfat (XD) godfat.org']
14
- s.homepage = "http://github.com/godfat/#{s.name}"
14
+ s.homepage = "https://github.com/godfat/#{s.name}"
15
15
 
16
16
  s.summary = File.read("#{Gemgem.dir}/README").
17
17
  match(/DESCRIPTION:\n\n(.+?)\n\n/m)[1]
@@ -33,7 +33,18 @@ module Gemgem
33
33
  end
34
34
 
35
35
  def write
36
- File.open("#{dir}/#{spec.name}.gemspec", 'w'){ |f| f << spec.to_ruby }
36
+ File.open("#{dir}/#{spec.name}.gemspec", 'w'){ |f|
37
+ f << split_lines(spec.to_ruby) }
38
+ end
39
+
40
+ def split_lines ruby
41
+ ruby.gsub(/(.+?)\[(.+?)\]/){ |s|
42
+ if $2.index(',')
43
+ "#{$1}[\n #{$2.split(',').map(&:strip).join(",\n ")}]"
44
+ else
45
+ s
46
+ end
47
+ }
37
48
  end
38
49
 
39
50
  def all_files
data/test/test_api.rb CHANGED
@@ -47,6 +47,18 @@ describe RestGraph do
47
47
  RestGraph.new.request({:headers => {'X-Forwarded-For' => '127.0.0.1'}},
48
48
  [:get, 'http://example.com']).
49
49
  should == {'data' => []}
50
+
51
+ EM.run{
52
+ RestGraph.new.request({:headers => {'X-Forwarded-For' => '127.0.0.1',
53
+ 'User-Agent' => 'Ruby',
54
+ 'Accept-Encoding' =>
55
+ 'gzip, deflate'},
56
+ :async => true},
57
+ [:get, 'http://example.com']){ |result|
58
+ result.should == {'data' => []}
59
+ EM.stop
60
+ }
61
+ }
50
62
  end
51
63
 
52
64
  should 'post right' do
@@ -83,7 +95,7 @@ describe RestGraph do
83
95
  stub_request(:put, url).
84
96
  with(:body => 'message=hi%20there').to_return(:body => '[]')
85
97
 
86
- mock.proxy(rg = RestGraph.new).post_request('[]', url, {})
98
+ mock.proxy(rg = RestGraph.new).post_request({}, url, '[]')
87
99
  rg.put('feed/me', :message => 'hi there').
88
100
  should == []
89
101
  end
data/test/test_cache.rb CHANGED
@@ -21,12 +21,13 @@ describe RestGraph do
21
21
 
22
22
  should 'enable cache if passing cache' do
23
23
  3.times{ @rg.get('cache').should == @body }
24
- @cache.should == {@rg.send(:cache_key, @url) => @body}
24
+ @cache.should == {@rg.send(:cache_key, {}, @url) => @body}
25
25
  end
26
26
 
27
27
  should 'respect expires_in' do
28
28
  mock(@cache).method(:store){ mock!.arity{ -3 } }
29
- mock(@cache).store(@rg.send(:cache_key, @url), @body, :expires_in => 3)
29
+ mock(@cache).store(@rg.send(:cache_key, {}, @url), @body,
30
+ :expires_in => 3)
30
31
  @rg.get('cache', {}, :expires_in => 3).should == @body
31
32
  end
32
33
 
data/test/test_misc.rb CHANGED
@@ -54,29 +54,16 @@ describe RestGraph do
54
54
 
55
55
  should 'auto decode json' do
56
56
  RestGraph.new(:auto_decode => true).
57
- send(:post_request, '[]', '', {}).should == []
57
+ send(:post_request, {}, '', '[]').should == []
58
58
  end
59
59
 
60
60
  should 'not auto decode json' do
61
61
  RestGraph.new(:auto_decode => false).
62
- send(:post_request, '[]', '', {}).should == '[]'
62
+ send(:post_request, {}, '', '[]').should == '[]'
63
63
  end
64
64
 
65
- should 'give better inspect string' do
66
- RestGraph.new(:auto_decode => false).inspect.should =~ Regexp.new(
67
- '#<struct RestGraph auto_decode=false,' \
68
- ' strict=false,' \
69
- ' timeout=10,' \
70
- ' graph_server="https://graph.facebook.com/",' \
71
- ' old_server="https://api.facebook.com/",' \
72
- ' accept="text/javascript",' \
73
- ' lang="en-us",' \
74
- ' app_id=nil,' \
75
- ' secret=nil,' \
76
- ' data=\{\},' \
77
- ' cache=nil,' \
78
- ' log_method=nil,' \
79
- ' log_handler=nil,' \
80
- ' error_handler=#<Proc:.+>>')
65
+ should 'give attributes' do
66
+ RestGraph.new(:auto_decode => false).attributes.keys.map(&:to_s).sort.
67
+ should == RestGraphStruct.members.map(&:to_s).sort
81
68
  end
82
69
  end
data/test/test_old.rb CHANGED
@@ -48,6 +48,38 @@ describe RestGraph do
48
48
  RestGraph.new.fql_multi(:f0 => f0, :f1 => f1).should == []
49
49
  end
50
50
 
51
+ should 'cache fake post in fql' do
52
+ query = 'select name from user where uid = 4'
53
+ body = '[{"name":"Mark Zuckerberg"}]'
54
+ stub_request(:post,
55
+ 'https://api.facebook.com/method/fql.query?format=json').
56
+ with(:body => {:query => query}).
57
+ to_return(:body => body)
58
+
59
+ RestGraph.new(:cache => (cache = {})).fql(query, {}, :post => true).
60
+ first['name'] .should == 'Mark Zuckerberg'
61
+ cache.size .should == 1
62
+ cache.values.first.should == body
63
+
64
+ WebMock.reset! # should hit the cache
65
+
66
+ RestGraph.new(:cache => cache).fql(query, {}, :post => true).
67
+ first['name'] .should == 'Mark Zuckerberg'
68
+ cache.size .should == 1
69
+ cache.values.first.should == body
70
+
71
+ # query changed
72
+ should.raise(WebMock::NetConnectNotAllowedError) do
73
+ RestGraph.new(:cache => cache).fql(query.upcase, {}, :post => true)
74
+ end
75
+
76
+ # cache should work for normal get
77
+ RestGraph.new(:cache => cache).fql(query).
78
+ first['name'] .should == 'Mark Zuckerberg'
79
+ cache.size .should == 1
80
+ cache.values.first.should == body
81
+ end
82
+
51
83
  should 'do facebook old rest api' do
52
84
  body = 'hate facebook inconsistent'
53
85
  stub_request(:get,
@@ -32,4 +32,9 @@ describe RestGraph do
32
32
  test[rg.lighten].should == rg
33
33
  }
34
34
  end
35
+
36
+ should 'lighten takes options to change attributes' do
37
+ RestGraph.new.lighten(:timeout => 100 ).timeout.should == 100
38
+ RestGraph.new.lighten(:lang => 'zh-TW').lang .should == 'zh-TW'
39
+ end
35
40
  end
@@ -71,4 +71,16 @@ describe RestGraph::TestUtil do
71
71
  rg.authorized?.should == true
72
72
  rg.get('me').should == RestGraph::TestUtil.user('1234')
73
73
  end
74
+
75
+ should 'return correct response in fake get' do
76
+ RestGraph.new.fql('', {}, :post => true).
77
+ should == [RestGraph::TestUtil.default_response]
78
+
79
+ RestGraph.new.fql_multi({:a => '', :b => ''}, {}, :post => true).
80
+ sort_by{ |h| h['name'] }.
81
+ should == [{'name' => 'a',
82
+ 'fql_result_set' => [RestGraph::TestUtil.default_response]},
83
+ {'name' => 'b',
84
+ 'fql_result_set' => [RestGraph::TestUtil.default_response]}]
85
+ end
74
86
  end
data/test/test_timeout.rb CHANGED
@@ -17,4 +17,9 @@ describe RestGraph do
17
17
  end
18
18
  e.should.kind_of?(Timeout::Error)
19
19
  end
20
+
21
+ should 'override timeout' do
22
+ mock(Timeout).timeout(99){ true }
23
+ RestGraph.new(:timeout => 1).get('me', {}, :timeout => 99).should == true
24
+ end
20
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest-graph
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.9.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,12 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-03-08 00:00:00.000000000 +08:00
14
- default_executable:
13
+ date: 2011-05-26 00:00:00.000000000Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: rest-client
18
- requirement: &2153148340 !ruby/object:Gem::Requirement
17
+ requirement: &2153246120 !ruby/object:Gem::Requirement
19
18
  none: false
20
19
  requirements:
21
20
  - - ! '>='
@@ -23,10 +22,10 @@ dependencies:
23
22
  version: '0'
24
23
  type: :development
25
24
  prerelease: false
26
- version_requirements: *2153148340
25
+ version_requirements: *2153246120
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: em-http-request
29
- requirement: &2153314520 !ruby/object:Gem::Requirement
28
+ requirement: &2153245560 !ruby/object:Gem::Requirement
30
29
  none: false
31
30
  requirements:
32
31
  - - ! '>='
@@ -34,10 +33,10 @@ dependencies:
34
33
  version: '0'
35
34
  type: :development
36
35
  prerelease: false
37
- version_requirements: *2153314520
36
+ version_requirements: *2153245560
38
37
  - !ruby/object:Gem::Dependency
39
38
  name: rack
40
- requirement: &2153544440 !ruby/object:Gem::Requirement
39
+ requirement: &2153235280 !ruby/object:Gem::Requirement
41
40
  none: false
42
41
  requirements:
43
42
  - - ! '>='
@@ -45,10 +44,10 @@ dependencies:
45
44
  version: '0'
46
45
  type: :development
47
46
  prerelease: false
48
- version_requirements: *2153544440
47
+ version_requirements: *2153235280
49
48
  - !ruby/object:Gem::Dependency
50
49
  name: yajl-ruby
51
- requirement: &2153635780 !ruby/object:Gem::Requirement
50
+ requirement: &2153234640 !ruby/object:Gem::Requirement
52
51
  none: false
53
52
  requirements:
54
53
  - - ! '>='
@@ -56,10 +55,10 @@ dependencies:
56
55
  version: '0'
57
56
  type: :development
58
57
  prerelease: false
59
- version_requirements: *2153635780
58
+ version_requirements: *2153234640
60
59
  - !ruby/object:Gem::Dependency
61
60
  name: json
62
- requirement: &2153767440 !ruby/object:Gem::Requirement
61
+ requirement: &2153233980 !ruby/object:Gem::Requirement
63
62
  none: false
64
63
  requirements:
65
64
  - - ! '>='
@@ -67,10 +66,10 @@ dependencies:
67
66
  version: '0'
68
67
  type: :development
69
68
  prerelease: false
70
- version_requirements: *2153767440
69
+ version_requirements: *2153233980
71
70
  - !ruby/object:Gem::Dependency
72
71
  name: json_pure
73
- requirement: &2153853200 !ruby/object:Gem::Requirement
72
+ requirement: &2153233340 !ruby/object:Gem::Requirement
74
73
  none: false
75
74
  requirements:
76
75
  - - ! '>='
@@ -78,10 +77,10 @@ dependencies:
78
77
  version: '0'
79
78
  type: :development
80
79
  prerelease: false
81
- version_requirements: *2153853200
80
+ version_requirements: *2153233340
82
81
  - !ruby/object:Gem::Dependency
83
82
  name: ruby-hmac
84
- requirement: &2153871880 !ruby/object:Gem::Requirement
83
+ requirement: &2153232560 !ruby/object:Gem::Requirement
85
84
  none: false
86
85
  requirements:
87
86
  - - ! '>='
@@ -89,10 +88,10 @@ dependencies:
89
88
  version: '0'
90
89
  type: :development
91
90
  prerelease: false
92
- version_requirements: *2153871880
91
+ version_requirements: *2153232560
93
92
  - !ruby/object:Gem::Dependency
94
93
  name: webmock
95
- requirement: &2153926200 !ruby/object:Gem::Requirement
94
+ requirement: &2153231940 !ruby/object:Gem::Requirement
96
95
  none: false
97
96
  requirements:
98
97
  - - ! '>='
@@ -100,10 +99,10 @@ dependencies:
100
99
  version: '0'
101
100
  type: :development
102
101
  prerelease: false
103
- version_requirements: *2153926200
102
+ version_requirements: *2153231940
104
103
  - !ruby/object:Gem::Dependency
105
104
  name: bacon
106
- requirement: &2154367340 !ruby/object:Gem::Requirement
105
+ requirement: &2153231260 !ruby/object:Gem::Requirement
107
106
  none: false
108
107
  requirements:
109
108
  - - ! '>='
@@ -111,10 +110,10 @@ dependencies:
111
110
  version: '0'
112
111
  type: :development
113
112
  prerelease: false
114
- version_requirements: *2154367340
113
+ version_requirements: *2153231260
115
114
  - !ruby/object:Gem::Dependency
116
115
  name: rr
117
- requirement: &2154734360 !ruby/object:Gem::Requirement
116
+ requirement: &2153230780 !ruby/object:Gem::Requirement
118
117
  none: false
119
118
  requirements:
120
119
  - - ! '>='
@@ -122,7 +121,7 @@ dependencies:
122
121
  version: '0'
123
122
  type: :development
124
123
  prerelease: false
125
- version_requirements: *2154734360
124
+ version_requirements: *2153230780
126
125
  description: A lightweight Facebook Graph API client
127
126
  email:
128
127
  - dev (XD) cardinalblue.com
@@ -135,6 +134,7 @@ extra_rdoc_files:
135
134
  - TODO
136
135
  files:
137
136
  - .gitignore
137
+ - .gitmodules
138
138
  - CHANGES
139
139
  - CONTRIBUTORS
140
140
  - Gemfile
@@ -146,13 +146,13 @@ files:
146
146
  - doc/ToC.md
147
147
  - doc/dependency.md
148
148
  - doc/design.md
149
+ - doc/heroku-facebook.md
149
150
  - doc/rails.md
150
151
  - doc/test.md
151
152
  - doc/tutorial.md
152
153
  - example/multi/config.ru
153
154
  - example/multi/rainbows.rb
154
155
  - example/rails2/Gemfile
155
- - example/rails2/Gemfile.lock
156
156
  - example/rails2/README
157
157
  - example/rails2/Rakefile
158
158
  - example/rails2/app/controllers/application_controller.rb
@@ -173,7 +173,6 @@ files:
173
173
  - example/rails2/test/test_helper.rb
174
174
  - example/rails2/test/unit/rails_util_test.rb
175
175
  - example/rails3/Gemfile
176
- - example/rails3/Gemfile.lock
177
176
  - example/rails3/Rakefile
178
177
  - example/rails3/app/controllers/application_controller.rb
179
178
  - example/rails3/app/views/application/helper.html.erb
@@ -190,10 +189,9 @@ files:
190
189
  - example/rails3/test/functional/application_controller_test.rb
191
190
  - example/rails3/test/test_helper.rb
192
191
  - example/rails3/test/unit/rails_util_test.rb
192
+ - example/sinatra/config.ru
193
193
  - init.rb
194
194
  - lib/rest-graph.rb
195
- - lib/rest-graph/auto_load.rb
196
- - lib/rest-graph/autoload.rb
197
195
  - lib/rest-graph/config_util.rb
198
196
  - lib/rest-graph/core.rb
199
197
  - lib/rest-graph/facebook_util.rb
@@ -221,8 +219,7 @@ files:
221
219
  - test/test_serialize.rb
222
220
  - test/test_test_util.rb
223
221
  - test/test_timeout.rb
224
- has_rdoc: true
225
- homepage: http://github.com/godfat/
222
+ homepage: https://github.com/godfat/
226
223
  licenses: []
227
224
  post_install_message:
228
225
  rdoc_options:
@@ -244,7 +241,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
244
241
  version: '0'
245
242
  requirements: []
246
243
  rubyforge_project:
247
- rubygems_version: 1.6.1
244
+ rubygems_version: 1.8.4
248
245
  signing_key:
249
246
  specification_version: 3
250
247
  summary: A lightweight Facebook Graph API client
@@ -1,4 +0,0 @@
1
-
2
- require 'rest-graph'
3
- puts "[DEPRECATED] require 'rest-graph/auto_load' is deprecated, " \
4
- "now please just use require 'rest-graph'"
@@ -1,4 +0,0 @@
1
-
2
- require 'rest-graph'
3
- puts "[DEPRECATED] require 'rest-graph/autoload' is deprecated, " \
4
- "now please just use require 'rest-graph'"