facebook-graph 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,7 +10,9 @@ class FacebookGraph::Client
10
10
  uri = "#{config[:base_uri]}/#{element_id}"
11
11
  uri += "#{querystring_separator(uri)}access_token=#{CGI.escape(@access_token)}" if @access_token
12
12
  uri += "#{querystring_separator(uri) + hash_to_querystring(options)}" unless options.nil? || options.empty?
13
- FacebookGraph::GraphNode.new(parse_json(uri))
13
+ node = FacebookGraph::GraphNode.new(parse_json(uri))
14
+ node.access_token = access_token
15
+ node
14
16
  end
15
17
 
16
18
  def current_user(options={})
@@ -1,18 +1,22 @@
1
1
  class FacebookGraph::GraphNode
2
2
  include FacebookGraph::Helper
3
+
4
+ attr_accessor :access_token
3
5
 
4
6
  def initialize(properties={})
5
- config = FacebookGraph.configuration
6
7
  @properties = symbolize_keys(properties)
7
8
  end
8
9
 
9
10
  def method_missing(mname, *args)
10
11
  prop = @properties[mname]
11
12
  return prop unless prop.nil?
12
- prop = connections_defined? && @properties[:metadata]['connections'][mname.to_s]
13
- super and return unless prop
14
- options = args[0]
15
- prop += "#{querystring_separator(prop) + hash_to_querystring(options)}" if options && options.kind_of?(Hash)
13
+ config = FacebookGraph.configuration
14
+ prop = "#{config[:base_uri]}/#{node_id}/#{mname}"
15
+ options = args[0] || {}
16
+ if options.kind_of?(Hash)
17
+ options[:access_token] = access_token
18
+ prop += "#{querystring_separator(prop) + hash_to_querystring(options)}"
19
+ end
16
20
  mname == :picture ? prop : FacebookGraph::GraphNode.from_array(parse_json(prop))
17
21
  end
18
22
 
@@ -15,15 +15,8 @@ module FacebookGraph::Helper
15
15
  end
16
16
 
17
17
  def parse_json(uri, options={:http_method=>:get})
18
- result = JSON.parse(send(options.delete(:http_method),uri)) rescue nil
19
- if result && result['error']
20
- begin
21
- raise FacebookGraph.const_get(result['error']['type']), result['error']['message']
22
- rescue NameError
23
- FacebookGraph.const_set(result['error']['type'], Class.new(Exception))
24
- retry
25
- end
26
- end
18
+ result = JSON.parse(send(options.delete(:http_method),uri))
19
+ raise result['error']['message'] if result && result['error']
27
20
  result
28
21
  end
29
22
 
@@ -32,7 +25,7 @@ module FacebookGraph::Helper
32
25
  end
33
26
 
34
27
  def hash_to_querystring(hash)
35
- hash.map{|k,v| "#{k}=#{v}"}.join('&')
28
+ hash.map{|k,v| "#{k}=#{CGI.escape(v.to_s)}"}.join('&')
36
29
  end
37
30
 
38
31
  def parse_form_data(uri, options={:http_method=>:get})
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facebook-graph
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pedro A. Vicentini Fracarolli
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-05 00:00:00 -03:00
18
+ date: 2010-11-08 00:00:00 -02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency