facegroups 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +6 -3
- data/lib/facegroups/group.rb +1 -1
- data/lib/facegroups/posting.rb +1 -1
- data/lib/facegroups/version.rb +1 -1
- data/spec/facegroups_spec.rb +36 -22
- data/spec/fixtures/cassettes/facebook_api.yml +6 -166
- data/spec/spec_helper.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 152e77831c3b594ae33626c56057d8fb18f932a5
|
4
|
+
data.tar.gz: a8b9d264b3d9c4b286bc2bd9439683ff8bd53ff7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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.
|
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
|
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)
|
data/lib/facegroups/group.rb
CHANGED
data/lib/facegroups/posting.rb
CHANGED
data/lib/facegroups/version.rb
CHANGED
data/spec/facegroups_spec.rb
CHANGED
@@ -27,11 +27,11 @@ describe 'FaceGroups specifications' do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
describe 'FbApi Credentials' do
|
30
|
-
it 'should
|
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
|
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
|
-
|
44
|
-
|
45
|
-
id: ENV['FB_GROUP_ID']
|
46
|
-
)
|
49
|
+
group.name.length.must_be :>, 0
|
50
|
+
end
|
47
51
|
|
48
|
-
|
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
|
-
|
52
|
-
group
|
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
|
-
|
57
|
-
|
58
|
-
|
62
|
+
feed = group.feed
|
63
|
+
feed.count.must_be :>, 1
|
64
|
+
end
|
59
65
|
|
60
|
-
|
61
|
-
|
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
|
-
|
66
|
-
|
67
|
-
|
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
|
-
|
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
|
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
|
-
-
|
34
|
+
- EIz8PlH74FI
|
35
35
|
X-Fb-Rev:
|
36
|
-
- '
|
36
|
+
- '2702404'
|
37
37
|
X-Fb-Debug:
|
38
|
-
-
|
38
|
+
- DZjMLSd0p4z+nNyu+XezdBvSa21+zvek2OxwgFMOf2nRmm4SbQMuAo77Vxgs1mfIr+JTyb6nn6crEVUBEdxQag==
|
39
39
|
Date:
|
40
|
-
-
|
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:
|
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
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.
|
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-
|
11
|
+
date: 2016-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|