fb_graph 2.0.1 → 2.0.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.
- data/.gitignore +4 -0
- data/Gemfile.lock +2 -1
- data/VERSION +1 -1
- data/lib/fb_graph/adaccount.rb +13 -0
- data/lib/fb_graph/adcampaign.rb +17 -0
- data/lib/fb_graph/event.rb +2 -2
- data/lib/fb_graph/order.rb +8 -4
- data/lib/fb_graph.rb +3 -0
- data/spec/fb_graph/adaccount_spec.rb +43 -0
- data/spec/fb_graph/adcampaign_spec.rb +44 -0
- data/spec/fb_graph/order_spec.rb +55 -8
- data/spec/mock_json/adaccounts/test_ad_account.json +10 -0
- data/spec/mock_json/adcampaigns/test_ad_campaign.json +11 -0
- metadata +55 -2
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
fb_graph (2.0.
|
4
|
+
fb_graph (2.0.1)
|
5
5
|
httpclient (>= 2.2.0.2)
|
6
6
|
rack-oauth2 (>= 0.8.0)
|
7
7
|
|
@@ -37,6 +37,7 @@ GEM
|
|
37
37
|
jruby-openssl (0.7.4)
|
38
38
|
bouncy-castle-java
|
39
39
|
json (1.5.3)
|
40
|
+
json (1.5.3-java)
|
40
41
|
rack (1.2.3)
|
41
42
|
rack-mount (0.6.14)
|
42
43
|
rack (>= 1.0.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.2
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module FbGraph
|
2
|
+
class AdAccount < Node
|
3
|
+
attr_accessor :account_id, :name, :account_status, :daily_spend_limit, :users, :currency, :timezone_id, :timezone_name, :capabilities, :account_groups
|
4
|
+
|
5
|
+
def initialize(identifier, attributes = {})
|
6
|
+
super
|
7
|
+
|
8
|
+
%w(account_id name account_status daily_spend_limit currency timezone_id timezone_name).each do |field|
|
9
|
+
send("#{field}=", attributes[field.to_sym])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module FbGraph
|
2
|
+
class AdCampaign < Node
|
3
|
+
attr_accessor :campaign_id, :account_id, :name, :start_time, :end_time, :daily_budget, :campaign_status, :lifetime_budget
|
4
|
+
|
5
|
+
def initialize(identifier, attributes = {})
|
6
|
+
super
|
7
|
+
|
8
|
+
%w(campaign_id account_id name daily_budget campaign_status lifetime_budget).each do |field|
|
9
|
+
send("#{field}=", attributes[field.to_sym])
|
10
|
+
end
|
11
|
+
|
12
|
+
%w(start_time end_time).each do |field|
|
13
|
+
send("#{field}=", Time.parse(attributes[field.to_sym]).utc) if attributes[field.to_sym]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/fb_graph/event.rb
CHANGED
@@ -24,7 +24,7 @@ module FbGraph
|
|
24
24
|
@start_time = case start_time
|
25
25
|
when String
|
26
26
|
Time.parse(start_time)
|
27
|
-
when
|
27
|
+
when Integer
|
28
28
|
Time.at(start_time)
|
29
29
|
end
|
30
30
|
end
|
@@ -32,7 +32,7 @@ module FbGraph
|
|
32
32
|
@end_time = case end_time
|
33
33
|
when String
|
34
34
|
Time.parse(end_time)
|
35
|
-
when
|
35
|
+
when Integer
|
36
36
|
Time.at(end_time)
|
37
37
|
end
|
38
38
|
end
|
data/lib/fb_graph/order.rb
CHANGED
@@ -13,6 +13,7 @@ module FbGraph
|
|
13
13
|
if to = attributes[:to]
|
14
14
|
@to = User.new(to[:id], to)
|
15
15
|
end
|
16
|
+
@amount = attributes[:amount]
|
16
17
|
@status = attributes[:status]
|
17
18
|
@country = attributes[:country]
|
18
19
|
if attributes[:created_time]
|
@@ -23,22 +24,25 @@ module FbGraph
|
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
26
|
-
def
|
27
|
+
def settle!(options = {})
|
27
28
|
update options.merge(:status => :settled)
|
28
29
|
end
|
30
|
+
alias_method :settled!, :settle!
|
29
31
|
|
30
|
-
def
|
32
|
+
def refund!(options = {})
|
31
33
|
update options.merge(:status => :refunded)
|
32
34
|
end
|
35
|
+
alias_method :refunded!, :refund!
|
33
36
|
|
34
|
-
def
|
37
|
+
def cancel!(options = {})
|
35
38
|
update options.merge(:status => :canceled)
|
36
39
|
end
|
40
|
+
alias_method :canceled!, :cancel!
|
37
41
|
|
38
42
|
def update(attributes = {})
|
39
43
|
_attributes_ = attributes.dup
|
40
44
|
params = {
|
41
|
-
:access_token => self.access_token,
|
45
|
+
:access_token => _attributes_.delete(:access_token) || self.access_token,
|
42
46
|
:status => _attributes_.delete(:status),
|
43
47
|
:message => _attributes_.delete(:message),
|
44
48
|
:refund_funding_source => _attributes_.delete(:refund_funding_source),
|
data/lib/fb_graph.rb
CHANGED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FbGraph::AdAccount, '.new' do
|
4
|
+
it 'should setup all supported attributes' do
|
5
|
+
attributes = {
|
6
|
+
:id => 'act_12345566',
|
7
|
+
:account_id => 12345566,
|
8
|
+
:name => 'Test Ad Account',
|
9
|
+
:account_status => 1,
|
10
|
+
:daily_spend_limit => 20000,
|
11
|
+
:currency => "USD",
|
12
|
+
:timezone_id => 1,
|
13
|
+
:timezone_name => "America/Los_Angeles"
|
14
|
+
}
|
15
|
+
ad_account = FbGraph::AdAccount.new(attributes.delete(:id), attributes)
|
16
|
+
ad_account.identifier.should == "act_12345566"
|
17
|
+
ad_account.account_id.should == 12345566
|
18
|
+
ad_account.name.should == "Test Ad Account"
|
19
|
+
ad_account.account_status.should == 1
|
20
|
+
ad_account.daily_spend_limit.should == 20000
|
21
|
+
ad_account.currency.should == "USD"
|
22
|
+
ad_account.timezone_id.should == 1
|
23
|
+
ad_account.timezone_name.should == "America/Los_Angeles"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
describe FbGraph::AdAccount, '.fetch' do
|
29
|
+
it 'should get the ad account' do
|
30
|
+
mock_graph :get, 'act_12345566', 'adaccounts/test_ad_account', :access_token => 'access_token' do
|
31
|
+
ad_account = FbGraph::AdAccount.fetch('act_12345566', :access_token => 'access_token')
|
32
|
+
|
33
|
+
ad_account.identifier.should == "act_12345566"
|
34
|
+
ad_account.account_id.should == 12345566
|
35
|
+
ad_account.name.should == "Test Ad Account"
|
36
|
+
ad_account.account_status.should == 1
|
37
|
+
ad_account.daily_spend_limit.should == 20000
|
38
|
+
ad_account.currency.should == "USD"
|
39
|
+
ad_account.timezone_id.should == 1
|
40
|
+
ad_account.timezone_name.should == "America/Los_Angeles"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FbGraph::AdCampaign, '.new' do
|
4
|
+
it 'should setup all supported attributes' do
|
5
|
+
attributes = {
|
6
|
+
:id => '6003266501234',
|
7
|
+
:campaign_id => 6003266501234,
|
8
|
+
:account_id => 12345566,
|
9
|
+
:name => "Test Ad Campaign",
|
10
|
+
:start_time => "2011-07-01T12:00:00+00:00",
|
11
|
+
:end_time => "2011-07-14T16:00:00+00:00",
|
12
|
+
:daily_budget => 20000,
|
13
|
+
:campaign_status => 1,
|
14
|
+
:lifetime_budget => 100000
|
15
|
+
}
|
16
|
+
ad_campaign = FbGraph::AdCampaign.new(attributes.delete(:id), attributes)
|
17
|
+
ad_campaign.identifier.should == "6003266501234"
|
18
|
+
ad_campaign.account_id.should == 12345566
|
19
|
+
ad_campaign.name.should == "Test Ad Campaign"
|
20
|
+
ad_campaign.start_time.should == Time.parse("2011-07-01T12:00:00Z")
|
21
|
+
ad_campaign.end_time.should == Time.parse("2011-07-14T16:00:00Z")
|
22
|
+
ad_campaign.daily_budget.should == 20000
|
23
|
+
ad_campaign.campaign_status.should == 1
|
24
|
+
ad_campaign.lifetime_budget.should == 100000
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
describe FbGraph::AdCampaign, '.fetch' do
|
30
|
+
it 'should get the ad campaign' do
|
31
|
+
mock_graph :get, '16003266501234', 'adcampaigns/test_ad_campaign', :access_token => 'access_token' do
|
32
|
+
ad_campaign = FbGraph::AdCampaign.fetch('16003266501234', :access_token => 'access_token')
|
33
|
+
|
34
|
+
ad_campaign.identifier.should == "6003266501234"
|
35
|
+
ad_campaign.account_id.should == 12345566
|
36
|
+
ad_campaign.name.should == "Test Ad Campaign"
|
37
|
+
ad_campaign.start_time.should == Time.parse("2011-07-01T12:00:00Z")
|
38
|
+
ad_campaign.end_time.should == Time.parse("2011-07-14T16:00:00Z")
|
39
|
+
ad_campaign.daily_budget.should == 20000
|
40
|
+
ad_campaign.campaign_status.should == 1
|
41
|
+
ad_campaign.lifetime_budget.should == 100000
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/spec/fb_graph/order_spec.rb
CHANGED
@@ -1,19 +1,66 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe FbGraph::Order do
|
4
|
-
|
5
|
-
|
4
|
+
subject { order }
|
5
|
+
let(:order) { FbGraph::Order.new attributes[:id], attributes }
|
6
|
+
let :attributes do
|
7
|
+
{
|
8
|
+
:id => '9005539514450',
|
9
|
+
:from => {
|
10
|
+
:name => 'Nov Matake',
|
11
|
+
:id => '579612276'
|
12
|
+
},
|
13
|
+
:to => {
|
14
|
+
:name => 'Nov Matake',
|
15
|
+
:id => '579612276'
|
16
|
+
},
|
17
|
+
:amount => 2,
|
18
|
+
:status => 'settled',
|
19
|
+
:application => {
|
20
|
+
:name => 'gem sample',
|
21
|
+
:id => '134145643294322'
|
22
|
+
},
|
23
|
+
:created_time => '2011-09-01T04:34:35+0000',
|
24
|
+
:updated_time => '2011-09-01T04:34:38+0000'
|
25
|
+
}
|
6
26
|
end
|
7
27
|
|
8
|
-
|
9
|
-
|
28
|
+
its(:identifier) { should == '9005539514450' }
|
29
|
+
its(:from) { should == FbGraph::User.new('579612276', :name => 'Nov Matake') }
|
30
|
+
its(:to) { should == FbGraph::User.new('579612276', :name => 'Nov Matake') }
|
31
|
+
its(:application) { should == FbGraph::Application.new('134145643294322', :name => 'gem sample') }
|
32
|
+
its(:amount) { should == 2 }
|
33
|
+
its(:status) { should == 'settled' }
|
34
|
+
its(:created_time) { should == Time.parse('2011-09-01T04:34:35+0000') }
|
35
|
+
its(:updated_time) { should == Time.parse('2011-09-01T04:34:38+0000') }
|
36
|
+
|
37
|
+
describe '#settle!' do
|
38
|
+
it do
|
39
|
+
expect { order.settle! }.should request_to order.identifier, :post
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'I have never succeeded this call yet'
|
10
43
|
end
|
11
44
|
|
12
|
-
describe '#
|
13
|
-
it
|
45
|
+
describe '#refund!' do
|
46
|
+
it do
|
47
|
+
expect { order.refund! }.should request_to order.identifier, :post
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should return true' do
|
51
|
+
mock_graph :post, order.identifier, 'true', :access_token => 'access_token', :params => {
|
52
|
+
:status => 'refunded'
|
53
|
+
} do
|
54
|
+
order.refunded!(:access_token => 'access_token').should be_true
|
55
|
+
end
|
56
|
+
end
|
14
57
|
end
|
15
58
|
|
16
|
-
describe '#
|
17
|
-
it
|
59
|
+
describe '#cancel!' do
|
60
|
+
it do
|
61
|
+
expect { order.cancel! }.should request_to order.identifier, :post
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'I have never succeeded this call yet'
|
18
65
|
end
|
19
66
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"id": "6003266501234",
|
3
|
+
"campaign_id": 6003266501234,
|
4
|
+
"account_id": 12345566,
|
5
|
+
"name": "Test Ad Campaign",
|
6
|
+
"start_time": "2011-07-01T12:00:00+00:00",
|
7
|
+
"end_time": "2011-07-14T16:00:00+00:00",
|
8
|
+
"daily_budget": 20000,
|
9
|
+
"campaign_status": 1,
|
10
|
+
"lifetime_budget": 100000
|
11
|
+
}
|
metadata
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fb_graph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 11
|
4
5
|
prerelease:
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 2
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 2.0.2
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
13
|
- nov matake
|
@@ -10,7 +15,7 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2011-
|
18
|
+
date: 2011-09-01 00:00:00 Z
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: httpclient
|
@@ -20,6 +25,12 @@ dependencies:
|
|
20
25
|
requirements:
|
21
26
|
- - ">="
|
22
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 123
|
29
|
+
segments:
|
30
|
+
- 2
|
31
|
+
- 2
|
32
|
+
- 0
|
33
|
+
- 2
|
23
34
|
version: 2.2.0.2
|
24
35
|
type: :runtime
|
25
36
|
version_requirements: *id001
|
@@ -31,6 +42,11 @@ dependencies:
|
|
31
42
|
requirements:
|
32
43
|
- - ">="
|
33
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 63
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
- 8
|
49
|
+
- 0
|
34
50
|
version: 0.8.0
|
35
51
|
type: :runtime
|
36
52
|
version_requirements: *id002
|
@@ -42,6 +58,10 @@ dependencies:
|
|
42
58
|
requirements:
|
43
59
|
- - ">="
|
44
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 27
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
- 8
|
45
65
|
version: "0.8"
|
46
66
|
type: :development
|
47
67
|
version_requirements: *id003
|
@@ -53,6 +73,10 @@ dependencies:
|
|
53
73
|
requirements:
|
54
74
|
- - ">="
|
55
75
|
- !ruby/object:Gem::Version
|
76
|
+
hash: 25
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
- 9
|
56
80
|
version: "0.9"
|
57
81
|
type: :development
|
58
82
|
version_requirements: *id004
|
@@ -64,6 +88,9 @@ dependencies:
|
|
64
88
|
requirements:
|
65
89
|
- - ">="
|
66
90
|
- !ruby/object:Gem::Version
|
91
|
+
hash: 7
|
92
|
+
segments:
|
93
|
+
- 2
|
67
94
|
version: "2"
|
68
95
|
type: :development
|
69
96
|
version_requirements: *id005
|
@@ -75,6 +102,11 @@ dependencies:
|
|
75
102
|
requirements:
|
76
103
|
- - ">="
|
77
104
|
- !ruby/object:Gem::Version
|
105
|
+
hash: 11
|
106
|
+
segments:
|
107
|
+
- 1
|
108
|
+
- 6
|
109
|
+
- 2
|
78
110
|
version: 1.6.2
|
79
111
|
type: :development
|
80
112
|
version_requirements: *id006
|
@@ -86,6 +118,11 @@ dependencies:
|
|
86
118
|
requirements:
|
87
119
|
- - ">="
|
88
120
|
- !ruby/object:Gem::Version
|
121
|
+
hash: 11
|
122
|
+
segments:
|
123
|
+
- 3
|
124
|
+
- 0
|
125
|
+
- 6
|
89
126
|
version: 3.0.6
|
90
127
|
type: :development
|
91
128
|
version_requirements: *id007
|
@@ -113,6 +150,8 @@ files:
|
|
113
150
|
- fb_graph.gemspec
|
114
151
|
- lib/fb_graph.rb
|
115
152
|
- lib/fb_graph/action.rb
|
153
|
+
- lib/fb_graph/adaccount.rb
|
154
|
+
- lib/fb_graph/adcampaign.rb
|
116
155
|
- lib/fb_graph/album.rb
|
117
156
|
- lib/fb_graph/app_request.rb
|
118
157
|
- lib/fb_graph/application.rb
|
@@ -217,6 +256,8 @@ files:
|
|
217
256
|
- lib/fb_graph/video.rb
|
218
257
|
- lib/fb_graph/work.rb
|
219
258
|
- lib/patch/rack/oauth2/util.rb
|
259
|
+
- spec/fb_graph/adaccount_spec.rb
|
260
|
+
- spec/fb_graph/adcampaign_spec.rb
|
220
261
|
- spec/fb_graph/album_spec.rb
|
221
262
|
- spec/fb_graph/app_request_spec.rb
|
222
263
|
- spec/fb_graph/application_spec.rb
|
@@ -319,6 +360,8 @@ files:
|
|
319
360
|
- spec/fb_graph/video_spec.rb
|
320
361
|
- spec/fb_graph/work_spec.rb
|
321
362
|
- spec/helpers/webmock_helper.rb
|
363
|
+
- spec/mock_json/adaccounts/test_ad_account.json
|
364
|
+
- spec/mock_json/adcampaigns/test_ad_campaign.json
|
322
365
|
- spec/mock_json/albums/photos/matake_private.json
|
323
366
|
- spec/mock_json/albums/photos/post_with_valid_access_token.json
|
324
367
|
- spec/mock_json/applications/accounts/private.json
|
@@ -471,12 +514,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
471
514
|
requirements:
|
472
515
|
- - ">="
|
473
516
|
- !ruby/object:Gem::Version
|
517
|
+
hash: 3
|
518
|
+
segments:
|
519
|
+
- 0
|
474
520
|
version: "0"
|
475
521
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
476
522
|
none: false
|
477
523
|
requirements:
|
478
524
|
- - ">="
|
479
525
|
- !ruby/object:Gem::Version
|
526
|
+
hash: 3
|
527
|
+
segments:
|
528
|
+
- 0
|
480
529
|
version: "0"
|
481
530
|
requirements: []
|
482
531
|
|
@@ -486,6 +535,8 @@ signing_key:
|
|
486
535
|
specification_version: 3
|
487
536
|
summary: A full-stack Facebook Graph API wrapper in Ruby.
|
488
537
|
test_files:
|
538
|
+
- spec/fb_graph/adaccount_spec.rb
|
539
|
+
- spec/fb_graph/adcampaign_spec.rb
|
489
540
|
- spec/fb_graph/album_spec.rb
|
490
541
|
- spec/fb_graph/app_request_spec.rb
|
491
542
|
- spec/fb_graph/application_spec.rb
|
@@ -588,6 +639,8 @@ test_files:
|
|
588
639
|
- spec/fb_graph/video_spec.rb
|
589
640
|
- spec/fb_graph/work_spec.rb
|
590
641
|
- spec/helpers/webmock_helper.rb
|
642
|
+
- spec/mock_json/adaccounts/test_ad_account.json
|
643
|
+
- spec/mock_json/adcampaigns/test_ad_campaign.json
|
591
644
|
- spec/mock_json/albums/photos/matake_private.json
|
592
645
|
- spec/mock_json/albums/photos/post_with_valid_access_token.json
|
593
646
|
- spec/mock_json/applications/accounts/private.json
|