fbgraph 0.0.5 → 0.0.8

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.tar.gz.sig ADDED
@@ -0,0 +1,4 @@
1
+ 9� �=>��,<
2
+ ��������>�R6c`�Q�IXK�^��0^d.�1-�� ����ܕ 7�,bp�᰻u�j~4��tJ�Yֳ^�b�K�biη,Q6������=��YB��;`,�I�.��͒#�&,��v��4�O��n�W�g����`=�A�Zh����bUʡ�3�wF���vg�2=�w8�N.��G
3
+ ;{Å���9�Ua�� �ՃGP�y@^W�`��^�pS�՞|�@��g
4
+ IJ�gw��~4
data/README.textile CHANGED
@@ -1,7 +1,17 @@
1
- h2. FBGRaph
1
+ h2. FBGRaph (0.0.8)
2
2
 
3
3
  p. Facebook Open Graph API Gem.
4
4
 
5
+
6
+ h2. Resources
7
+
8
+ * "View RDoc on RDoc.info":http://rdoc.info/projects/nsanta/fbgraph
9
+
10
+ * "View Source on GitHub":http://github.com/nsanta/fbgraph
11
+
12
+ * "Report Issues on GitHub":http://github.com/nsanta/fbgraph/issues
13
+
14
+
5
15
  h2. Installation
6
16
 
7
17
  notextile. <code> gem install fbgraph</code>
@@ -212,3 +222,12 @@ h4. not documented yet
212
222
  h2. Contributions
213
223
 
214
224
  p. Just do a pull request with the repo in sync.
225
+
226
+
227
+ h2. Contributors
228
+
229
+ "Victor Costan":http://github.com/costan
230
+
231
+ "Mark Bates":http://github.com/markbates
232
+
233
+
data/Rakefile CHANGED
@@ -2,11 +2,16 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('fbgraph', '0.0.5') do |p|
5
+ Echoe.new('fbgraph', '0.0.8') do |p|
6
6
  p.description = "A Gem for Facebook Open Graph API"
7
7
  p.url = "http://github.com/nsanta/fbgraph"
8
8
  p.author = "Nicolas Santa"
9
9
  p.email = "nicolas55ar@gmail.com"
10
10
  p.ignore_pattern = ["tmp/*", "script/*"]
11
- p.development_dependencies = ['oauth2' , 'json']
11
+ # p.development_dependencies = ['oauth2' , 'json']
12
+ p.runtime_dependencies = ['oauth2' , 'json', 'hashie']
13
+ end
14
+
15
+ Spec::Rake::SpecTask.new(:rspec) do |t|
16
+ t.spec_files = FileList[File.join(File.dirname(__FILE__), 'specs', '**', '*_spec.rb')]
12
17
  end
data/fbgraph.gemspec CHANGED
@@ -2,11 +2,12 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{fbgraph}
5
- s.version = "0.0.5"
5
+ s.version = "0.0.8"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Nicolas Santa"]
9
- s.date = %q{2010-05-11}
9
+ s.cert_chain = ["/home/nicolas/certs/gem-public_cert.pem"]
10
+ s.date = %q{2010-05-29}
10
11
  s.description = %q{A Gem for Facebook Open Graph API}
11
12
  s.email = %q{nicolas55ar@gmail.com}
12
13
  s.extra_rdoc_files = ["README", "README.textile", "TODO.list", "lib/fbgraph.rb", "lib/fbgraph/authorization.rb", "lib/fbgraph/base.rb", "lib/fbgraph/client.rb", "lib/fbgraph/realtime.rb", "lib/fbgraph/search.rb", "lib/fbgraph/selection.rb"]
@@ -16,6 +17,7 @@ Gem::Specification.new do |s|
16
17
  s.require_paths = ["lib"]
17
18
  s.rubyforge_project = %q{fbgraph}
18
19
  s.rubygems_version = %q{1.3.6}
20
+ s.signing_key = %q{/home/nicolas/certs/gem-private_key.pem}
19
21
  s.summary = %q{A Gem for Facebook Open Graph API}
20
22
 
21
23
  if s.respond_to? :specification_version then
@@ -23,14 +25,17 @@ Gem::Specification.new do |s|
23
25
  s.specification_version = 3
24
26
 
25
27
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
- s.add_development_dependency(%q<oauth2>, [">= 0"])
27
- s.add_development_dependency(%q<json>, [">= 0"])
28
+ s.add_runtime_dependency(%q<oauth2>, [">= 0"])
29
+ s.add_runtime_dependency(%q<json>, [">= 0"])
30
+ s.add_runtime_dependency(%q<hashie>, [">= 0"])
28
31
  else
29
32
  s.add_dependency(%q<oauth2>, [">= 0"])
30
33
  s.add_dependency(%q<json>, [">= 0"])
34
+ s.add_dependency(%q<hashie>, [">= 0"])
31
35
  end
32
36
  else
33
37
  s.add_dependency(%q<oauth2>, [">= 0"])
34
38
  s.add_dependency(%q<json>, [">= 0"])
39
+ s.add_dependency(%q<hashie>, [">= 0"])
35
40
  end
36
41
  end
data/lib/fbgraph.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'oauth2'
2
2
  require 'json'
3
3
 
4
+
5
+
4
6
  require 'fbgraph/client'
5
7
  require 'fbgraph/base'
6
8
  require 'fbgraph/authorization'
data/lib/fbgraph/base.rb CHANGED
@@ -45,7 +45,7 @@ module FBGraph
45
45
  end
46
46
  puts "FBGRAPH [GET]: #{uri}"
47
47
  result = @client.consumer.get(uri)
48
- return parsed ? JSON.parse(result) : result
48
+ return parse_json(result, parsed)
49
49
  end
50
50
 
51
51
 
@@ -54,20 +54,21 @@ module FBGraph
54
54
  uri = build_open_graph_path(@objects , @connection_type)
55
55
  puts "FBGRAPH [POST]: #{uri}"
56
56
  result = @client.consumer.post(uri , @params)
57
- return parsed ? JSON.parse(result) : result
57
+ return parse_json(result, parsed)
58
58
  end
59
59
 
60
60
  def delete!(parsed = true)
61
61
  uri = build_open_graph_path(@objects , nil)
62
62
  puts "FBGRAPH [DELETE]: #{uri}"
63
63
  result = @client.consumer.delete(uri , @params)
64
- return parsed ? JSON.parse(result) : result
64
+ return parse_json(result, parsed)
65
65
  end
66
66
 
67
67
  %w(limit offset until since).each do |paging|
68
68
  class_eval <<-PAGING
69
69
  def #{paging}(value)
70
70
  @params[:#{paging}] = value
71
+ self
71
72
  end
72
73
  PAGING
73
74
  end
@@ -75,6 +76,10 @@ module FBGraph
75
76
 
76
77
  private
77
78
 
79
+ def parse_json(result, parsed)
80
+ return parsed ? Hashie::Mash.new(JSON.parse(result)) : result
81
+ end
82
+
78
83
  def build_open_graph_path(objects,connection_type = nil , params = {})
79
84
  request = "/" + [objects , connection_type].compact.join('/')
80
85
  request += "?"+params.to_a.map{|p| p.join('=')}.join('&') unless params.empty?
@@ -5,7 +5,7 @@ module FBGraph
5
5
 
6
6
  CONNECTION_TYPES = %w(home photos comments feed noreply
7
7
  maybe invited attending declined picture
8
- members picture tagged links groups albums
8
+ members tagged links groups albums
9
9
  statuses videos notes posts events friends
10
10
  activities interests music books movies television
11
11
  likes inbox outbox updates).freeze
@@ -39,7 +39,9 @@ module FBGraph
39
39
  end
40
40
 
41
41
  def picture
42
- @client.facebook_uri + build_open_graph_path(@objects , 'picture')
42
+ uri = @client.facebook_uri + build_open_graph_path(@objects , 'picture')
43
+ return uri unless @client.consumer
44
+ uri + '?access_token=' + @client.consumer.token
43
45
  end
44
46
 
45
47
  end
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
2
 
3
3
  describe FBGraph do
4
4
  describe FBGraph::Authorization do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
2
 
3
3
  describe FBGraph do
4
4
  describe FBGraph::Authorization do
@@ -59,7 +59,7 @@ describe FBGraph do
59
59
  describe 'info!' do
60
60
  describe 'when object is an array' do
61
61
  it 'should request with the path "/?ids=1,2,3"' do
62
- uri = "/?ids?=1,2,3"
62
+ uri = "/?ids=1,2,3"
63
63
  @base.find([1,2,3])
64
64
  @client.consumer.stub!(:get).with(uri).and_return('')
65
65
  @base.info!(false)
@@ -97,11 +97,34 @@ describe FBGraph do
97
97
  end
98
98
 
99
99
  describe 'publish!' do
100
-
100
+ describe 'when is passed params before invocation' do
101
+ it 'should request with the path "/123" and params {:extra => "extra" }' do
102
+ uri = "/123"
103
+ @base.find('123')
104
+ @base.params = {:extra => "extra" }
105
+ @client.consumer.stub!(:post).with(uri , @base.params).and_return('')
106
+ @base.publish!({}, false)
107
+ end
108
+ end
109
+ describe 'when is passed params on invocation' do
110
+ it 'should request with the path "/123" and params {:extra => "extra" }' do
111
+ uri = "/123"
112
+ @base.find('123')
113
+ ps = {:extra => "extra" }
114
+ @client.consumer.stub!(:post).with(uri , ps).and_return('')
115
+ @base.publish!(ps , false)
116
+ end
117
+ end
101
118
  end
102
119
 
103
120
  describe 'delete!' do
104
-
121
+ it 'should request with the path "/123" and params {:extra => "extra" }' do
122
+ uri = "/123"
123
+ @base.find('123')
124
+ @base.params = {:extra => "extra" }
125
+ @client.consumer.stub!(:delete).with(uri , @base.params).and_return('')
126
+ @base.delete!(false)
127
+ end
105
128
  end
106
129
 
107
130
  end
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
2
 
3
3
  describe FBGraph do
4
4
  describe FBGraph::Client do
@@ -1,7 +1,7 @@
1
- require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
2
 
3
3
  describe FBGraph do
4
- describe FBGraph::RealTime do
4
+ describe FBGraph::Realtime do
5
5
 
6
6
  before :each do
7
7
  @client_id = 'client_id'
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
2
 
3
3
  describe FBGraph do
4
4
  describe FBGraph::Search do
@@ -1,14 +1,32 @@
1
- require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
2
 
3
3
  describe FBGraph do
4
- describe FBGraph::RealTime do
4
+ describe FBGraph::Selection do
5
5
 
6
6
  before :each do
7
7
  @client_id = 'client_id'
8
8
  @secret_id = 'secret_id'
9
+ @token = 'token'
9
10
  @client = FBGraph::Client.new(:client_id => @client_id,
10
- :secret_id => @secret_id)
11
- @search = FBGraph::Search.new(@client)
11
+ :secret_id => @secret_id,
12
+ :token => @token)
13
+ @selection = FBGraph::Selection.new(@client)
14
+ end
15
+
16
+ describe "when asking for an object's picture" do
17
+ it "should append the access token" do
18
+ @selection.me.picture.should ==
19
+ "https://graph.facebook.com/me/picture?access_token=#{@token}"
20
+ end
21
+
22
+ it "should not append an access token if none is available" do
23
+ client = FBGraph::Client.new(:client_id => @client_id,
24
+ :secret_id => @secret_id)
25
+ selection = FBGraph::Selection.new(client)
26
+
27
+ selection.me.picture.should ==
28
+ "https://graph.facebook.com/me/picture"
29
+ end
12
30
  end
13
31
  end
14
32
  end
data/specs/spec_helper.rb CHANGED
@@ -0,0 +1,2 @@
1
+ $LOAD_PATH << File.expand_path('../../lib', __FILE__)
2
+ require 'fbgraph'
metadata CHANGED
@@ -5,16 +5,37 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 5
9
- version: 0.0.5
8
+ - 8
9
+ version: 0.0.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Nicolas Santa
13
13
  autorequire:
14
14
  bindir: bin
15
- cert_chain: []
15
+ cert_chain:
16
+ - |
17
+ -----BEGIN CERTIFICATE-----
18
+ MIIDODCCAiCgAwIBAgIBADANBgkqhkiG9w0BAQUFADBCMRQwEgYDVQQDDAtuaWNv
19
+ bGFzNTVhcjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYD
20
+ Y29tMB4XDTEwMDUwNzE4MzUwOFoXDTExMDUwNzE4MzUwOFowQjEUMBIGA1UEAwwL
21
+ bmljb2xhczU1YXIxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixk
22
+ ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALfpoVqolklc
23
+ pq3fDlP4GETB6EOGpUPLEMH04GmcNJCaLj4yOBBSMX0pJyjyMo8LRm+8q8LW0JmF
24
+ BpCOKJCNZC8bic9Y6T+Ja9Rue3en4laRr/gtAeW50Lyigf7tlUTgFQ0z3H44U1IL
25
+ yoYX7FgBC2BuqzUgsjLnX7fFZDvH+GlX/ChwId0TBOwHlvmjkzvmNJvc8zaetl7n
26
+ Pwjdh+nVIUF70Tre+HK+T5IQ8bkGZxUWgByS3LYAHz/fD/wpEYwb3iYIv7VFEzJd
27
+ GOL4WjTxCoadloV2Ux4hAn9cMarzPTAHPBddTAWCHcK00XZy00LExCDDFmIXfvT/
28
+ 80P8PNIj0hkCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
29
+ BBYEFKVi3eog182/K7f7sJVRe4An94CJMA0GCSqGSIb3DQEBBQUAA4IBAQBbCScY
30
+ LVggsBMv5vHdywZV5oUW8g421NM7m2kEJZzmUtj9e2xXe2eN9snvwzynT+SjJvjk
31
+ 4KlJOde2A6d4UUAlMfjjGOiSe/iENjC0ckMOS53ZsUFVr+BuY1ZF2YoMmd2UmyjP
32
+ Ep+kyPuRJhvNh4wYJF/q1XN8pHI8kfde/nUia1HzuENyvfL9UBtz/WJHXO1S1iDX
33
+ Fh4Xb6VBGNc0UolB6qVyK9+B73zWtHhkIbpm01Qs6udTRKT1fkyr+Q+s5d6YXANn
34
+ t9TrnoR25hfiEkK0T2TVSJ5ULXUdp970cmXugmPG84hcwFrfrEFmqBbILdIdc/E1
35
+ urUszHKBS/vEBMuC
36
+ -----END CERTIFICATE-----
16
37
 
17
- date: 2010-05-11 00:00:00 -03:00
38
+ date: 2010-05-29 00:00:00 -03:00
18
39
  default_executable:
19
40
  dependencies:
20
41
  - !ruby/object:Gem::Dependency
@@ -27,7 +48,7 @@ dependencies:
27
48
  segments:
28
49
  - 0
29
50
  version: "0"
30
- type: :development
51
+ type: :runtime
31
52
  version_requirements: *id001
32
53
  - !ruby/object:Gem::Dependency
33
54
  name: json
@@ -39,8 +60,20 @@ dependencies:
39
60
  segments:
40
61
  - 0
41
62
  version: "0"
42
- type: :development
63
+ type: :runtime
43
64
  version_requirements: *id002
65
+ - !ruby/object:Gem::Dependency
66
+ name: hashie
67
+ prerelease: false
68
+ requirement: &id003 !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ type: :runtime
76
+ version_requirements: *id003
44
77
  description: A Gem for Facebook Open Graph API
45
78
  email: nicolas55ar@gmail.com
46
79
  executables: []
metadata.gz.sig ADDED
Binary file