facegroups 0.2.1 → 0.2.2

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: 04725e907049b78e390aa9ee5ad677ff7e8dcdf7
4
- data.tar.gz: a37df0f984268609830f574f54da1a9f5553e13d
3
+ metadata.gz: 152e77831c3b594ae33626c56057d8fb18f932a5
4
+ data.tar.gz: a8b9d264b3d9c4b286bc2bd9439683ff8bd53ff7
5
5
  SHA512:
6
- metadata.gz: 7c2ae8344d0d913f4af02f68570ae1a607cd0ebe20fedebeac32226843f31872f0d65dd3eb68d512868d7aff9787871605c221a2fa091b03fb5ade39328342db
7
- data.tar.gz: 002d87d63de1e903d6dada806420119791e05527c70ac9d87a5f29f65237e7657caf38d09ce3fe58f5aebf591b51651e0e9237a395e84f0ba4f3bd74c4dc6de1
6
+ metadata.gz: 073edf44bb3f9c94215bff47e8f79384965791d3a3896e5845ef8dcd6f37117074daca460dabb098cad6ee4c01414ad48a8989adcd53dfcf78143f250da0016b
7
+ data.tar.gz: 568826166250023151216166adb15a7a9dfe6bae079d857a161224a6637520b1c4366cc39cbfd371c9236828b3118ec3eeeae47c5f1198e4fdeecac3c10fdf11
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- facegroups (0.1.0)
4
+ facegroups (0.2.2)
5
5
  http (~> 2.0)
6
6
 
7
7
  GEM
@@ -9,10 +9,12 @@ GEM
9
9
  specs:
10
10
  addressable (2.4.0)
11
11
  ast (2.3.0)
12
+ codeclimate-test-reporter (0.6.0)
13
+ simplecov (>= 0.7.1, < 1.0.0)
12
14
  crack (0.4.3)
13
15
  safe_yaml (~> 1.0.0)
14
16
  docile (1.1.5)
15
- domain_name (0.5.20160826)
17
+ domain_name (0.5.20161021)
16
18
  unf (>= 0.0.5, < 1.0.0)
17
19
  erubis (2.7.0)
18
20
  flay (2.8.1)
@@ -25,7 +27,7 @@ GEM
25
27
  ruby_parser (~> 3.1, > 3.1.0)
26
28
  sexp_processor (~> 4.4)
27
29
  hashdiff (0.3.0)
28
- http (2.0.3)
30
+ http (2.1.0)
29
31
  addressable (~> 2.3)
30
32
  http-cookie (~> 1.0)
31
33
  http-form_data (~> 1.0.1)
@@ -74,6 +76,7 @@ PLATFORMS
74
76
  ruby
75
77
 
76
78
  DEPENDENCIES
79
+ codeclimate-test-reporter (~> 0.6)
77
80
  facegroups!
78
81
  flay (~> 2.8)
79
82
  flog (~> 4.4)
@@ -15,7 +15,7 @@ module FaceGroups
15
15
 
16
16
  def self.find(id:)
17
17
  group_data = FbApi.group_data(id)
18
- new(group_data: group_data)
18
+ group_data.include?('error') ? nil : new(group_data: group_data)
19
19
  end
20
20
  end
21
21
  end
@@ -13,7 +13,7 @@ module FaceGroups
13
13
 
14
14
  def self.find(id:)
15
15
  posting_data = FaceGroups::FbApi.posting_data(id)
16
- new(data: posting_data)
16
+ posting_data.keys.include?('error') ? nil : new(data: posting_data)
17
17
  end
18
18
 
19
19
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FaceGroups
4
- VERSION = '0.2.1'
4
+ VERSION = '0.2.2'
5
5
  end
@@ -27,11 +27,11 @@ describe 'FaceGroups specifications' do
27
27
  end
28
28
 
29
29
  describe 'FbApi Credentials' do
30
- it 'should be able to get a new access token with ENV credentials' do
30
+ it '(HAPPY) should get new access token with ENV credentials' do
31
31
  FaceGroups::FbApi.access_token.length.must_be :>, 0
32
32
  end
33
33
 
34
- it 'should be able to get a new access token with file credentials' do
34
+ it '(HAPPY) should get new access token with file credentials' do
35
35
  FaceGroups::FbApi.config = {
36
36
  client_id: ENV['FB_CLIENT_ID'],
37
37
  client_secret: ENV['FB_CLIENT_SECRET']
@@ -39,36 +39,43 @@ describe 'FaceGroups specifications' do
39
39
  FaceGroups::FbApi.access_token.length.must_be :>, 0
40
40
  end
41
41
  end
42
+ end
43
+
44
+ describe 'Finding Group Information' do
45
+ describe 'Find a Group' do
46
+ it '(HAPPY) should be able to find a Facebook Group with proper ID' do
47
+ group = FaceGroups::Group.find(id: ENV['FB_GROUP_ID'])
42
48
 
43
- it 'should be able to open a Facebook Group' do
44
- group = FaceGroups::Group.find(
45
- id: ENV['FB_GROUP_ID']
46
- )
49
+ group.name.length.must_be :>, 0
50
+ end
47
51
 
48
- group.name.length.must_be :>, 0
52
+ it '(SAD) should return nil if Group ID is invalid' do
53
+ group = FaceGroups::Group.find(id: INVALID_RESOURCE_ID)
54
+ group.must_be_nil
55
+ end
49
56
  end
50
57
 
51
- it 'should get the latest feed from a group' do
52
- group = FaceGroups::Group.find(
53
- id: ENV['FB_GROUP_ID']
54
- )
58
+ describe 'Retrieving Group Feed' do
59
+ it '(HAPPY) should get the latest feed from a group with proper ID' do
60
+ group = FaceGroups::Group.find(id: ENV['FB_GROUP_ID'])
55
61
 
56
- feed = group.feed
57
- feed.count.must_be :>, 1
58
- end
62
+ feed = group.feed
63
+ feed.count.must_be :>, 1
64
+ end
59
65
 
60
- it 'should get basic information about postings on the feed' do
61
- group = FaceGroups::Group.find(
62
- id: ENV['FB_GROUP_ID']
63
- )
66
+ it '(HAPPY) should get the postings on the feed with proper ID' do
67
+ group = FaceGroups::Group.find(id: ENV['FB_GROUP_ID'])
64
68
 
65
- group.feed.postings.each do |posting|
66
- posting.id.wont_be_nil
67
- posting.updated_time.wont_be_nil
69
+ group.feed.postings.each do |posting|
70
+ posting.id.wont_be_nil
71
+ posting.updated_time.wont_be_nil
72
+ end
68
73
  end
69
74
  end
75
+ end
70
76
 
71
- it 'should find all parts of a full posting' do
77
+ describe 'Finding Posting Information' do
78
+ it ' (HAPPY) should find all parts of a full posting' do
72
79
  posting = FB_RESULT['posting']
73
80
  attachment = posting['attachment'].first
74
81
  retrieved = FaceGroups::Posting.find(id: posting['id'])
@@ -81,6 +88,13 @@ describe 'FaceGroups specifications' do
81
88
  retrieved.attachment.url.must_match 'tutorialzine'
82
89
  end
83
90
 
91
+ it '(SAD) should return nil if Posting ID is invalid' do
92
+ posting = FaceGroups::Posting.find(id: INVALID_RESOURCE_ID)
93
+ posting.must_be_nil
94
+ end
95
+ end
96
+
97
+ describe 'Command Line Executable Actions' do
84
98
  it 'should run the executable file' do
85
99
  output = FaceGroups::Runner.run!([ENV['FB_GROUP_ID']])
86
100
  output.split("\n").length.must_be :>, 5
@@ -12,7 +12,7 @@ http_interactions:
12
12
  Host:
13
13
  - graph.facebook.com
14
14
  User-Agent:
15
- - http.rb/2.0.3
15
+ - http.rb/2.1.0
16
16
  response:
17
17
  status:
18
18
  code: 200
@@ -31,13 +31,13 @@ http_interactions:
31
31
  Content-Type:
32
32
  - application/json; charset=UTF-8
33
33
  X-Fb-Trace-Id:
34
- - GggmQNd9Ryq
34
+ - EIz8PlH74FI
35
35
  X-Fb-Rev:
36
- - '2657702'
36
+ - '2702404'
37
37
  X-Fb-Debug:
38
- - NRyFUekFi6xy5Y2/aYwZpfmOj1o/FneWpB3f8vFtSyGSaHrIVgvgULIsXLEYm99m2y9PhrKhDhTjLvTJ29mVLw==
38
+ - DZjMLSd0p4z+nNyu+XezdBvSa21+zvek2OxwgFMOf2nRmm4SbQMuAo77Vxgs1mfIr+JTyb6nn6crEVUBEdxQag==
39
39
  Date:
40
- - Wed, 02 Nov 2016 05:07:22 GMT
40
+ - Fri, 25 Nov 2016 06:09:53 GMT
41
41
  Connection:
42
42
  - close
43
43
  Content-Length:
@@ -46,165 +46,5 @@ http_interactions:
46
46
  encoding: UTF-8
47
47
  string: '{"access_token":"<ACCESS_TOKEN>","token_type":"bearer"}'
48
48
  http_version:
49
- recorded_at: Wed, 02 Nov 2016 05:07:21 GMT
50
- - request:
51
- method: get
52
- uri: https://graph.facebook.com/150352985174571?access_token=<CLIENT_ID>%7C0WiNEz4rbcf5Ki0Ge4vR7m4Wlts&fields=id,name,feed%7Bname,message,updated_time,created_time,attachments%7Btitle,description,url,media%7D%7D
53
- body:
54
- encoding: US-ASCII
55
- string: ''
56
- headers:
57
- Connection:
58
- - close
59
- Host:
60
- - graph.facebook.com
61
- User-Agent:
62
- - http.rb/2.0.3
63
- response:
64
- status:
65
- code: 200
66
- message: OK
67
- headers:
68
- Access-Control-Allow-Origin:
69
- - "*"
70
- Etag:
71
- - '"5e198c115d2b08deb673e2609d0ba04745578f94"'
72
- Pragma:
73
- - no-cache
74
- Cache-Control:
75
- - private, no-cache, no-store, must-revalidate
76
- Facebook-Api-Version:
77
- - v2.7
78
- Expires:
79
- - Sat, 01 Jan 2000 00:00:00 GMT
80
- Content-Type:
81
- - text/javascript; charset=UTF-8
82
- X-Fb-Trace-Id:
83
- - GBItdk/tABx
84
- X-Fb-Rev:
85
- - '2657702'
86
- Vary:
87
- - Accept-Encoding
88
- X-Fb-Debug:
89
- - 62bwQNbMua8/VsTScByUN5uw8DWJmxKvYy4UYf4XuLcK+XhiWV91WNqFzn57Ts0BwZRvkVNvYPqE/Ab/DyB99A==
90
- Date:
91
- - Wed, 02 Nov 2016 05:07:23 GMT
92
- Connection:
93
- - close
94
- body:
95
- encoding: UTF-8
96
- string: '{"id":"150352985174571","name":"Web Service Development \u0040 NTHU","feed":{"data":[{"name":"seriot.ch
97
- - Parsing JSON is a Minefield \ud83d\udca3","message":"From the article: \"JSON
98
- is not a data format you can rely on blindly [...] edge cases and maliciously
99
- crafted payloads can cause bugs, crashes and denial of services, mainly because
100
- JSON libraries rely on specifications that have evolved over time and that
101
- left many details loosely specified or not specified at all.\" Long story
102
- short: it seems XML will never die :D (actually, parsing XML is even worse...)","updated_time":"2016-10-28T02:09:39+0000","created_time":"2016-10-27T14:46:58+0000","id":"150352985174571_527664860776713","attachments":{"data":[{"title":"seriot.ch
103
- - Parsing JSON is a Minefield \ud83d\udca3","description":"JSON is the de
104
- facto standard when it comes to (un)serialising and exchanging data in web
105
- and mobile programming. But how well do you really know JSON? We''ll read
106
- the specifications and write test cases together. We''ll test common JSON
107
- libraries against our test cases. I''ll show that JSON is not the...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fseriot.ch\u00252Fparsing_json.html&h=UAQGQRX4b&s=1&enc=AZPKGnoDkgEWd-V4gnZ12jSPx6qn9GwBc7fNMWXaO6MJkDRidifqdykfNzRcn1Iu_VSndfKRP0YJrzlaxVh3JZPz","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBafep0D8nqgNS7&w=720&h=720&url=http\u00253A\u00252F\u00252Fseriot.ch\u00252Fjson\u00252Fpruned_results.png&cfs=1","width":720}}}]}},{"name":"GitHub
108
- Dumps REST Calls for Facebook''s GraphQL - The New Stack","message":"Github''s
109
- adoption of GraphQL for APIs, over RESTful services, might be the tipping
110
- point that makes GraphQL ubiquitous. From what little exposure I have to it
111
- (thanks to YenTing and Yen-Nan at Cardinal Blue), it seems we are taking the
112
- complexity and burden of APIs away from API consumers, and putting it squarely
113
- at the feet of API providers. That means using APIs is about to become significantly
114
- easier (albeit more deeply nested) for everyone! But it also means that creating
115
- APIs is about to become significantly harder. Read more about the big shift
116
- at Github.","updated_time":"2016-10-20T08:29:06+0000","created_time":"2016-10-20T05:45:32+0000","id":"150352985174571_524070464469486","attachments":{"data":[{"title":"GitHub
117
- Dumps REST Calls for Facebook''s GraphQL - The New Stack","description":"Hoping
118
- to streamline the remote querying services of its site, GitHub is moving its
119
- API (application programming interface) from REST calls to Facebook\u2019s
120
- GraphQL API. In the company\u2019s recent user conference GitHub Universe,
121
- Kyle Daigle, GitHub platform engineering manager, explained that the company...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fgithub-dumps-rest-graphql-api\u00252F&h=_AQEI0kXl&s=1&enc=AZMG7qsP4WAE7z5rrdgoWuVPkGChRFMJZGQxyXDNXtFUArlUFhWgOwa5KblbIyuR7zmr5z2CGw8N0y8o5POnsSWE","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC5HLw3s46cLqn7&w=720&h=720&url=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F09\u00252FGHU-GraphQL-Woah.jpg&cfs=1&sx=0&sy=0&sw=2448&sh=2448","width":720}}}]}},{"name":"Taking
122
- PHP Seriously","message":"https:\/\/m.facebook.com\/story.php?story_fbid=1098448240203391&id=100001146751327","updated_time":"2016-10-13T18:17:23+0000","created_time":"2016-10-13T17:15:20+0000","id":"150352985174571_521137638096102","attachments":{"data":[{"title":"Taking
123
- PHP Seriously","description":"by Keith Adams, Slack Engineering","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fslack.engineering\u00252Ftaking-php-seriously-cf7a60065329\u002523.g3w9ecf66&h=RAQFtsAiO&s=1&enc=AZN-5j4shGMS2JkJXLC5q7kCPj4qe6ycAuj8c_U_mRA4UamZICD_KTXPRsMa8EOmnihv20rFUrtxK8ge_8HZYKuF","media":{"image":{"height":669,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCmbxAdG46sLBUD&w=720&h=720&url=https\u00253A\u00252F\u00252Fd262ilb51hltx0.cloudfront.net\u00252Fmax\u00252F1200\u00252F1\u00252Ax5N8tfTVEmQro2ySxoZtvw.jpeg&cfs=1","width":669}}}]}},{"name":"How
124
- To Save The Princess In 8 Programming Languages","updated_time":"2016-10-06T08:39:47+0000","created_time":"2016-10-06T08:28:40+0000","id":"150352985174571_518029841740215","attachments":{"data":[{"title":"How
125
- To Save The Princess In 8 Programming Languages","description":"Programming
126
- sucks. This fairytale comic shows the different ways in which programming
127
- languages could fail you in the fantasy kingdom.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fprogramming-princess&h=5AQGtDKXT&s=1&enc=AZOexDE35TO7ekXw1tL_NDKqddykXMcXshHtRNrMo6PAQEQyZXxmAj2CNTm93qHpXUX-yIbhUygt3Lhqqf97vpPE","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQDEZQJwFjW82Fzm&w=720&h=720&url=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fimages\u00252Fshare-img\u00252Ffb-share-git-princess.jpg&cfs=1","width":630}}}]}},{"name":"Guess
128
- the Programming Language | Tutorialzine","message":"A little quiz to keep
129
- you sharp on programming trends.","updated_time":"2016-10-06T06:51:44+0000","created_time":"2016-10-04T02:21:25+0000","id":"150352985174571_517105121832687","attachments":{"data":[{"title":"Guess
130
- the Programming Language | Tutorialzine","description":"Can you tell Java
131
- from JavaScript? Awesome! So you are ready to take our ultimate programming
132
- challenge.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftutorialzine.com\u00252F2014\u00252F06\u00252Fguess-the-programming-language\u00252F&h=2AQG8RLQa&s=1&enc=AZNHAkruam89tHrbNhUDwn2CZnRGRn-dnlGpnCdBKu9G5q9UiMeLc0BMViE7HNzufAf2DwX3bVynC2XId_h4H1ga","media":{"image":{"height":490,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB9saA-D40lNQqm&w=720&h=720&url=http\u00253A\u00252F\u00252Fcdn.tutorialzine.com\u00252Fwp-content\u00252Fuploads\u00252F2014\u00252F06\u00252Fguess-the-programming-language.jpg&cfs=1","width":490}}}]}},{"name":"How
133
- it feels to learn JavaScript in 2016","updated_time":"2016-10-06T01:18:12+0000","created_time":"2016-10-05T13:47:43+0000","id":"150352985174571_517701838439682","attachments":{"data":[{"title":"How
134
- it feels to learn JavaScript in 2016","description":"Edit: Thanks for pointing
135
- typos and mistakes, I\u2019ll update the article as noted. Discussion in HackerNews
136
- and Reddit.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fhackernoon.com\u00252Fhow-it-feels-to-learn-javascript-in-2016-d3a717dd577f\u002523.m0lkkfan1&h=NAQE1vnlE&s=1&enc=AZNB-AqGB3BNuEP-4XzWR7_3cYMuvNodRCgzAJAZx1lnYI2gi0er48ma1ilNuZ8pcZi51jpx5W72YkS9cGVnw588","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBw5xIxnMhHtpnj&w=720&h=720&url=https\u00253A\u00252F\u00252Fcdn-images-2.medium.com\u00252Fmax\u00252F1200\u00252F1\u00252AraWO3dhM4jMjf9VY-kZzNg.png&cfs=1","width":720}}}]}},{"name":"5
137
- emerging programming languages with a bright future","message":"Up and coming
138
- languages worth keeping our eyes on. I''m already a huge fan of Crystal and
139
- Rust, but the author has convinced me to pay more attention to Kotlin and
140
- Elm.","updated_time":"2016-09-22T08:12:35+0000","created_time":"2016-09-21T10:13:58+0000","id":"150352985174571_511894255687107","attachments":{"data":[{"title":"5
141
- emerging programming languages with a bright future","description":"Get the
142
- elevator pitch for five of the most promising languages (some of them you
143
- probably haven''t heard of before) that have the potential to grow...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252F5-emerging-programming-languages-bright-future\u00253Futm_content\u00253Dbuffer300a1\u002526utm_medium\u00253Dsocial\u002526utm_source\u00253Dtwitter.com\u002526utm_campaign\u00253Dbuffer&h=HAQHG9V0a&s=1&enc=AZPxF0KnzWXKWSxJhIsR-cEnbSv3pCjDdkR9j0h9m7ek_gmZz6wI1BDiraWKwzZpflf6v21rQhUqXGhmfipDT87E","media":{"image":{"height":480,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAxbtCPHht3vWb6&w=720&h=720&url=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252Fsites\u00252Fdefault\u00252Ffiles\u00252Fstyles\u00252Fsocial\u00252Fpublic\u00252Ffield\u00252Fimage\u00252F5_emerging_programming_languages_with_a_bright_future.jpg\u00253Fitok\u00253Dm0nlEinF&cfs=1","width":480}}}]}},{"name":"A
144
- whole new Universe","message":"I can''t even wrap my head around all the new
145
- features Github just released: code reviews, kanban boards, and much more.","updated_time":"2016-09-19T09:14:51+0000","created_time":"2016-09-15T03:42:48+0000","id":"150352985174571_509461352597064","attachments":{"data":[{"title":"A
146
- whole new Universe","description":"Learn about the exciting features and announcements
147
- revealed at this year\u2019s annual GitHub Universe conference at historic
148
- Pier 70 in San Francisco.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fgithub.com\u00252Funiverse-2016&h=BAQGEWDdf&s=1&enc=AZOTH7qOaJiI2qGBBxtzbqzxx6mvbiZ-FU8x7pe8CJ4KGHdFMRFBP31626IfXIwjr__SY9RBJvdyt9jupfXcCHvu","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBsb70KV75vMJ8B&w=720&h=720&url=https\u00253A\u00252F\u00252Fassets-cdn.github.com\u00252Fimages\u00252Fmodules\u00252Funiverse-2016\u00252Funiverse-open-graph.png&cfs=1","width":630}}}]}},{"name":"Vert.x","message":"http:\/\/vertx.io\/","updated_time":"2016-09-13T20:34:39+0000","created_time":"2016-09-13T20:34:39+0000","id":"150352985174571_508953969314469","attachments":{"data":[{"title":"Vert.x","description":"Vert.x
149
- is a tool-kit for building reactive applications on the JVM.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fvertx.io\u00252F&h=BAQGEWDdf&s=1&enc=AZNMZ1fniUfBXdq2EmR_iYFDl3XQ3riZPkfiK6yDlnY31I-HXbCo4Xn6xI3M2MqNAxbcVjWBFqatJS95zz8GQ3r0","media":{"image":{"height":360,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC13D8UqDGMX5IF&w=720&h=720&url=http\u00253A\u00252F\u00252Fvertx.io\u00252Fassets\u00252Fuser_logos\u00252Fswisscom.png&cfs=1","width":360}}}]}},{"name":"Codecademy","updated_time":"2016-09-13T02:04:20+0000","created_time":"2016-09-13T02:04:20+0000","id":"150352985174571_508631766013356","attachments":{"data":[{"title":"Timeline
150
- Photos","description":"Are you a Javascript guru? Then you should check out
151
- our course in React.js!\n\nReact enables websites to display complex animations,
152
- large volumes of data, or other memory-heavy tasks without slowing down. At
153
- the end of the course, you\u2019ll know how to build sophisticated React applications.
154
- Check it out!\n\nhttp:\/\/codecademy.io\/YRFS3047CDf","url":"https:\/\/www.facebook.com\/codecademy\/photos\/a.553205214692855.138303.272256069454439\/1387442691269099\/?type=3","media":{"image":{"height":377,"src":"https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/s720x720\/14264951_1387442691269099_7557697962736020966_n.png?oh=1c67604ccd5679d98c72100f943f3863&oe=5891713F","width":720}}}]}}],"paging":{"previous":"https:\/\/graph.facebook.com\/v2.7\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,description,url,media\u00257D&since=1477620579&access_token=<ACCESS_TOKEN>&limit=25&__paging_token=enc_AdAchevYgL0m5xCIn76hqJ3aBASZBLnnBkHzYtokZBey5PDaQuxdVxZBDfJm2ifeekq5qoALQ6ZA4IMrAhmfWQ5dqvhVBMLvnbwrEWU90LoviZCxtZBgZDZD&__previous=1","next":"https:\/\/graph.facebook.com\/v2.7\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,description,url,media\u00257D&access_token=<ACCESS_TOKEN>&limit=25&until=1473732260&__paging_token=enc_AdA5yvCYKggN5gwcOMpKsofaKTcjoBDhX09ctf67EExuFDAc0wxCiNzAyIGndHrMAZCrp9QmVKgQaJrU3U5ORbHEtw7NHfA9kZAKWKz6jUvEBtYAZDZD"}}}'
155
- http_version:
156
- recorded_at: Wed, 02 Nov 2016 05:07:21 GMT
157
- - request:
158
- method: get
159
- uri: https://graph.facebook.com/150352985174571_517105121832687?access_token=<CLIENT_ID>%7C0WiNEz4rbcf5Ki0Ge4vR7m4Wlts&fields=name,message,updated_time,created_time,attachments%7Btitle,description,url,media%7D
160
- body:
161
- encoding: US-ASCII
162
- string: ''
163
- headers:
164
- Connection:
165
- - close
166
- Host:
167
- - graph.facebook.com
168
- User-Agent:
169
- - http.rb/2.0.3
170
- response:
171
- status:
172
- code: 200
173
- message: OK
174
- headers:
175
- Access-Control-Allow-Origin:
176
- - "*"
177
- Etag:
178
- - '"27327e2f51ece7cfe83c99526423bcabead41d2f"'
179
- Pragma:
180
- - no-cache
181
- Cache-Control:
182
- - private, no-cache, no-store, must-revalidate
183
- Facebook-Api-Version:
184
- - v2.7
185
- Expires:
186
- - Sat, 01 Jan 2000 00:00:00 GMT
187
- Content-Type:
188
- - text/javascript; charset=UTF-8
189
- X-Fb-Trace-Id:
190
- - DkYopdItcdU
191
- X-Fb-Rev:
192
- - '2657702'
193
- Vary:
194
- - Accept-Encoding
195
- X-Fb-Debug:
196
- - jXpN1eHL+3JeRAKJGdX2y71uGqZnqPusLzTnxojeTsCFpiC/nOjxpKLQLhP7vk3UOBhhBP9DWYmiXJFp6dA9xg==
197
- Date:
198
- - Wed, 02 Nov 2016 05:07:23 GMT
199
- Connection:
200
- - close
201
- body:
202
- encoding: UTF-8
203
- string: '{"name":"Guess the Programming Language | Tutorialzine","message":"A
204
- little quiz to keep you sharp on programming trends.","updated_time":"2016-10-06T06:51:44+0000","created_time":"2016-10-04T02:21:25+0000","attachments":{"data":[{"title":"Guess
205
- the Programming Language | Tutorialzine","description":"Can you tell Java
206
- from JavaScript? Awesome! So you are ready to take our ultimate programming
207
- challenge.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftutorialzine.com\u00252F2014\u00252F06\u00252Fguess-the-programming-language\u00252F&h=WAQF2RvSH&s=1&enc=AZNnPD9PkV-Fi2zXmBc0G2m2vfSBK13pfsnMUdi4CW0nr4vDwrP3zDG65w8tqf_gFbQZccbOzm8O5E9-Ofcur0WY","media":{"image":{"height":490,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB9saA-D40lNQqm&w=720&h=720&url=http\u00253A\u00252F\u00252Fcdn.tutorialzine.com\u00252Fwp-content\u00252Fuploads\u00252F2014\u00252F06\u00252Fguess-the-programming-language.jpg&cfs=1","width":490}}}]},"id":"150352985174571_517105121832687"}'
208
- http_version:
209
- recorded_at: Wed, 02 Nov 2016 05:07:22 GMT
49
+ recorded_at: Fri, 25 Nov 2016 06:09:33 GMT
210
50
  recorded_with: VCR 3.0.3
data/spec/spec_helper.rb CHANGED
@@ -24,3 +24,4 @@ end
24
24
 
25
25
  RESULT_FILE = "#{FIXTURES_FOLDER}/fb_api_results.yml"
26
26
  FB_RESULT = YAML.load(File.read(RESULT_FILE))
27
+ INVALID_RESOURCE_ID = '_12345'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facegroups
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aditya Utama Wijaya
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-02 00:00:00.000000000 Z
11
+ date: 2016-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http