facebook_ads 0.1.5 → 0.1.7
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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rubocop.yml +23 -0
- data/.travis.yml +1 -1
- data/Gemfile +4 -5
- data/Gemfile.lock +34 -82
- data/{README.markdown → README.md} +43 -10
- data/Rakefile +6 -0
- data/bin/console +15 -1
- data/facebook_ads.gemspec +11 -13
- data/lib/facebook_ads.rb +11 -7
- data/lib/facebook_ads/ad.rb +6 -8
- data/lib/facebook_ads/ad_account.rb +65 -54
- data/lib/facebook_ads/ad_audience.rb +22 -0
- data/lib/facebook_ads/ad_campaign.rb +21 -17
- data/lib/facebook_ads/ad_creative.rb +7 -9
- data/lib/facebook_ads/ad_image.rb +3 -5
- data/lib/facebook_ads/ad_insight.rb +4 -5
- data/lib/facebook_ads/ad_product.rb +6 -0
- data/lib/facebook_ads/ad_product_catalog.rb +60 -0
- data/lib/facebook_ads/ad_product_feed.rb +6 -0
- data/lib/facebook_ads/ad_product_set.rb +6 -0
- data/lib/facebook_ads/ad_set.rb +9 -11
- data/lib/facebook_ads/ad_targeting.rb +19 -21
- data/lib/facebook_ads/base.rb +107 -62
- data/test/ad_account_test.rb +27 -0
- data/test/ad_campaign_test.rb +32 -0
- data/test/ad_creative_test.rb +7 -0
- data/test/ad_image_test.rb +27 -0
- data/test/ad_insight_test.rb +7 -0
- data/test/ad_product_catalog_test.rb +28 -0
- data/test/ad_product_feed_test.rb +7 -0
- data/test/ad_product_set_test.rb +7 -0
- data/test/ad_product_test.rb +22 -0
- data/test/ad_set_test.rb +7 -0
- data/test/ad_targeting_test.rb +7 -0
- data/test/ad_test.rb +7 -0
- data/test/facebook_ads_test.rb +8 -0
- data/test/test_helper.rb +64 -0
- data/test/vcr_cassettes/AdAccountTest-test_all.yml +70 -0
- data/test/vcr_cassettes/AdAccountTest-test_applications.yml +130 -0
- data/test/vcr_cassettes/AdAccountTest-test_find_by.yml +71 -0
- data/test/vcr_cassettes/AdCampaignTest-test_create.yml +295 -0
- data/test/vcr_cassettes/AdCampaignTest-test_list.yml +133 -0
- data/test/vcr_cassettes/AdImageTest-test_create.yml +2963 -0
- data/test/vcr_cassettes/AdImageTest-test_list.yml +137 -0
- data/test/vcr_cassettes/AdProductCatalogTest-test_all.yml +60 -0
- data/test/vcr_cassettes/AdProductCatalogTest-test_create.yml +256 -0
- data/test/vcr_cassettes/AdProductTest-test_list.yml +130 -0
- metadata +44 -49
- data/spec/ad_account_spec.rb +0 -78
- data/spec/ad_campaign_spec.rb +0 -13
- data/spec/ad_creative_spec.rb +0 -14
- data/spec/ad_image_spec.rb +0 -11
- data/spec/ad_insight_spec.rb +0 -11
- data/spec/ad_set_spec.rb +0 -13
- data/spec/ad_spec.rb +0 -13
- data/spec/ad_targeting_spec.rb +0 -4
- data/spec/spec_helper.rb +0 -15
- data/spec/support/fixtures.sh +0 -17
- data/spec/support/fixtures/6057330925170.json +0 -1
- data/spec/support/fixtures/6057810634370.json +0 -1
- data/spec/support/fixtures/6057810946970.json +0 -1
- data/spec/support/fixtures/6057824295570.json +0 -1
- data/spec/support/fixtures/act_861827983860489.json +0 -1
- data/spec/support/fixtures/act_861827983860489/adcreatives.json +0 -1
- data/spec/support/fixtures/act_861827983860489/adimages.json +0 -1
- data/spec/support/fixtures/act_861827983860489/ads.json +0 -1
- data/spec/support/fixtures/act_861827983860489/adsets.json +0 -1
- data/spec/support/fixtures/act_861827983860489/campaigns.json +0 -1
- data/spec/support/fixtures/me/adaccounts.json +0 -1
- data/spec/support/rack_facebook.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8117b9273b5c021539acebd28147725fc64aa5b
|
4
|
+
data.tar.gz: 9896c67db75495e96eddcce3e0a26740223fd1a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30e04d2e719a14ba63d7886acb557d05061f997e00d09fe0b566af53d772867b4f3100c944c7bc3e7db0ad220225ee42502f0afa6385c158c6b5a399bffbe069
|
7
|
+
data.tar.gz: 167e49f93ac8c9d18cf13aa2b753a3b57795aabd172030490baabdf9fd61df2b2ab99a2b85f322a905be33dca78b926d44affc1f916534f9a9564636cb8c5764
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- bin/console
|
4
|
+
TargetRubyVersion: 2.2
|
5
|
+
|
6
|
+
Metrics/AbcSize:
|
7
|
+
Enabled: false
|
8
|
+
Metrics/CyclomaticComplexity:
|
9
|
+
Enabled: false
|
10
|
+
Metrics/PerceivedComplexity:
|
11
|
+
Enabled: false
|
12
|
+
|
13
|
+
Metrics/LineLength:
|
14
|
+
Enabled: false
|
15
|
+
Metrics/ClassLength:
|
16
|
+
Enabled: false
|
17
|
+
Metrics/MethodLength:
|
18
|
+
Enabled: false
|
19
|
+
Metrics/ParameterLists:
|
20
|
+
Enabled: false
|
21
|
+
|
22
|
+
Style/Documentation:
|
23
|
+
Enabled: false
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -2,15 +2,14 @@ source 'https://rubygems.org'
|
|
2
2
|
gemspec
|
3
3
|
|
4
4
|
group :development do
|
5
|
-
gem 'bundler', '~> 1.7'
|
6
|
-
gem 'rake', '~> 10.0'
|
7
5
|
gem 'pry', '~> 0.10'
|
8
6
|
gem 'awesome_print', '~> 1.7'
|
9
7
|
end
|
10
8
|
|
11
9
|
group :test do
|
12
|
-
gem '
|
13
|
-
gem '
|
14
|
-
gem '
|
10
|
+
gem 'rake'
|
11
|
+
gem 'minitest'
|
12
|
+
gem 'webmock'
|
13
|
+
gem 'vcr'
|
15
14
|
gem 'coveralls', require: false
|
16
15
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,129 +1,81 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
facebook_ads (0.1.
|
5
|
-
activesupport (~> 4.2)
|
4
|
+
facebook_ads (0.1.7)
|
6
5
|
hashie (~> 3.4)
|
7
|
-
|
6
|
+
rest-client (>= 1.6)
|
8
7
|
|
9
8
|
GEM
|
10
9
|
remote: https://rubygems.org/
|
11
10
|
specs:
|
12
|
-
|
13
|
-
|
14
|
-
json (~> 1.7, >= 1.7.7)
|
15
|
-
minitest (~> 5.1)
|
16
|
-
thread_safe (~> 0.3, >= 0.3.4)
|
17
|
-
tzinfo (~> 1.1)
|
18
|
-
addressable (2.4.0)
|
11
|
+
addressable (2.5.0)
|
12
|
+
public_suffix (~> 2.0, >= 2.0.2)
|
19
13
|
awesome_print (1.7.0)
|
20
14
|
coderay (1.1.1)
|
21
|
-
coveralls (0.8.
|
22
|
-
json (
|
23
|
-
|
24
|
-
simplecov (~> 0.11.0)
|
15
|
+
coveralls (0.8.17)
|
16
|
+
json (>= 1.8, < 3)
|
17
|
+
simplecov (~> 0.12.0)
|
25
18
|
term-ansicolor (~> 1.3)
|
26
19
|
thor (~> 0.19.1)
|
27
|
-
tins (~> 1.6
|
20
|
+
tins (~> 1.6)
|
28
21
|
crack (0.4.3)
|
29
22
|
safe_yaml (~> 1.0.0)
|
30
|
-
diff-lcs (1.2.5)
|
31
23
|
docile (1.1.5)
|
32
|
-
domain_name (0.5.
|
24
|
+
domain_name (0.5.20161129)
|
33
25
|
unf (>= 0.0.5, < 1.0.0)
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
httmultiparty (0.3.16)
|
38
|
-
httparty (>= 0.7.3)
|
39
|
-
mimemagic
|
40
|
-
multipart-post
|
41
|
-
http-cookie (1.0.2)
|
26
|
+
hashdiff (0.3.2)
|
27
|
+
hashie (3.4.6)
|
28
|
+
http-cookie (1.0.3)
|
42
29
|
domain_name (~> 0.5)
|
43
|
-
|
44
|
-
multi_xml (>= 0.5.2)
|
45
|
-
i18n (0.7.0)
|
46
|
-
json (1.8.3)
|
30
|
+
json (2.0.2)
|
47
31
|
method_source (0.8.2)
|
48
|
-
mime-types (
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
multipart-post (2.0.0)
|
32
|
+
mime-types (3.1)
|
33
|
+
mime-types-data (~> 3.2015)
|
34
|
+
mime-types-data (3.2016.0521)
|
35
|
+
minitest (5.10.1)
|
53
36
|
netrc (0.11.0)
|
54
37
|
pry (0.10.4)
|
55
38
|
coderay (~> 1.1.0)
|
56
39
|
method_source (~> 0.8.1)
|
57
40
|
slop (~> 3.4)
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
slop (~> 3.4)
|
62
|
-
spoon (~> 0.0)
|
63
|
-
rack (1.6.0)
|
64
|
-
rack-protection (1.5.3)
|
65
|
-
rack
|
66
|
-
rake (10.5.0)
|
67
|
-
rest-client (1.8.0)
|
41
|
+
public_suffix (2.0.4)
|
42
|
+
rake (12.0.0)
|
43
|
+
rest-client (2.0.0)
|
68
44
|
http-cookie (>= 1.0.2, < 2.0)
|
69
|
-
mime-types (>= 1.16, <
|
70
|
-
netrc (~> 0.
|
71
|
-
rspec (3.4.0)
|
72
|
-
rspec-core (~> 3.4.0)
|
73
|
-
rspec-expectations (~> 3.4.0)
|
74
|
-
rspec-mocks (~> 3.4.0)
|
75
|
-
rspec-core (3.4.4)
|
76
|
-
rspec-support (~> 3.4.0)
|
77
|
-
rspec-expectations (3.4.0)
|
78
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
79
|
-
rspec-support (~> 3.4.0)
|
80
|
-
rspec-mocks (3.4.1)
|
81
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
82
|
-
rspec-support (~> 3.4.0)
|
83
|
-
rspec-support (3.4.1)
|
45
|
+
mime-types (>= 1.16, < 4.0)
|
46
|
+
netrc (~> 0.8)
|
84
47
|
safe_yaml (1.0.4)
|
85
|
-
simplecov (0.
|
48
|
+
simplecov (0.12.0)
|
86
49
|
docile (~> 1.1.0)
|
87
|
-
json (
|
50
|
+
json (>= 1.8, < 3)
|
88
51
|
simplecov-html (~> 0.10.0)
|
89
52
|
simplecov-html (0.10.0)
|
90
|
-
sinatra (1.4.5)
|
91
|
-
rack (~> 1.4)
|
92
|
-
rack-protection (~> 1.4)
|
93
|
-
tilt (~> 1.3, >= 1.3.4)
|
94
53
|
slop (3.6.0)
|
95
|
-
|
96
|
-
ffi
|
97
|
-
term-ansicolor (1.3.2)
|
54
|
+
term-ansicolor (1.4.0)
|
98
55
|
tins (~> 1.0)
|
99
|
-
thor (0.19.
|
100
|
-
|
101
|
-
tilt (1.4.1)
|
102
|
-
tins (1.6.0)
|
103
|
-
tzinfo (1.2.2)
|
104
|
-
thread_safe (~> 0.1)
|
56
|
+
thor (0.19.4)
|
57
|
+
tins (1.13.0)
|
105
58
|
unf (0.1.4)
|
106
59
|
unf_ext
|
107
60
|
unf_ext (0.0.7.2)
|
108
|
-
|
61
|
+
vcr (3.0.3)
|
62
|
+
webmock (2.3.1)
|
109
63
|
addressable (>= 2.3.6)
|
110
64
|
crack (>= 0.3.2)
|
111
65
|
hashdiff
|
112
66
|
|
113
67
|
PLATFORMS
|
114
|
-
java
|
115
68
|
ruby
|
116
69
|
|
117
70
|
DEPENDENCIES
|
118
71
|
awesome_print (~> 1.7)
|
119
|
-
bundler (~> 1.7)
|
120
72
|
coveralls
|
121
73
|
facebook_ads!
|
74
|
+
minitest
|
122
75
|
pry (~> 0.10)
|
123
|
-
rake
|
124
|
-
|
125
|
-
|
126
|
-
webmock (~> 2.1)
|
76
|
+
rake
|
77
|
+
vcr
|
78
|
+
webmock
|
127
79
|
|
128
80
|
BUNDLED WITH
|
129
|
-
1.
|
81
|
+
1.13.6
|
@@ -2,13 +2,13 @@
|
|
2
2
|
[](https://travis-ci.org/cte/facebook-ads-sdk-ruby)
|
3
3
|
[](https://coveralls.io/github/cte/facebook-ads-sdk-ruby)
|
4
4
|
|
5
|
-
|
5
|
+
# [Facebook Marketing API](https://developers.facebook.com/docs/marketing-apis) SDK for Ruby
|
6
6
|
|
7
7
|

|
8
8
|
|
9
9
|
This gem allows you to manage your Facebook Ads using a ruby interface. It allows you to list, create, update and destroy Facebook Ad objects (campaigns, ad sets, ads, etc) and get real-time insights about the performance of Facebook Ads.
|
10
10
|
|
11
|
-
|
11
|
+
## Install
|
12
12
|
|
13
13
|
```bash
|
14
14
|
gem install facebook_ads
|
@@ -20,7 +20,7 @@ Or, add the following to your Gemfile:
|
|
20
20
|
gem 'facebook_ads', '~> 0.1'
|
21
21
|
```
|
22
22
|
|
23
|
-
|
23
|
+
## Permissions
|
24
24
|
|
25
25
|
You'll need an [Access Token](https://developers.facebook.com/docs/marketing-api/authentication) with `ads_management` permissions in order to use Facebook's Marketing API.
|
26
26
|
|
@@ -28,7 +28,7 @@ You'll need an [Access Token](https://developers.facebook.com/docs/marketing-api
|
|
28
28
|
FacebookAds.access_token = '[YOUR_ACCESS_TOKEN]'
|
29
29
|
```
|
30
30
|
|
31
|
-
|
31
|
+
## Console
|
32
32
|
|
33
33
|
This gem provides a console using [Pry](https://github.com/pry/pry) and [AwesomePrint](https://github.com/awesome-print/awesome_print) for you to test & debug.
|
34
34
|
It reads the Access Token from a file called test_access_token.
|
@@ -38,7 +38,7 @@ echo [YOUR_ACCESS_TOKEN] > test_access_token
|
|
38
38
|
bin/console
|
39
39
|
```
|
40
40
|
|
41
|
-
|
41
|
+
## Usage Examples
|
42
42
|
|
43
43
|
A strong understanding of the Facebook Ads [object structure](https://developers.facebook.com/docs/marketing-api/buying-api) will greatly help you use this gem.
|
44
44
|
|
@@ -60,6 +60,8 @@ The typical flow is as follows:
|
|
60
60
|
|
61
61
|
You'll find usage examples for each of these 7 objects below.
|
62
62
|
|
63
|
+
___
|
64
|
+
|
63
65
|
### [Ad Accounts](https://developers.facebook.com/docs/marketing-api/reference/ad-account) (Fetch, Find, Update)
|
64
66
|
|
65
67
|
Fetch all accounts that can be accessed using your access token:
|
@@ -86,6 +88,8 @@ account.update(name: 'ReFuel4') # Returns a boolean.
|
|
86
88
|
|
87
89
|
The list of fields that can be updated is [here](https://developers.facebook.com/docs/marketing-api/reference/ad-account#Updating).
|
88
90
|
|
91
|
+
___
|
92
|
+
|
89
93
|
### [Ad Campaigns](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group) (Fetch, Find, Create, Update, Destroy)
|
90
94
|
|
91
95
|
Fetch all active campaigns:
|
@@ -132,6 +136,8 @@ Destroy a campaign:
|
|
132
136
|
campaign.destroy
|
133
137
|
```
|
134
138
|
|
139
|
+
___
|
140
|
+
|
135
141
|
### [Ad Images](https://developers.facebook.com/docs/marketing-api/reference/ad-image) (Fetch, Find, Create, Destroy)
|
136
142
|
|
137
143
|
Notes:
|
@@ -164,6 +170,8 @@ Destroy images:
|
|
164
170
|
ad_images.map(&:destroy)
|
165
171
|
```
|
166
172
|
|
173
|
+
___
|
174
|
+
|
167
175
|
### [Ad Creatives](https://developers.facebook.com/docs/marketing-api/reference/ad-creative) (Fetch, Find, Create, Update, Destroy)
|
168
176
|
|
169
177
|
Notes:
|
@@ -224,6 +232,8 @@ Destroy a creative:
|
|
224
232
|
ad_creative.destroy
|
225
233
|
```
|
226
234
|
|
235
|
+
___
|
236
|
+
|
227
237
|
### [Ad Sets](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign) (Fetch, Find, Create, Update, Destroy)
|
228
238
|
|
229
239
|
Notes:
|
@@ -273,12 +283,14 @@ ad_set = campaign.create_ad_set(
|
|
273
283
|
object_store_url: 'http://play.google.com/store/apps/details?id=com.tophatter',
|
274
284
|
custom_event_type: 'PURCHASE'
|
275
285
|
},
|
276
|
-
optimization_goal: 'OFFSITE_CONVERSIONS',
|
286
|
+
optimization_goal: 'OFFSITE_CONVERSIONS',
|
277
287
|
daily_budget: 500, # This is in cents, so the daily budget here is $5.
|
278
|
-
billing_event: 'IMPRESSIONS',
|
288
|
+
billing_event: 'IMPRESSIONS',
|
279
289
|
status: 'PAUSED'
|
280
290
|
)
|
281
291
|
```
|
292
|
+
See FacebookAds::AdSet::OPTIMIZATION_GOALS for a list of all optimization goals.
|
293
|
+
See FacebookAds::AdSet::BILLING_EVENTS for a list of all billing events.
|
282
294
|
|
283
295
|
Find an ad set by ID:
|
284
296
|
```ruby
|
@@ -299,6 +311,8 @@ Destroy an ad set:
|
|
299
311
|
ad_set.destroy
|
300
312
|
```
|
301
313
|
|
314
|
+
___
|
315
|
+
|
302
316
|
### [Ads](https://developers.facebook.com/docs/marketing-api/reference/adgroup) (Fetch, Find, Create, Update, Destroy)
|
303
317
|
|
304
318
|
You interact with ads via an ad set:
|
@@ -351,6 +365,8 @@ Destroy an ad:
|
|
351
365
|
ad.destroy
|
352
366
|
```
|
353
367
|
|
368
|
+
___
|
369
|
+
|
354
370
|
### [Ad Insights](https://developers.facebook.com/docs/marketing-api/insights/overview) (Fetch)
|
355
371
|
|
356
372
|
Fetch today's insights for an account:
|
@@ -373,8 +389,25 @@ Fetch yesterday's insights for a campaign:
|
|
373
389
|
account.ad_campaigns.last.ad_insights(range: Date.yesterday..Date.yesterday)
|
374
390
|
```
|
375
391
|
|
376
|
-
|
392
|
+
___
|
393
|
+
|
394
|
+
### [Product Catalogs](https://developers.facebook.com/docs/marketing-api/reference/product-catalog)
|
395
|
+
|
396
|
+
List all product catalogs:
|
397
|
+
```ruby
|
398
|
+
FacebookAds::AdProductCatalog.all
|
399
|
+
```
|
400
|
+
|
401
|
+
Create a new product catalog:
|
402
|
+
```ruby
|
403
|
+
catalog = FacebookAds::AdProductCatalog.create(name: 'test')
|
404
|
+
```
|
405
|
+
|
406
|
+
Delete a product catalog:
|
407
|
+
```ruby
|
408
|
+
catalog.destroy
|
409
|
+
```
|
410
|
+
|
411
|
+
## @TODO:
|
377
412
|
|
378
|
-
* Unit tests (add rspec - need to build out the tests now).
|
379
413
|
* [Batch operations](https://developers.facebook.com/docs/marketing-api/batch-requests).
|
380
|
-
* Upgrade to [2.7](https://developers.facebook.com/docs/marketing-api/versions).
|
data/Rakefile
ADDED
data/bin/console
CHANGED
@@ -5,7 +5,21 @@ require 'facebook_ads'
|
|
5
5
|
require 'awesome_print'
|
6
6
|
require 'pry'
|
7
7
|
|
8
|
-
|
8
|
+
begin
|
9
|
+
FacebookAds.access_token = File.read('test_access_token').chop
|
10
|
+
puts "access_token: #{FacebookAds.access_token}"
|
11
|
+
rescue Errno::ENOENT
|
12
|
+
puts 'Create a test_access_token file and add your Access Token to it.'
|
13
|
+
exit
|
14
|
+
end
|
15
|
+
|
16
|
+
begin
|
17
|
+
FacebookAds.business_id = File.read('test_business_id').chop
|
18
|
+
puts "business_id: #{FacebookAds.business_id}"
|
19
|
+
rescue Errno::ENOENT
|
20
|
+
puts 'Create a test_business_id file and add your Business ID to it.'
|
21
|
+
end
|
22
|
+
|
9
23
|
FacebookAds.logger = Logger.new(STDOUT)
|
10
24
|
FacebookAds.logger.level = Logger::Severity::DEBUG
|
11
25
|
|
data/facebook_ads.gemspec
CHANGED
@@ -1,26 +1,24 @@
|
|
1
1
|
# To release a new version:
|
2
2
|
# gem build facebook_ads.gemspec
|
3
|
-
# gem push facebook_ads-0.1.
|
3
|
+
# gem push facebook_ads-0.1.7.gem
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = 'facebook_ads'
|
6
|
-
s.version = '0.1.
|
6
|
+
s.version = '0.1.7'
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.licenses = ['MIT']
|
9
9
|
s.authors = ['Chris Estreich']
|
10
10
|
s.email = 'cestreich@gmail.com'
|
11
|
-
s.homepage = 'https://github.com/cte/facebook-ads-sdk
|
12
|
-
s.summary =
|
13
|
-
s.description = "This gem allows to easily manage your Facebook ads via
|
14
|
-
|
15
|
-
s.extra_rdoc_files = ['README.
|
16
|
-
|
11
|
+
s.homepage = 'https://github.com/cte/facebook-ruby-ads-sdk'
|
12
|
+
s.summary = 'Facebook Marketing API SDK for Ruby.'
|
13
|
+
s.description = "This gem allows to easily manage your Facebook ads via \
|
14
|
+
Facebook's Marketing API in ruby."
|
15
|
+
s.extra_rdoc_files = ['README.md']
|
17
16
|
s.files = `git ls-files`.split("\n")
|
18
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map do |f|
|
18
|
+
File.basename(f)
|
19
|
+
end
|
19
20
|
s.require_paths = ['lib']
|
20
|
-
|
21
21
|
s.required_ruby_version = '~> 2.0'
|
22
|
-
|
23
|
-
s.add_dependency 'activesupport', '~> 4.2'
|
24
|
-
s.add_dependency 'httmultiparty', '~> 0.3'
|
22
|
+
s.add_dependency 'rest-client', '>= 1.6'
|
25
23
|
s.add_dependency 'hashie', '~> 3.4'
|
26
24
|
end
|