mosaic-facebook 0.2.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,8 +2,11 @@ module Mosaic
2
2
  module Facebook
3
3
  module Api
4
4
  class ApiObject < Mosaic::Facebook::Object
5
- base_uri 'https://api.facebook.com'
6
-
5
+ class << self
6
+ def base_uri
7
+ 'https://api.facebook.com'
8
+ end
9
+ end
7
10
  end
8
11
  end
9
12
  end
@@ -5,12 +5,12 @@ require 'mosaic/facebook/error'
5
5
  module Mosaic
6
6
  module Facebook
7
7
  class Notification < Mosaic::Facebook::Api::ApiObject
8
-
8
+
9
9
  class << self
10
10
  # send_email requires these parameters: to, subject, body, access_token
11
11
  def send_email(options)
12
- response = get("/method/notifications.sendEmail", :query => options)
13
- raise Mosaic::Facebook::Error.new(response['error_response']) if response.include?('error_response')
12
+ response = new.get('/method/notifications.sendEmail', options)
13
+ raise Mosaic::Facebook::Error.new(response.body['error_response']) if response.body.include?('error_response')
14
14
  response
15
15
  end
16
16
  end
@@ -40,19 +40,19 @@ module Mosaic
40
40
  when Hash
41
41
  conditions.collect { |name,value| build_fql_condition(name,value) }.join(' AND ')
42
42
  else
43
- raise TypeError, "expected string or hash of FQL conditions"
43
+ raise TypeError, 'expected string or hash of FQL conditions'
44
44
  end
45
45
  end
46
46
 
47
47
  def find(*args)
48
- response = with_retry(Mosaic::Facebook::Fql::UnknownError) { find_by_fql(*args) }
48
+ response = find_by_sql(*args)
49
49
  data = response['fql_query_response'][record_name] || []
50
50
  data = [data] unless data.is_a?(Array)
51
51
  data.collect { |attributes| new(attributes) }
52
52
  end
53
53
 
54
54
  def find_by_fql(*args)
55
- response = get('/method/fql.query', :query => build_fql(*args))
55
+ response = new.get('/method/fql.query', build_fql(*args))
56
56
  raise Mosaic::Facebook::Error.new(response['error_response']) if response.include?('error_response')
57
57
  response
58
58
  end
@@ -16,7 +16,7 @@ module Mosaic
16
16
  class << self
17
17
  def all(options = {})
18
18
  # need 'manage_pages' extended permission to get pages (via accounts connection)
19
- @all ||= find("/me/accounts", options)
19
+ @all ||= find('/me/accounts', options)
20
20
  end
21
21
 
22
22
  def find_by_name(name, options = {})
@@ -2,31 +2,35 @@ module Mosaic
2
2
  module Facebook
3
3
  module Graph
4
4
  class GraphObject < Mosaic::Facebook::Object
5
- base_uri 'https://graph.facebook.com'
5
+ class << self
6
+ def base_uri
7
+ 'https://graph.facebook.com'
8
+ end
9
+ end
6
10
 
7
11
  def delete(path, options = {})
8
12
  response = super(path, options)
9
- raise Mosaic::Facebook::Error.new(response['error']) if !response.success?
13
+ raise Mosaic::Facebook::Error.new(response.body['error']) if !response.success?
10
14
  response
11
15
  end
12
16
 
13
17
  def get(path, options = {})
14
18
  response = super(path, options)
15
- raise Mosaic::Facebook::Error.new(response['error']) if !response.success?
19
+ raise Mosaic::Facebook::Error.new(response.body['error']) if !response.success?
16
20
  response
17
21
  end
18
22
 
19
23
  def post(path, options = {})
20
24
  response = super(path, options)
21
- raise Mosaic::Facebook::Error.new(response['error']) if !response.success?
25
+ raise Mosaic::Facebook::Error.new(response.body['error']) if !response.success?
22
26
  response
23
27
  end
24
28
 
25
29
  class << self
26
30
  def find(path, options = {})
27
- response = get(path, :query => options)
28
- raise Mosaic::Facebook::Error.new(response['error']) if !response.success?
29
- data = response.parsed_response
31
+ response = new.get(path, options)
32
+ raise Mosaic::Facebook::Error.new(response.body['error']) if !response.success?
33
+ data = response.body
30
34
  if data.include?('data')
31
35
  data['data'].collect { |attributes| new(attributes) }
32
36
  else
@@ -10,7 +10,7 @@ module Mosaic
10
10
  end
11
11
 
12
12
  def picture
13
- @picture.is_a?(Hash) ? @picture["data"]["url"] : @picture
13
+ @picture.is_a?(Hash) ? @picture['data']['url'] : @picture
14
14
  end
15
15
 
16
16
  class << self
@@ -1,24 +1,42 @@
1
- require 'httparty'
1
+ require 'faraday'
2
+ require 'faraday_middleware'
3
+ require 'mosaic/facebook/error'
4
+ require 'multi_xml'
2
5
 
3
6
  module Mosaic
4
7
  module Facebook
5
8
  class Object
6
- include HTTParty
7
9
  # debug_output
8
10
 
11
+ class << self
12
+ def base_uri
13
+ raise NotImplementedError
14
+ end
15
+ end
16
+
9
17
  def initialize(attributes = {})
10
18
  attributes.each { |key,value| instance_variable_set("@#{key}".to_sym, value) }
19
+
20
+ @conn = Faraday.new do |faraday|
21
+ faraday.request :retry, :max => 3,
22
+ :exceptions => [Exception, Mosaic::Facebook::UnknownError]
23
+ faraday.request :url_encoded
24
+ faraday.response :json, :content_type => /\bjson$/
25
+ faraday.response :xml, :content_type => /\bxml$/
26
+
27
+ faraday.adapter Faraday.default_adapter
28
+ end
11
29
  end
12
30
 
13
31
  def get(path, options = {})
14
32
  query = { :access_token => self.class.facebook_access_token }.merge(options)
15
- self.class.get path, :query => query
33
+ @conn.get URI.join(self.class.base_uri, path), query
16
34
  end
17
35
 
18
36
  def post(path, options)
19
37
  query = { :access_token => self.class.facebook_access_token }.merge(options)
20
38
  body = Hash[instance_variables.collect { |ivar| [ivar.sub(/@/,''),instance_variable_get(ivar)] }]
21
- self.class.post path, :query => query, :body => serialize_body(body)
39
+ @conn.post URI.join(self.class.base_uri, path), :query => query, :body => serialize_body(body)
22
40
  end
23
41
 
24
42
  class << self
@@ -64,29 +82,6 @@ module Mosaic
64
82
  def serialize_body(body)
65
83
  body.to_json
66
84
  end
67
-
68
- def perform_request_with_retry(http_method, path, options)
69
- with_retry do
70
- perform_request_without_retry(http_method, path, options)
71
- end
72
- end
73
- # alias_method_chain :perform_request, :retry
74
- alias_method :perform_request_without_retry, :perform_request
75
- alias_method :perform_request, :perform_request_with_retry
76
-
77
- def with_retry(exception = Exception, attempts = 3)
78
- tries = 0
79
- begin
80
- return yield
81
- rescue exception => e
82
- if tries < attempts
83
- tries += 1
84
- logger.debug "#{e.class.name}: #{e.message}: retry ##{tries}"
85
- retry
86
- end
87
- raise e
88
- end
89
- end
90
85
  end
91
86
  end
92
87
  end
@@ -1,5 +1,5 @@
1
1
  module Mosaic
2
2
  module Facebook
3
- VERSION = "0.2.1"
3
+ VERSION = '0.9.0'
4
4
  end
5
5
  end
@@ -1,2 +1,2 @@
1
- STDERR.puts "This version of the gem has been deprecated. Please upgrade to mosaic-facebook."
2
- require 'mosaic/facebook'
1
+ STDERR.puts 'This version of the gem has been deprecated. Please upgrade to mosaic-facebook.'
2
+ require 'mosaic/facebook'
@@ -18,10 +18,14 @@ Gem::Specification.new do |s|
18
18
  s.rubyforge_project = "mosaic_facebook"
19
19
  s.required_rubygems_version = ">= 1.3.4"
20
20
 
21
- s.add_dependency "httparty", "~> 0.10.2"
21
+ s.add_dependency "faraday", "~> 0.8.7"
22
+ s.add_dependency "faraday_middleware", "~> 0.9.0"
23
+ s.add_dependency "multi_xml", "~> 0.5.3"
22
24
  s.add_dependency "activesupport", "~> 3.0"
23
25
 
26
+ s.add_development_dependency "debugger"
24
27
  s.add_development_dependency "rspec"
28
+ s.add_development_dependency "rake"
25
29
 
26
30
  s.files = `git ls-files`.split("\n")
27
31
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  # $:.push File.expand_path("../lib", __FILE__)
2
- # require 'httparty'
3
2
  # require 'lib/mosaic_facebook'
4
3
 
5
4
  require 'rubygems'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mosaic-facebook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.9.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,16 +9,16 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-11 00:00:00.000000000 Z
12
+ date: 2013-05-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: httparty
15
+ name: faraday
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.10.2
21
+ version: 0.8.7
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,39 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: 0.10.2
29
+ version: 0.8.7
30
+ - !ruby/object:Gem::Dependency
31
+ name: faraday_middleware
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 0.9.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.9.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: multi_xml
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 0.5.3
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.5.3
30
62
  - !ruby/object:Gem::Dependency
31
63
  name: activesupport
32
64
  requirement: !ruby/object:Gem::Requirement
@@ -43,6 +75,22 @@ dependencies:
43
75
  - - ~>
44
76
  - !ruby/object:Gem::Version
45
77
  version: '3.0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: debugger
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
46
94
  - !ruby/object:Gem::Dependency
47
95
  name: rspec
48
96
  requirement: !ruby/object:Gem::Requirement
@@ -59,6 +107,22 @@ dependencies:
59
107
  - - ! '>='
60
108
  - !ruby/object:Gem::Version
61
109
  version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rake
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
62
126
  description: small app written and improved over time to solve our need to connect
63
127
  and fetch data from facebook
64
128
  email:
@@ -127,6 +191,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
191
  - - ! '>='
128
192
  - !ruby/object:Gem::Version
129
193
  version: '0'
194
+ segments:
195
+ - 0
196
+ hash: 2014683090419711334
130
197
  required_rubygems_version: !ruby/object:Gem::Requirement
131
198
  none: false
132
199
  requirements: