mosaic-facebook 0.2.1 → 0.9.0

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.
@@ -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: