fb_graph 1.6.0 → 1.6.1

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/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.0
1
+ 1.6.1
data/fb_graph.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{fb_graph}
8
- s.version = "1.6.0"
8
+ s.version = "1.6.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["nov matake"]
12
- s.date = %q{2011-03-19}
12
+ s.date = %q{2011-03-20}
13
13
  s.description = %q{A full-stack Facebook Graph API wrapper in Ruby.}
14
14
  s.email = %q{nov@matake.jp}
15
15
  s.extra_rdoc_files = [
@@ -130,6 +130,7 @@ Gem::Specification.new do |s|
130
130
  "spec/fake_json/events/maybe/smartday_private.json",
131
131
  "spec/fake_json/events/noreply/smartday_private.json",
132
132
  "spec/fake_json/groups/members/emacs_private.json",
133
+ "spec/fake_json/pages/categories/local_business.json",
133
134
  "spec/fake_json/pages/checkins/gowalla_private.json",
134
135
  "spec/fake_json/pages/checkins/gowalla_public.json",
135
136
  "spec/fake_json/pages/insights/FbGraph_private.json",
@@ -281,6 +282,7 @@ Gem::Specification.new do |s|
281
282
  "spec/fb_graph/message_spec.rb",
282
283
  "spec/fb_graph/node_spec.rb",
283
284
  "spec/fb_graph/note_spec.rb",
285
+ "spec/fb_graph/page/categories/local_business_spec.rb",
284
286
  "spec/fb_graph/page_spec.rb",
285
287
  "spec/fb_graph/photo_spec.rb",
286
288
  "spec/fb_graph/place_spec.rb",
@@ -372,6 +374,7 @@ Gem::Specification.new do |s|
372
374
  "spec/fb_graph/message_spec.rb",
373
375
  "spec/fb_graph/node_spec.rb",
374
376
  "spec/fb_graph/note_spec.rb",
377
+ "spec/fb_graph/page/categories/local_business_spec.rb",
375
378
  "spec/fb_graph/page_spec.rb",
376
379
  "spec/fb_graph/photo_spec.rb",
377
380
  "spec/fb_graph/place_spec.rb",
data/lib/fb_graph/auth.rb CHANGED
@@ -34,12 +34,14 @@ module FbGraph
34
34
  self.access_token.present?
35
35
  end
36
36
 
37
- def authorize_uri(canvas_uri)
37
+ def authorize_uri(canvas_uri, options = {})
38
38
  endpoint = URI.parse SignedRequest::OAUTH_DIALOG_ENDPOINT
39
- endpoint.query = {
39
+ params = options.merge(
40
40
  :client_id => self.client.id,
41
41
  :redirect_uri => canvas_uri
42
- }.to_query
42
+ )
43
+ params[:scope] = Array(params[:scope]).join(',') if params[:scope].present?
44
+ endpoint.query = params.to_query
43
45
  endpoint.to_s
44
46
  end
45
47
 
@@ -2,7 +2,7 @@ module FbGraph
2
2
  class Page
3
3
  module Categories
4
4
  module LocalBusiness
5
- attr_accessor :attire, :general_manager, :hours, :parking, :payment_options, :phone, :price_range, :public_transit, :restaurant_services, :restaurant_specialties
5
+ attr_accessor :attire, :culinary_team, :general_manager, :hours, :parking, :payment_options, :phone, :price_range, :public_transit, :restaurant_services, :restaurant_specialties
6
6
 
7
7
  def self.included(klass)
8
8
  klass.alias_method_chain :initialize, :category_specific_attributes
@@ -10,7 +10,7 @@ module FbGraph
10
10
 
11
11
  def initialize_with_category_specific_attributes(identifier, attributes = {})
12
12
  initialize_without_category_specific_attributes identifier, attributes
13
- [:attire, :general_manager, :phone, :price_range, :public_transit].each do |key|
13
+ [:attire, :culinary_team, :general_manager, :phone, :price_range, :public_transit].each do |key|
14
14
  self.send :"#{key}=", attributes[key]
15
15
  end
16
16
  [:parking, :payment_options, :restaurant_services, :restaurant_specialties].each do |key|
data/lib/fb_graph/user.rb CHANGED
@@ -29,7 +29,7 @@ module FbGraph
29
29
  include Connections::Videos
30
30
  extend Searchable
31
31
 
32
- attr_accessor :first_name, :last_name, :name, :link, :about, :birthday, :work, :education, :email, :website, :websites, :hometown, :location, :bio, :quotes, :gender, :interested_in, :meeting_for, :relationship_status, :religion, :political, :verified, :significant_other, :timezone, :updated_time, :sports, :favorite_teams, :favorite_athletes, :inspirational_people, :locale, :languages, :third_party_id, :address, :mobile_phone
32
+ attr_accessor :first_name, :last_name, :name, :link, :about, :birthday, :work, :education, :email, :website, :hometown, :location, :bio, :quotes, :gender, :interested_in, :meeting_for, :relationship_status, :religion, :political, :verified, :significant_other, :timezone, :updated_time, :sports, :favorite_teams, :favorite_athletes, :inspirational_people, :locale, :languages, :third_party_id, :address, :mobile_phone
33
33
 
34
34
  def initialize(identifier, attributes = {})
35
35
  super
@@ -0,0 +1,72 @@
1
+ {
2
+ "attire":
3
+ "Casual",
4
+ "category":
5
+ "Bar",
6
+ "culinary_team":
7
+ "Team FbGraph!",
8
+ "general_manager":
9
+ "Nov Matake",
10
+ "hours":
11
+ {
12
+ "mon_1_open":
13
+ 378000,
14
+ "mon_2_close":
15
+ 406800
16
+ },
17
+ "id":
18
+ "196723247025808",
19
+ "link":
20
+ "http://www.facebook.com/pages/Local-Business-Sample/196723247025808",
21
+ "location":
22
+ {
23
+ "city":
24
+ "Kyoto",
25
+ "country":
26
+ "Japan",
27
+ "street":
28
+ "\u65b0\u7530\u8fba",
29
+ "zip":
30
+ "513001"
31
+ },
32
+ "name":
33
+ "Local Business Sample",
34
+ "parking":
35
+ {
36
+ "street":
37
+ 1,
38
+ "valet":
39
+ 1
40
+ },
41
+ "payment_options":
42
+ {
43
+ "amex":
44
+ 1,
45
+ "mastercard":
46
+ 1,
47
+ "visa":
48
+ 1
49
+ },
50
+ "phone":
51
+ "1234567890",
52
+ "picture":
53
+ "http://b.static.ak.fbcdn.net/rsrc.php/v1/y0/r/XsEg9L6Ie5_.jpg",
54
+ "price_range":
55
+ "$ (0-10)",
56
+ "public_transit":
57
+ "30 min from Kyoto St.",
58
+ "restaurant_services":
59
+ {
60
+ "groups":
61
+ 1,
62
+ "reserve":
63
+ 1
64
+ },
65
+ "restaurant_specialties":
66
+ {
67
+ "dinner":
68
+ 1,
69
+ "drinks":
70
+ 1
71
+ }
72
+ }
@@ -25,7 +25,7 @@ describe FbGraph::Auth, '.new' do
25
25
  end
26
26
  end
27
27
 
28
- describe FbGraph::Auth, '.from_cookie' do
28
+ describe FbGraph::Auth, '#from_cookie' do
29
29
  before do
30
30
  @auth = FbGraph::Auth.new('client_id', 'client_secret')
31
31
  @expires_at = Time.parse('2020-12-31 12:00:00')
@@ -54,7 +54,7 @@ describe FbGraph::Auth, '.from_cookie' do
54
54
  end
55
55
  end
56
56
 
57
- describe FbGraph::Auth, '.from_signed_request' do
57
+ describe FbGraph::Auth, '#from_signed_request' do
58
58
  before do
59
59
  @signed_request = "LqsgnfcsRdfjOgyW6ZuSLpGBVsxUBegEqai4EcrWS0A=.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImV4cGlyZXMiOjAsImlzc3VlZF9hdCI6MTI5ODc4MzczOSwib2F1dGhfdG9rZW4iOiIxMzQxNDU2NDMyOTQzMjJ8MmI4YTZmOTc1NTJjNmRjZWQyMDU4MTBiLTU3OTYxMjI3NnxGS1o0akdKZ0JwN2k3bFlrOVhhUk1QZ3lhNnMiLCJ1c2VyIjp7ImNvdW50cnkiOiJqcCIsImxvY2FsZSI6ImVuX1VTIiwiYWdlIjp7Im1pbiI6MjF9fSwidXNlcl9pZCI6IjU3OTYxMjI3NiJ9"
60
60
  @auth = FbGraph::Auth.new('client_id', 'client_secret')
@@ -86,4 +86,35 @@ describe FbGraph::Auth, '.from_signed_request' do
86
86
  end.should raise_exception(FbGraph::Auth::VerificationFailed)
87
87
  end
88
88
  end
89
- end
89
+ end
90
+
91
+ describe FbGraph::Auth do
92
+ let(:auth) { FbGraph::Auth.new('client_id', 'client_secret') }
93
+
94
+ describe '#authorized?' do
95
+ subject { auth.authorized? }
96
+
97
+ context 'when access_token is given' do
98
+ before do
99
+ auth.access_token = 'access_token'
100
+ end
101
+ it { should be_true }
102
+ end
103
+
104
+ context 'otherwise' do
105
+ it { should be_false }
106
+ end
107
+ end
108
+
109
+ describe '#authorize_uri' do
110
+ let(:canvas_uri) { 'http://client.example.com/canvas' }
111
+ subject { auth.authorize_uri(canvas_uri) }
112
+ it { should == "https://www.facebook.com/dialog/oauth?client_id=client_id&redirect_uri=#{CGI.escape canvas_uri}" }
113
+
114
+ context 'when params are given' do
115
+ subject { auth.authorize_uri(canvas_uri, :scope => [:scope1, :scope2], :state => 'state1') }
116
+ it { should == "https://www.facebook.com/dialog/oauth?client_id=client_id&redirect_uri=#{CGI.escape canvas_uri}&scope=#{CGI.escape "scope1,scope2"}&state=state1" }
117
+ end
118
+ end
119
+ end
120
+
@@ -0,0 +1,34 @@
1
+ require File.join(File.dirname(__FILE__), '../../../spec_helper')
2
+
3
+ describe FbGraph::Page::Categories::LocalBusiness do
4
+ before do
5
+ fake_json(:get, 'local_business', 'pages/categories/local_business')
6
+ end
7
+ let(:page) { FbGraph::Page.new('local_business').fetch }
8
+ subject { page }
9
+
10
+ [:attire, :culinary_team, :general_manager, :phone, :price_range, :public_transit].each do |key|
11
+ its(key) { should be_instance_of String }
12
+ end
13
+
14
+ [:parking, :payment_options, :restaurant_services, :restaurant_specialties].each do |key|
15
+ its(key) { should be_instance_of Array }
16
+ describe key do
17
+ it 'should be an Array of Symbol' do
18
+ page.send(key).all? do |value|
19
+ value.should be_instance_of Symbol
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ its(:hours) { should be_instance_of Hash }
26
+ its(:hours) do
27
+ should == {
28
+ :mon => [
29
+ {:open => Time.parse('Wed Mar 23 09:00:00 UTC 2011')},
30
+ {:close => Time.parse('Wed Mar 23 17:00:00 UTC 2011')}
31
+ ]
32
+ }
33
+ end
34
+ end
@@ -23,13 +23,7 @@ describe FbGraph::Page, '.new' do
23
23
  page.category.should == 'Technology'
24
24
  page.username.should == 'platform'
25
25
  page.mission.should == 'To make the web more open and social.'
26
- page.products.should == [
27
- 'Facebook Application Programming Interface (API)',
28
- 'Facebook Query Language (FQL)',
29
- 'Facebook Markup Language (FBML)',
30
- 'Facebook JavaScript (FBJS)',
31
- 'Facebook Connect'
32
- ]
26
+ page.products.should == "Facebook Application Programming Interface (API)\nFacebook Query Language (FQL)\nFacebook Markup Language (FBML)\nFacebook JavaScript (FBJS)\nFacebook Connect\n"
33
27
  page.like_count.should == 578246
34
28
  page.company_overview.should == 'Facebook Platform enables anyone to build social applications on Facebook and the web.'
35
29
  page.link.should == 'http://www.facebook.com/platform'
@@ -56,7 +56,6 @@ describe FbGraph::User, '.fetch' do
56
56
  user.meeting_for.should == ['Friendship', 'Networking']
57
57
  user.relationship_status.should == 'Married'
58
58
  user.website.should == 'http://matake.jp'
59
- user.websites.should == ['http://matake.jp']
60
59
  user.religion.should be_nil
61
60
  user.political.should be_nil
62
61
  user.timezone.should == 9
@@ -136,7 +135,6 @@ describe FbGraph::User, '.fetch' do
136
135
  ]
137
136
  user.email.should == nil
138
137
  user.website.should == nil
139
- user.websites.should == []
140
138
  user.hometown.should == FbGraph::Page.new(109533479072558, :name => 'Minnetonka, Minnesota')
141
139
  user.interested_in.should == ['female']
142
140
  user.meeting_for.should == ['Friendship']
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fb_graph
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 6
9
- - 0
10
- version: 1.6.0
9
+ - 1
10
+ version: 1.6.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - nov matake
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-19 00:00:00 +09:00
18
+ date: 2011-03-20 00:00:00 +09:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -248,6 +248,7 @@ files:
248
248
  - spec/fake_json/events/maybe/smartday_private.json
249
249
  - spec/fake_json/events/noreply/smartday_private.json
250
250
  - spec/fake_json/groups/members/emacs_private.json
251
+ - spec/fake_json/pages/categories/local_business.json
251
252
  - spec/fake_json/pages/checkins/gowalla_private.json
252
253
  - spec/fake_json/pages/checkins/gowalla_public.json
253
254
  - spec/fake_json/pages/insights/FbGraph_private.json
@@ -399,6 +400,7 @@ files:
399
400
  - spec/fb_graph/message_spec.rb
400
401
  - spec/fb_graph/node_spec.rb
401
402
  - spec/fb_graph/note_spec.rb
403
+ - spec/fb_graph/page/categories/local_business_spec.rb
402
404
  - spec/fb_graph/page_spec.rb
403
405
  - spec/fb_graph/photo_spec.rb
404
406
  - spec/fb_graph/place_spec.rb
@@ -519,6 +521,7 @@ test_files:
519
521
  - spec/fb_graph/message_spec.rb
520
522
  - spec/fb_graph/node_spec.rb
521
523
  - spec/fb_graph/note_spec.rb
524
+ - spec/fb_graph/page/categories/local_business_spec.rb
522
525
  - spec/fb_graph/page_spec.rb
523
526
  - spec/fb_graph/photo_spec.rb
524
527
  - spec/fb_graph/place_spec.rb