fb_graph2 0.3.0 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f69edefe6360dd69310ab6c2c87dc9d94890d93b
4
- data.tar.gz: 8fcb5375fd51300055fe9e69779a0e75ca09da80
3
+ metadata.gz: cb23d11f93481b305d1edc1433580a7a62e2c344
4
+ data.tar.gz: 79b9f990bbb18327c530f5af0d9c6410614c3b69
5
5
  SHA512:
6
- metadata.gz: 0884c7248761519272ae057eddff6051121f5ae3b8138bb72e78152c39a94ae416e1368bd01d4172bc6c3dd7486952438582b994837fbd132e7fb50ca3044a78
7
- data.tar.gz: 465fef0736338ec0a102dc70c256a1b05ac103cff882b85aa24a5b586322191b9f2bf2b52b8aa230234ec176d028e3fb427602aa27fe9046450b2879128b8d82
6
+ metadata.gz: f49d9d739f9861eacec0297a3e6336d58d81d5f5eb072cb941556863e94d5de087f65cf5a1de7ef2fbf10d2f604af0f648ab667e0b665b5aa1c568412d0f291b
7
+ data.tar.gz: a6a2092207207a04d5761d3713376b088cc7a18d2583a67541b5efa054d35d248b30ab32a47c0b7a5c04f615a8706ffd4d22644de709bd52ec31720ed43df0f7
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.1
data/fb_graph2.gemspec CHANGED
@@ -5,7 +5,7 @@ Gem::Specification.new do |gem|
5
5
  gem.email = ['nov@matake.jp']
6
6
  gem.summary = %q{Facebook Graph API v2.0 Wrapper in Ruby}
7
7
  gem.description = %q{Facebook Graph API v2.0 Wrapper in Ruby}
8
- gem.homepage = 'https://github.com/fb_graph2'
8
+ gem.homepage = 'https://github.com/nov/fb_graph2'
9
9
  gem.license = 'MIT'
10
10
 
11
11
  gem.files = `git ls-files -z`.split("\x0")
data/lib/fb_graph2/app.rb CHANGED
@@ -7,7 +7,7 @@ module FbGraph2
7
7
  include Edge::Groups
8
8
  include Edge::Permissions
9
9
  include Edge::Picture
10
- include Edge::Roles
10
+ include Edge::Roles::AppContext
11
11
  include Edge::Scores
12
12
  include Edge::StaticResources
13
13
  include Edge::Subscriptions
@@ -1,10 +1,27 @@
1
1
  module FbGraph2
2
2
  class Edge
3
3
  module Roles
4
- def roles(params = {})
5
- roles = self.edge :roles, params
6
- roles.collect! do |role|
7
- Struct::Role.new role
4
+ module AppContext
5
+ def roles(params = {})
6
+ roles = self.edge :roles, params
7
+ roles.collect! do |role|
8
+ Struct::Role.new role
9
+ end
10
+ end
11
+ end
12
+
13
+ module PageContext
14
+ def roles(*args)
15
+ params = args.extract_options!
16
+ users = self.edge :roles, params, edge_scope: args.first
17
+ users.collect! do |user|
18
+ User.new(user[:id], user).authenticate self.access_token
19
+ end
20
+ if args.first.present?
21
+ users.first
22
+ else
23
+ users
24
+ end
8
25
  end
9
26
  end
10
27
  end
@@ -14,6 +14,7 @@ module FbGraph2
14
14
  include Edge::Photos
15
15
  include Edge::Posts
16
16
  include Edge::PromotablePosts
17
+ include Edge::Roles::PageContext
17
18
  include Edge::Settings
18
19
  include Edge::Statuses
19
20
  include Edge::Tagged
@@ -17,4 +17,51 @@ describe FbGraph2::Edge::Roles do
17
17
  end
18
18
  end
19
19
  end
20
+
21
+ context 'included in Page' do
22
+ let(:page) { FbGraph2::Page.new('page_id').authenticate('page_token') }
23
+
24
+ describe '#roles' do
25
+ it 'should return an Array of FbGraph2::User' do
26
+ roles = mock_graph :get, 'page_id/roles', 'page/roles', access_token: 'page_token' do
27
+ page.roles
28
+ end
29
+ roles.should be_instance_of FbGraph2::Edge
30
+ roles.should_not be_blank
31
+ roles.each do |role|
32
+ role.should be_instance_of FbGraph2::User
33
+ end
34
+ end
35
+
36
+ context 'when blank' do
37
+ it 'should return a blank Array' do
38
+ roles = mock_graph :get, 'page_id/roles', 'blank_collection', access_token: 'page_token' do
39
+ page.roles
40
+ end
41
+ roles.should be_instance_of FbGraph2::Edge
42
+ roles.should be_blank
43
+ end
44
+ end
45
+
46
+ context 'when user context specified' do
47
+ let(:user) { FbGraph2::User.new('user_id') }
48
+
49
+ it 'should return a FbGraph2::User' do
50
+ role = mock_graph :get, 'page_id/roles/user_id', 'page/roles_single', access_token: 'page_token' do
51
+ page.roles user
52
+ end
53
+ role.should be_instance_of FbGraph2::User
54
+ end
55
+
56
+ context 'when blank' do
57
+ it 'should return nil' do
58
+ role = mock_graph :get, 'page_id/roles/user_id', 'blank_collection', access_token: 'page_token' do
59
+ page.roles user
60
+ end
61
+ role.should be_nil
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
20
67
  end
@@ -0,0 +1,19 @@
1
+ {
2
+ "data": [{
3
+ "id": "10101078259835569",
4
+ "name": "Micah Wedemeyer",
5
+ "role": "Admin",
6
+ "perms": ["ADMINISTER", "EDIT_PROFILE", "CREATE_CONTENT", "MODERATE_CONTENT", "CREATE_ADS", "BASIC_ADMIN"]
7
+ }, {
8
+ "id": "579612276",
9
+ "name": "Nov Matake",
10
+ "role": "Admin",
11
+ "perms": ["ADMINISTER", "EDIT_PROFILE", "CREATE_CONTENT", "MODERATE_CONTENT", "CREATE_ADS", "BASIC_ADMIN"]
12
+ }],
13
+ "paging": {
14
+ "cursors": {
15
+ "before": "MTAxMDEwNzgyNTk4MzU1Njk=",
16
+ "after": "NTc5NjEyMjc2"
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "data": [{
3
+ "id": "579612276",
4
+ "name": "Nov Matake",
5
+ "role": "Admin",
6
+ "perms": ["ADMINISTER", "EDIT_PROFILE", "CREATE_CONTENT", "MODERATE_CONTENT", "CREATE_ADS", "BASIC_ADMIN"]
7
+ }],
8
+ "paging": {
9
+ "cursors": {
10
+ "before": "MTAxMDEwNzgyNTk4MzU1Njk=",
11
+ "after": "NTc5NjEyMjc2"
12
+ }
13
+ }
14
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fb_graph2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - nov matake
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-31 00:00:00.000000000 Z
11
+ date: 2014-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -367,6 +367,8 @@ files:
367
367
  - spec/mock_json/page/milestones.json
368
368
  - spec/mock_json/page/offers.json
369
369
  - spec/mock_json/page/promotable_posts.json
370
+ - spec/mock_json/page/roles.json
371
+ - spec/mock_json/page/roles_single.json
370
372
  - spec/mock_json/page/settings.json
371
373
  - spec/mock_json/page/with_optional_fields.json
372
374
  - spec/mock_json/post/comments.json
@@ -413,7 +415,7 @@ files:
413
415
  - spec/mock_json/user/videos.json
414
416
  - spec/spec_helper.rb
415
417
  - spec/spec_helper/mock_graph.rb
416
- homepage: https://github.com/fb_graph2
418
+ homepage: https://github.com/nov/fb_graph2
417
419
  licenses:
418
420
  - MIT
419
421
  metadata: {}