zuck 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +5 -13
  2. data/CHANGELOG.markdown +35 -5
  3. data/Gemfile +3 -2
  4. data/Gemfile.lock +13 -10
  5. data/README.markdown +26 -38
  6. data/VERSION +1 -1
  7. data/console +8 -2
  8. data/lib/zuck/facebook/ad_account.rb +22 -5
  9. data/lib/zuck/facebook/ad_campaign.rb +12 -15
  10. data/lib/zuck/facebook/ad_creative.rb +14 -14
  11. data/lib/zuck/facebook/ad_group.rb +12 -12
  12. data/lib/zuck/facebook/ad_interest.rb +12 -15
  13. data/lib/zuck/facebook/ad_set.rb +30 -0
  14. data/lib/zuck/facebook/targeting_spec.rb +4 -4
  15. data/lib/zuck/fb_object/dsl.rb +15 -7
  16. data/lib/zuck/fb_object/hash_delegator.rb +20 -3
  17. data/lib/zuck/fb_object/write.rb +18 -6
  18. data/lib/zuck/fb_object.rb +1 -1
  19. data/lib/zuck/helpers.rb +20 -1
  20. data/spec/fixtures/a_single_account.yml +146 -29
  21. data/spec/fixtures/a_single_campaign.yml +61 -12
  22. data/spec/fixtures/a_single_group.yml +65 -12
  23. data/spec/fixtures/ad_interest_search_disney.yml +16 -14
  24. data/spec/fixtures/ad_interest_search_moviepilot.yml +15 -98
  25. data/spec/fixtures/ad_interest_search_nonexistant.yml +7 -5
  26. data/spec/fixtures/create_ad_campaign.yml +334 -9
  27. data/spec/fixtures/create_ad_group.yml +154 -9
  28. data/spec/fixtures/create_ad_set.yml +95 -0
  29. data/spec/fixtures/delete_ad_group.yml +55 -8
  30. data/spec/fixtures/find_a_single_group_and_update_it.yml +122 -95
  31. data/spec/fixtures/list_of_ad_accounts.yml +77 -58
  32. data/spec/fixtures/list_of_ad_campaigns.yml +77 -55
  33. data/spec/fixtures/list_of_ad_creatives.yml +61 -13
  34. data/spec/fixtures/list_of_ad_groups.yml +77 -60
  35. data/spec/fixtures/list_of_all_ad_creatives_of_account.yml +77 -73
  36. data/spec/fixtures/reach_for_invalid_interest.yml +29 -111
  37. data/spec/fixtures/reach_for_valid_keywords.yml +11 -54
  38. data/spec/fixtures/reach_for_valid_keywords_male_young.yml +11 -60
  39. data/spec/lib/zuck/facebook/ad_account_spec.rb +1 -1
  40. data/spec/lib/zuck/facebook/ad_interest_spec.rb +2 -2
  41. data/spec/lib/zuck/facebook/targeting_spec_spec.rb +13 -21
  42. data/spec/lib/zuck_spec.rb +34 -23
  43. data/spec/spec_helper.rb +2 -5
  44. data/test_access_token +1 -0
  45. data/zuck.gemspec +15 -9
  46. metadata +63 -46
@@ -8,9 +8,10 @@ describe Zuck::FbObject do
8
8
 
9
9
  let(:graph) { Zuck.graph }
10
10
  let(:account) { Zuck::AdAccount.new(graph, {id: "act_10150585630710217"}) }
11
- let(:campaign){ Zuck::AdCampaign.new(graph, {id: "6010889111951"}, account) }
11
+ let(:campaign){ Zuck::AdCampaign.new(graph, {id: "6021499361751"}, account) }
12
12
  let(:group) { Zuck::AdGroup.new(graph, {id: "6010889169151"}, campaign)}
13
- let(:creative){ Zuck::AdCreative.new(graph, {id: "6010888561951"}, group) }
13
+ let(:creative){ Zuck::AdCreative.new(graph, {id: "6021396606151"}, group) }
14
+ let(:set) { Zuck::AdSet.new(graph, {id: "6021525283751"}, account) }
14
15
 
15
16
 
16
17
  describe "read only objects" do
@@ -38,19 +39,19 @@ describe Zuck::FbObject do
38
39
 
39
40
  it "a list of ad accounts" do
40
41
  VCR.use_cassette('list_of_ad_accounts') do
41
- Zuck::AdAccount.all.should have(1).item
42
+ Zuck::AdAccount.all.should have(2).items
42
43
  end
43
44
  end
44
45
 
45
46
  it "a list of ad campaigns" do
46
47
  VCR.use_cassette('list_of_ad_campaigns') do
47
- account.ad_campaigns.should have(8).items
48
+ account.ad_campaigns.should have(24).items
48
49
  end
49
50
  end
50
51
 
51
52
  it "a list of ad groups" do
52
53
  VCR.use_cassette('list_of_ad_groups') do
53
- campaign.ad_groups.should have(9).item
54
+ campaign.ad_groups.should have(4).item
54
55
  end
55
56
  end
56
57
 
@@ -64,7 +65,7 @@ describe Zuck::FbObject do
64
65
  g = graph
65
66
  Zuck::AdAccount.should_receive(:all).and_return([account])
66
67
  VCR.use_cassette('list_of_all_ad_creatives_of_account') do
67
- Zuck::AdCreative.all(g).should have(9).items
68
+ Zuck::AdCreative.all(g).should have(13).items
68
69
  end
69
70
  end
70
71
 
@@ -72,7 +73,7 @@ describe Zuck::FbObject do
72
73
 
73
74
  it "campaign with the correct type" do
74
75
  VCR.use_cassette('a_single_campaign') do
75
- c = Zuck::AdCampaign.find(6005950787751, graph)
76
+ c = Zuck::AdCampaign.find(6021496142951, graph)
76
77
  end
77
78
  end
78
79
 
@@ -92,7 +93,7 @@ describe Zuck::FbObject do
92
93
 
93
94
  it "and saving it" do
94
95
  VCR.use_cassette('find_a_single_group_and_update_it') do
95
- group = Zuck::AdGroup.find(6010889169151, graph)
96
+ group = Zuck::AdGroup.find(6021525861551, graph)
96
97
  group.name = "My old name"
97
98
  group.save
98
99
  group.name.should == "My old name"
@@ -109,9 +110,23 @@ describe Zuck::FbObject do
109
110
 
110
111
 
111
112
  context "creating" do
113
+ it "an ad set" do
114
+ VCR.use_cassette('create_ad_set') do
115
+ o = {
116
+ name: 'test ad set',
117
+ campaign_status: 'PAUSED',
118
+ daily_budget: 100,
119
+ targeting: "{'geo_locations':{'countries':['US','GB']}}",
120
+ campaign_group_id: campaign.id
121
+ }
122
+ ad_set = Zuck::AdSet.create(graph, o, account)
123
+ ad_set.name.should == 'test ad set'
124
+ end
125
+ end
126
+
112
127
  it "an ad campaign" do
113
128
  VCR.use_cassette('create_ad_campaign') do
114
- o = {daily_budget: 1000, name: "bloody" }
129
+ o = {objective: 'NONE', name: "bloody", campaign_group_status: 'PAUSED' }
115
130
  campaign = Zuck::AdCampaign.create(graph, o, account)
116
131
  campaign.name.should == "bloody"
117
132
  end
@@ -125,23 +140,19 @@ describe Zuck::FbObject do
125
140
  end
126
141
  end
127
142
 
128
- it "an ad group" do
129
- VCR.use_cassette('create_ad_group') do
130
- o = {bid_type: 'CPC', max_bid: 1, name: "Rap like me", targeting: '{"countries":["US"]}',
131
- creative: '{"type":25,"action_spec":{"action.type":"like", "post":10150420410887685}}'}
132
- group = Zuck::AdGroup.create(graph, o, campaign)
133
- group.name.should == "Rap like me"
134
- end
135
- end
136
-
137
143
  it "an ad group via an existing ad campaign" do
138
144
  VCR.use_cassette('create_ad_group') do
139
- o = {bid_type: 'CPC', max_bid: 1, name: "Rap like me", targeting: '{"countries":["US"]}',
140
- creative: '{"type":25,"action_spec":{"action.type":"like", "post":10150420410887685}}'}
141
- group = campaign.create_ad_group(o)
145
+ o = {
146
+ bid_type: 'CPC',
147
+ bid_info: '{"CLICKS": 1}',
148
+ name: "Rap like me",
149
+ targeting: '{"geo_locations": {"countries":["US"]}}',
150
+ objective: 'WEBSITE_CLICKS',
151
+ creative: '{"creative_id": "6021396606151"}'
152
+ }
153
+ group = set.create_ad_group(o)
142
154
  group.name.should == "Rap like me"
143
- # Until Oct 2013 Facebook will return the magic ints, and then the enums
144
- group.bid_type.should == 1
155
+ group.bid_type.should == 'CPC'
145
156
  end
146
157
  end
147
158
  end
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,7 @@ require 'simplecov'
3
3
  SimpleCov.start
4
4
  require 'bundler'
5
5
  Bundler.require
6
+ require 'pry'
6
7
 
7
8
  # This file is copied to spec/ when you run 'rails generate rspec:install'
8
9
  ENV["RAILS_ENV"] ||= 'test'
@@ -39,12 +40,8 @@ module TestResponseExtensions
39
40
  end
40
41
  end
41
42
 
42
- def expect_id_and_return(id, ret_val)
43
- lambda { |id| id.to_s.should == id.to_s; ret_val }
44
- end
45
-
46
43
  def test_access_token
47
- 'CAAEvJ5vzhl8BAH8aCPOx0Ft9uNB147TF8weJ8hK0g7YVDRWU4eEih7tEKdJgmfk0vABZClZACJbEzyhSMbiShL6RpsfkZASfX1C9nv1AlFvjJajflqkyYZAlpE2edT0FJHjdh4NFg0ZCt0sBgq0kZABtKsjuU18aMURLE7rjKHR4X8NkXBUafg1T4uZARRNqboZD'
44
+ @test_access_token ||= File.read("test_access_token")
48
45
  end
49
46
 
50
47
  require File.expand_path("../../lib/zuck", __FILE__)
data/test_access_token ADDED
@@ -0,0 +1 @@
1
+ CAAEvJ5vzhl8BAICOwypV5nYnYWXhBq1eskHA7rKyrz9fXcAvKRXDWVZAaG7FpQ21qTXeCtGZCR7iu1dtZCqZCZBZCQbefKrMOnZAibDZAiQKiX0s22PgtKuCoQK4LDVimREnqkGdoLMyB4zgT3A6ZAU7pn6wc2mTzZBWVbkr71bZBJKjhyeb4V58TkMsUbN9SQer3ZCRRtWTxqNFTUwHuv51RoVsI7LNw0mCr5gZD
data/zuck.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: zuck 1.0.0 ruby lib
5
+ # stub: zuck 2.0.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "zuck"
9
- s.version = "1.0.0"
9
+ s.version = "2.0.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Jannis Hermanns"]
14
- s.date = "2014-04-23"
14
+ s.date = "2015-01-09"
15
15
  s.description = "This gem allows to easily access facebook's ads api in ruby. See https://developers.facebook.com/docs/reference/ads-api/"
16
16
  s.email = "jannis@gmail.com"
17
17
  s.extra_rdoc_files = [
@@ -37,6 +37,7 @@ Gem::Specification.new do |s|
37
37
  "lib/zuck/facebook/ad_creative.rb",
38
38
  "lib/zuck/facebook/ad_group.rb",
39
39
  "lib/zuck/facebook/ad_interest.rb",
40
+ "lib/zuck/facebook/ad_set.rb",
40
41
  "lib/zuck/facebook/targeting_spec.rb",
41
42
  "lib/zuck/fb_object.rb",
42
43
  "lib/zuck/fb_object/dsl.rb",
@@ -56,6 +57,7 @@ Gem::Specification.new do |s|
56
57
  "spec/fixtures/ad_interest_search_nonexistant.yml",
57
58
  "spec/fixtures/create_ad_campaign.yml",
58
59
  "spec/fixtures/create_ad_group.yml",
60
+ "spec/fixtures/create_ad_set.yml",
59
61
  "spec/fixtures/delete_ad_group.yml",
60
62
  "spec/fixtures/find_a_single_group_and_update_it.yml",
61
63
  "spec/fixtures/list_of_ad_accounts.yml",
@@ -76,6 +78,7 @@ Gem::Specification.new do |s|
76
78
  "spec/lib/zuck_spec.rb",
77
79
  "spec/spec_helper.rb",
78
80
  "spec/vcr_setup.rb",
81
+ "test_access_token",
79
82
  "zuck.gemspec"
80
83
  ]
81
84
  s.homepage = "http://github.com/jayniz/zuck"
@@ -89,7 +92,7 @@ Gem::Specification.new do |s|
89
92
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
90
93
  s.add_runtime_dependency(%q<rvm>, [">= 0"])
91
94
  s.add_runtime_dependency(%q<bundler>, [">= 0"])
92
- s.add_runtime_dependency(%q<koala>, ["~> 1.6.0"])
95
+ s.add_runtime_dependency(%q<koala>, [">= 0"])
93
96
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
94
97
  s.add_development_dependency(%q<shoulda>, ["~> 3.3.2"])
95
98
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
@@ -98,7 +101,8 @@ Gem::Specification.new do |s|
98
101
  s.add_development_dependency(%q<webmock>, ["~> 1.8.0"])
99
102
  s.add_development_dependency(%q<rspec>, [">= 0"])
100
103
  s.add_development_dependency(%q<vcr>, [">= 0"])
101
- s.add_development_dependency(%q<guard>, [">= 0"])
104
+ s.add_development_dependency(%q<pry>, [">= 0"])
105
+ s.add_development_dependency(%q<guard-ctags-bundler>, [">= 0"])
102
106
  s.add_development_dependency(%q<guard-rspec>, [">= 0"])
103
107
  s.add_development_dependency(%q<guard-bundler>, [">= 0"])
104
108
  s.add_development_dependency(%q<guard-yard>, [">= 0"])
@@ -108,7 +112,7 @@ Gem::Specification.new do |s|
108
112
  else
109
113
  s.add_dependency(%q<rvm>, [">= 0"])
110
114
  s.add_dependency(%q<bundler>, [">= 0"])
111
- s.add_dependency(%q<koala>, ["~> 1.6.0"])
115
+ s.add_dependency(%q<koala>, [">= 0"])
112
116
  s.add_dependency(%q<activesupport>, [">= 0"])
113
117
  s.add_dependency(%q<shoulda>, ["~> 3.3.2"])
114
118
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
@@ -117,7 +121,8 @@ Gem::Specification.new do |s|
117
121
  s.add_dependency(%q<webmock>, ["~> 1.8.0"])
118
122
  s.add_dependency(%q<rspec>, [">= 0"])
119
123
  s.add_dependency(%q<vcr>, [">= 0"])
120
- s.add_dependency(%q<guard>, [">= 0"])
124
+ s.add_dependency(%q<pry>, [">= 0"])
125
+ s.add_dependency(%q<guard-ctags-bundler>, [">= 0"])
121
126
  s.add_dependency(%q<guard-rspec>, [">= 0"])
122
127
  s.add_dependency(%q<guard-bundler>, [">= 0"])
123
128
  s.add_dependency(%q<guard-yard>, [">= 0"])
@@ -128,7 +133,7 @@ Gem::Specification.new do |s|
128
133
  else
129
134
  s.add_dependency(%q<rvm>, [">= 0"])
130
135
  s.add_dependency(%q<bundler>, [">= 0"])
131
- s.add_dependency(%q<koala>, ["~> 1.6.0"])
136
+ s.add_dependency(%q<koala>, [">= 0"])
132
137
  s.add_dependency(%q<activesupport>, [">= 0"])
133
138
  s.add_dependency(%q<shoulda>, ["~> 3.3.2"])
134
139
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
@@ -137,7 +142,8 @@ Gem::Specification.new do |s|
137
142
  s.add_dependency(%q<webmock>, ["~> 1.8.0"])
138
143
  s.add_dependency(%q<rspec>, [">= 0"])
139
144
  s.add_dependency(%q<vcr>, [">= 0"])
140
- s.add_dependency(%q<guard>, [">= 0"])
145
+ s.add_dependency(%q<pry>, [">= 0"])
146
+ s.add_dependency(%q<guard-ctags-bundler>, [">= 0"])
141
147
  s.add_dependency(%q<guard-rspec>, [">= 0"])
142
148
  s.add_dependency(%q<guard-bundler>, [">= 0"])
143
149
  s.add_dependency(%q<guard-yard>, [">= 0"])
metadata CHANGED
@@ -1,265 +1,279 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zuck
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jannis Hermanns
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-23 00:00:00.000000000 Z
11
+ date: 2015-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rvm
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: koala
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 1.6.0
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 1.6.0
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: activesupport
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: shoulda
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 3.3.2
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 3.3.2
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rdoc
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '3.12'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3.12'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: jeweler
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: 2.0.1
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 2.0.1
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: simplecov
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: 0.7.1
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ~>
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: 0.7.1
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: webmock
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: 1.8.0
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 1.8.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rspec
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ! '>='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ! '>='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: vcr
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ! '>='
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: pry
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
158
172
  - !ruby/object:Gem::Version
159
173
  version: '0'
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
- - - ! '>='
178
+ - - ">="
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
- name: guard
182
+ name: guard-ctags-bundler
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
- - - ! '>='
185
+ - - ">="
172
186
  - !ruby/object:Gem::Version
173
187
  version: '0'
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
- - - ! '>='
192
+ - - ">="
179
193
  - !ruby/object:Gem::Version
180
194
  version: '0'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: guard-rspec
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
- - - ! '>='
199
+ - - ">="
186
200
  - !ruby/object:Gem::Version
187
201
  version: '0'
188
202
  type: :development
189
203
  prerelease: false
190
204
  version_requirements: !ruby/object:Gem::Requirement
191
205
  requirements:
192
- - - ! '>='
206
+ - - ">="
193
207
  - !ruby/object:Gem::Version
194
208
  version: '0'
195
209
  - !ruby/object:Gem::Dependency
196
210
  name: guard-bundler
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
- - - ! '>='
213
+ - - ">="
200
214
  - !ruby/object:Gem::Version
201
215
  version: '0'
202
216
  type: :development
203
217
  prerelease: false
204
218
  version_requirements: !ruby/object:Gem::Requirement
205
219
  requirements:
206
- - - ! '>='
220
+ - - ">="
207
221
  - !ruby/object:Gem::Version
208
222
  version: '0'
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: guard-yard
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
- - - ! '>='
227
+ - - ">="
214
228
  - !ruby/object:Gem::Version
215
229
  version: '0'
216
230
  type: :development
217
231
  prerelease: false
218
232
  version_requirements: !ruby/object:Gem::Requirement
219
233
  requirements:
220
- - - ! '>='
234
+ - - ">="
221
235
  - !ruby/object:Gem::Version
222
236
  version: '0'
223
237
  - !ruby/object:Gem::Dependency
224
238
  name: growl
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
- - - ! '>='
241
+ - - ">="
228
242
  - !ruby/object:Gem::Version
229
243
  version: '0'
230
244
  type: :development
231
245
  prerelease: false
232
246
  version_requirements: !ruby/object:Gem::Requirement
233
247
  requirements:
234
- - - ! '>='
248
+ - - ">="
235
249
  - !ruby/object:Gem::Version
236
250
  version: '0'
237
251
  - !ruby/object:Gem::Dependency
238
252
  name: redcarpet
239
253
  requirement: !ruby/object:Gem::Requirement
240
254
  requirements:
241
- - - ! '>='
255
+ - - ">="
242
256
  - !ruby/object:Gem::Version
243
257
  version: '0'
244
258
  type: :development
245
259
  prerelease: false
246
260
  version_requirements: !ruby/object:Gem::Requirement
247
261
  requirements:
248
- - - ! '>='
262
+ - - ">="
249
263
  - !ruby/object:Gem::Version
250
264
  version: '0'
251
265
  - !ruby/object:Gem::Dependency
252
266
  name: rb-fsevent
253
267
  requirement: !ruby/object:Gem::Requirement
254
268
  requirements:
255
- - - ! '>='
269
+ - - ">="
256
270
  - !ruby/object:Gem::Version
257
271
  version: '0'
258
272
  type: :development
259
273
  prerelease: false
260
274
  version_requirements: !ruby/object:Gem::Requirement
261
275
  requirements:
262
- - - ! '>='
276
+ - - ">="
263
277
  - !ruby/object:Gem::Version
264
278
  version: '0'
265
279
  description: This gem allows to easily access facebook's ads api in ruby. See https://developers.facebook.com/docs/reference/ads-api/
@@ -270,9 +284,9 @@ extra_rdoc_files:
270
284
  - LICENSE.txt
271
285
  - README.markdown
272
286
  files:
273
- - .rvmrc
274
- - .travis.yml
275
- - .yardopts
287
+ - ".rvmrc"
288
+ - ".travis.yml"
289
+ - ".yardopts"
276
290
  - CHANGELOG.markdown
277
291
  - Gemfile
278
292
  - Gemfile.lock
@@ -288,6 +302,7 @@ files:
288
302
  - lib/zuck/facebook/ad_creative.rb
289
303
  - lib/zuck/facebook/ad_group.rb
290
304
  - lib/zuck/facebook/ad_interest.rb
305
+ - lib/zuck/facebook/ad_set.rb
291
306
  - lib/zuck/facebook/targeting_spec.rb
292
307
  - lib/zuck/fb_object.rb
293
308
  - lib/zuck/fb_object/dsl.rb
@@ -307,6 +322,7 @@ files:
307
322
  - spec/fixtures/ad_interest_search_nonexistant.yml
308
323
  - spec/fixtures/create_ad_campaign.yml
309
324
  - spec/fixtures/create_ad_group.yml
325
+ - spec/fixtures/create_ad_set.yml
310
326
  - spec/fixtures/delete_ad_group.yml
311
327
  - spec/fixtures/find_a_single_group_and_update_it.yml
312
328
  - spec/fixtures/list_of_ad_accounts.yml
@@ -327,6 +343,7 @@ files:
327
343
  - spec/lib/zuck_spec.rb
328
344
  - spec/spec_helper.rb
329
345
  - spec/vcr_setup.rb
346
+ - test_access_token
330
347
  - zuck.gemspec
331
348
  homepage: http://github.com/jayniz/zuck
332
349
  licenses:
@@ -338,12 +355,12 @@ require_paths:
338
355
  - lib
339
356
  required_ruby_version: !ruby/object:Gem::Requirement
340
357
  requirements:
341
- - - ! '>='
358
+ - - ">="
342
359
  - !ruby/object:Gem::Version
343
360
  version: '0'
344
361
  required_rubygems_version: !ruby/object:Gem::Requirement
345
362
  requirements:
346
- - - ! '>='
363
+ - - ">="
347
364
  - !ruby/object:Gem::Version
348
365
  version: '0'
349
366
  requirements: []