facebook_page_parser 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,40 @@
1
+ #encoding: utf-8
2
+
3
+ module FacebookPageParser
4
+ module Exceptions
5
+ class AuthenticationFailedError < StandardError
6
+ end
7
+
8
+ class ResourceNotAvailableError < StandardError
9
+ end
10
+
11
+ class UnauthorizedAccessError < StandardError
12
+ end
13
+
14
+ class UnknownServerError < StandardError
15
+ end
16
+
17
+ class WebServiceNotAvailableError < StandardError
18
+ end
19
+
20
+ def handle_failure(response)
21
+ case response.code
22
+ when "401"
23
+ message = "Authentication failure. HTTP status 401"
24
+ raise AuthenticationFailedError, message
25
+ when "403"
26
+ message = "Unauthorized access. HTTP status 403"
27
+ raise UnauthorizedAccessError, message
28
+ when "404"
29
+ message = "Resource not found. HTTP status 404"
30
+ raise ResourceNotAvailableError, message
31
+ when "500"
32
+ message = "Web service reported an internal error. HTTP status 500"
33
+ raise UnknownServerError, message
34
+ else
35
+ message = "Web Service unavailable - unidentified error. HTTP status #{response.code}"
36
+ raise WebServiceNotAvailableError, message
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,36 @@
1
+ #encoding: utf-8
2
+
3
+ require 'httparty'
4
+ require 'facebook_page_parser/exceptions'
5
+
6
+ module FacebookPageParser
7
+ class Parser
8
+ include HTTParty
9
+ extend Exceptions
10
+
11
+ attr_reader :page
12
+
13
+ def initialize(page)
14
+ @page = parse_url(page)
15
+ end
16
+
17
+ def parse_url(url)
18
+ url = url.gsub(/(http:\/\/)?([a-z\-]+|www)?\.?facebook.com\//,"")
19
+ id = (url.match(/(pages)+/)) ? url.split("/").last : url
20
+ "https://graph.facebook.com/#{id}"
21
+ end
22
+
23
+ #memoize request
24
+ def request
25
+ @request ||= self.class.get(@page)
26
+ end
27
+
28
+ def get
29
+ if request.success?
30
+ request
31
+ else
32
+ self.class.handle_failure(request.response)
33
+ end
34
+ end
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: facebook_page_parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Nicholas Pufal
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-02-24 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: httparty
16
+ requirement: &70357090866280 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70357090866280
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &70357090865060 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70357090865060
36
+ - !ruby/object:Gem::Dependency
37
+ name: vcr
38
+ requirement: &70357090863960 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70357090863960
47
+ - !ruby/object:Gem::Dependency
48
+ name: webmock
49
+ requirement: &70357090863280 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.7.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70357090863280
58
+ description: This is a very simple parser for Facebook Pages (a.k.a fan pages), using
59
+ the Graph API. This gem was made in 2 hours for an experimental project, so many
60
+ small fixes need to be made. You're welcome to make a pull request :)'
61
+ email:
62
+ - niko.pufal@gmail.com
63
+ executables: []
64
+ extensions: []
65
+ extra_rdoc_files: []
66
+ files:
67
+ - lib/facebook_page_parser/exceptions.rb
68
+ - lib/facebook_page_parser.rb
69
+ homepage: https://github.com/nicholaspufal/facebook-page-parser
70
+ licenses: []
71
+ post_install_message:
72
+ rdoc_options: []
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ requirements: []
88
+ rubyforge_project:
89
+ rubygems_version: 1.8.15
90
+ signing_key:
91
+ specification_version: 3
92
+ summary: Parser for Facebook Pages using the Graph API
93
+ test_files: []
94
+ has_rdoc: