zuck 0.2.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,117 +4,118 @@ describe Zuck::TargetingSpec do
4
4
  let(:ad_account){ "2ijdsfoij" }
5
5
  let(:graph){ mock('koala') }
6
6
 
7
- describe "validating keywords" do
7
+ describe "validating interests" do
8
8
 
9
- let(:valid_keyword_result){ [{"name" => "foo", "valid" => true }] }
10
- let(:invalid_keyword_result){ [{"name" => "sdjf", "valid" => false }] }
9
+ let(:valid_interest_result){ [{"name" => "foo", "valid" => true }] }
10
+ let(:invalid_interest_result){ [{"name" => "sdjf", "valid" => false }] }
11
11
 
12
12
  it "escapes commas" do
13
- o = {type: 'adkeywordvalid', keyword_list: 'foo%2Cbar' }
13
+ o = {type: 'adinterestvalid', interest_list: ['foo%2Cbar'] }
14
14
  graph.should_receive(:search).with(nil, o).and_return []
15
- fts = Zuck::TargetingSpec.new(graph, ad_account, keywords: 'foo,bar')
16
- fts.validate_keyword('foo,bar').should == false
15
+ fts = Zuck::TargetingSpec.new(graph, ad_account, interests: 'foo,bar')
16
+ fts.validate_interest('foo,bar').should == false
17
17
  end
18
18
 
19
- it "acknowledges valid keywords" do
20
- o = {type: 'adkeywordvalid', keyword_list: 'foo' }
21
- graph.should_receive(:search).with(nil, o).and_return valid_keyword_result
19
+ it "acknowledges valid interests" do
20
+ o = {type: 'adinterestvalid', interest_list: ['foo'] }
21
+ graph.should_receive(:search).with(nil, o).and_return valid_interest_result
22
+ #graph.should_not_receive(:search)
22
23
  fts = Zuck::TargetingSpec.new(graph, ad_account)
23
24
 
24
- fts.validate_keyword('foo').should == true
25
+ fts.validate_interest('foo').should == true
25
26
  end
26
27
 
27
- it "refuses invalid keywords" do
28
- o = {type: 'adkeywordvalid', keyword_list: 'sdjf' }
29
- graph.should_receive(:search).with(nil, o).and_return invalid_keyword_result
28
+ it "refuses invalid interests" do
29
+ o = {type: 'adinterestvalid', interest_list: ['sdjf'] }
30
+ graph.should_receive(:search).with(nil, o).and_return invalid_interest_result
30
31
  fts = Zuck::TargetingSpec.new(graph, ad_account)
31
32
 
32
- fts.validate_keyword('sdjf').should == false
33
+ fts.validate_interest('sdjf').should == false
33
34
  end
34
35
  end
35
36
 
36
37
  describe "options given in spec" do
37
38
  it "accepts male as gender" do
38
39
  expect{
39
- Zuck::TargetingSpec.new(graph, ad_account, countries: ['US'], keywords: ['foo'], gender: 'male')
40
+ Zuck::TargetingSpec.new(graph, ad_account, geo_locations: {countries: ['US']}, interests: ['foo'], gender: 'male')
40
41
  }.to_not raise_error
41
42
  end
42
43
 
43
44
  it "accepts male as gender for young people" do
44
45
  expect{
45
- Zuck::TargetingSpec.new(graph, ad_account, countries: ['US'], keywords: ['foo'], gender: 'male', age_class: 'young')
46
+ Zuck::TargetingSpec.new(graph, ad_account, geo_locations: {countries: ['US']}, interests: ['foo'], gender: 'male', age_class: 'young')
46
47
  }.to_not raise_error
47
48
  end
48
49
 
49
50
  it "accepts male as gender for old people" do
50
51
  expect{
51
- Zuck::TargetingSpec.new(graph, ad_account, countries: ['US'], keywords: ['foo'], gender: 'male', age_class: 'old')
52
+ Zuck::TargetingSpec.new(graph, ad_account, geo_locations: {countries: ['US']}, interests: ['foo'], gender: 'male', age_class: 'old')
52
53
  }.to_not raise_error
53
54
  end
54
55
 
55
56
  it "accepts without gender" do
56
57
  expect{
57
- Zuck::TargetingSpec.new(graph, ad_account, countries: ['US'], keywords: ['foo'])
58
+ Zuck::TargetingSpec.new(graph, ad_account, geo_locations: {countries: ['US']}, interests: ['foo'])
58
59
  }.to_not raise_error
59
60
  end
60
61
 
61
62
  it "accepts single keywrod" do
62
63
  expect{
63
- Zuck::TargetingSpec.new(graph, ad_account, countries: ['US'], keyword: 'foo')
64
+ Zuck::TargetingSpec.new(graph, ad_account, geo_locations: {countries: ['US']}, interest: 'foo')
64
65
  }.to_not raise_error
65
66
  end
66
67
 
67
68
  it "does not accept invalid genders" do
68
69
  expect{
69
- Zuck::TargetingSpec.new(graph, ad_account, countries: ['US'], keywords: ['foo'], gender: 'gemale')
70
+ Zuck::TargetingSpec.new(graph, ad_account, geo_locations: {countries: ['US']}, interests: ['foo'], gender: 'gemale')
70
71
  }.to raise_error("Gender can only be male or female")
71
72
  end
72
73
 
73
74
  it "does not accept invalid countries" do
74
75
  expect{
75
- z = Zuck::TargetingSpec.new(graph, ad_account, countries: ['XX'], keywords: ['foo'], gender: 'female')
76
+ z = Zuck::TargetingSpec.new(graph, ad_account, geo_locations: {countries: ['XX']}, interests: ['foo'], gender: 'female')
76
77
  z.send(:validate_spec)
77
78
  }.to raise_error('Invalid countrie(s): ["XX"]')
78
79
  end
79
80
 
80
81
 
81
- it "does not accept targetings with neither :keywords nor :connections" do
82
+ it "does not accept targetings with neither :interests nor :connections" do
82
83
  expect{
83
- ts = Zuck::TargetingSpec.new(graph, ad_account, countries: ['US'], gender: 'female')
84
+ ts = Zuck::TargetingSpec.new(graph, ad_account, geo_locations: {countries: ['US']}, gender: 'female')
84
85
  ts.fetch_reach
85
- }.to raise_error("Need to set :keywords or :connections")
86
+ }.to raise_error("Need to set :interests or :connections")
86
87
  end
87
88
  end
88
89
 
89
90
  describe "fetching reach" do
90
- let(:graph){ Koala::Facebook::API.new(test_access_token) }
91
- let(:ad_account){ 'act_10150585630710217' }
91
+ let(:graph){ Koala::Facebook::API.new('CAAEvJ5vzhl8BAPGZCZCPL4FxryEHXGxPCuCGeqe3PEWIjhIvJ00HB8PPpokFmUkemvmEUHirqdNMc7zIDLSTVnX6jTQjAgSlzcYrAYJRQ32fr6RM5ZAnKPdgFEwN5tgvswatXZAI4vu7ZBAQexRl9MU0CpwW7JDDBZAGo5XDrCKrBxkUUWJUvh') }
92
+ let(:ad_account){ 'act_1384977038406122' }
92
93
 
93
- it "bugs out when trying to use an invalid keyword" do
94
- VCR.use_cassette('reach_for_invalid_keyword') do
95
- spec = {countries: ['us'], keywords: ['Eminem', 'invalidsssssssssssssss'] }
94
+ it "bugs out when trying to use an invalid interest" do
95
+ VCR.use_cassette('reach_for_invalid_interest') do
96
+ spec = {geo_locations: {countries: ['us']}, interests: ['Eminem', 'invalidsssssssssssssss'] }
96
97
  ts = Zuck::TargetingSpec.new(graph, ad_account, spec)
97
98
  expect{
98
- ts.validate_keywords
99
+ ts.validate_interests
99
100
  }.to raise_error(Zuck::InvalidKeywordError, 'invalidsssssssssssssss')
100
101
  end
101
102
  end
102
103
 
103
104
  it "works without gender or age" do
104
105
  VCR.use_cassette('reach_for_valid_keywords') do
105
- spec = {countries: ['us'], keywords: ['Eminem', 'Sting'] }
106
+ spec = {geo_locations: {countries: ['us']}, interests: ['Eminem', 'Sting (Musician)'] }
106
107
  ts = Zuck::TargetingSpec.new(graph, ad_account, spec)
107
108
  reach = ts.fetch_reach
108
- reach[:users].should == 17800000
109
+ reach[:users].should == 28_00_0000
109
110
  end
110
111
  end
111
112
 
112
113
  it "works with gender and age" do
113
114
  VCR.use_cassette('reach_for_valid_keywords_male_young') do
114
- spec = {countries: ['us'], keywords: ['Sting'], gender: :female, age_class: :young }
115
+ spec = {geo_locations: {countries: ['us']}, interests: ['Sting (musician)'], gender: :female, age_class: :young }
115
116
  ts = Zuck::TargetingSpec.new(graph, ad_account, spec)
116
117
  reach = ts.fetch_reach
117
- reach[:users].should == 38000
118
+ reach[:users].should == 74_000
118
119
  end
119
120
  end
120
121
 
data/zuck.gemspec CHANGED
@@ -2,14 +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
6
 
6
7
  Gem::Specification.new do |s|
7
8
  s.name = "zuck"
8
- s.version = "0.2.0"
9
+ s.version = "1.0.0"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Jannis Hermanns"]
12
- s.date = "2013-09-13"
14
+ s.date = "2014-04-23"
13
15
  s.description = "This gem allows to easily access facebook's ads api in ruby. See https://developers.facebook.com/docs/reference/ads-api/"
14
16
  s.email = "jannis@gmail.com"
15
17
  s.extra_rdoc_files = [
@@ -34,7 +36,7 @@ Gem::Specification.new do |s|
34
36
  "lib/zuck/facebook/ad_campaign.rb",
35
37
  "lib/zuck/facebook/ad_creative.rb",
36
38
  "lib/zuck/facebook/ad_group.rb",
37
- "lib/zuck/facebook/ad_keyword.rb",
39
+ "lib/zuck/facebook/ad_interest.rb",
38
40
  "lib/zuck/facebook/targeting_spec.rb",
39
41
  "lib/zuck/fb_object.rb",
40
42
  "lib/zuck/fb_object/dsl.rb",
@@ -49,9 +51,9 @@ Gem::Specification.new do |s|
49
51
  "spec/fixtures/a_single_account.yml",
50
52
  "spec/fixtures/a_single_campaign.yml",
51
53
  "spec/fixtures/a_single_group.yml",
52
- "spec/fixtures/ad_keyword_search_disney.yml",
53
- "spec/fixtures/ad_keyword_search_moviepilot.yml",
54
- "spec/fixtures/ad_keyword_search_nonexistant.yml",
54
+ "spec/fixtures/ad_interest_search_disney.yml",
55
+ "spec/fixtures/ad_interest_search_moviepilot.yml",
56
+ "spec/fixtures/ad_interest_search_nonexistant.yml",
55
57
  "spec/fixtures/create_ad_campaign.yml",
56
58
  "spec/fixtures/create_ad_group.yml",
57
59
  "spec/fixtures/delete_ad_group.yml",
@@ -61,12 +63,12 @@ Gem::Specification.new do |s|
61
63
  "spec/fixtures/list_of_ad_creatives.yml",
62
64
  "spec/fixtures/list_of_ad_groups.yml",
63
65
  "spec/fixtures/list_of_all_ad_creatives_of_account.yml",
64
- "spec/fixtures/reach_for_invalid_keyword.yml",
66
+ "spec/fixtures/reach_for_invalid_interest.yml",
65
67
  "spec/fixtures/reach_for_valid_keywords.yml",
66
68
  "spec/fixtures/reach_for_valid_keywords_male_young.yml",
67
69
  "spec/lib/zuck/facebook/ad_account_spec.rb",
68
70
  "spec/lib/zuck/facebook/ad_campaign_spec.rb",
69
- "spec/lib/zuck/facebook/ad_keyword_spec.rb",
71
+ "spec/lib/zuck/facebook/ad_interest_spec.rb",
70
72
  "spec/lib/zuck/facebook/targeting_spec_spec.rb",
71
73
  "spec/lib/zuck/fb_object/helpers_spec.rb",
72
74
  "spec/lib/zuck/koala/koala_methods_spec.rb",
@@ -78,22 +80,21 @@ Gem::Specification.new do |s|
78
80
  ]
79
81
  s.homepage = "http://github.com/jayniz/zuck"
80
82
  s.licenses = ["MIT"]
81
- s.require_paths = ["lib"]
82
- s.rubygems_version = "1.8.25"
83
+ s.rubygems_version = "2.2.2"
83
84
  s.summary = "Ruby adapter to facebook's ad api"
84
85
 
85
86
  if s.respond_to? :specification_version then
86
- s.specification_version = 3
87
+ s.specification_version = 4
87
88
 
88
89
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
89
90
  s.add_runtime_dependency(%q<rvm>, [">= 0"])
90
91
  s.add_runtime_dependency(%q<bundler>, [">= 0"])
91
- s.add_runtime_dependency(%q<koala>, [">= 1.6"])
92
+ s.add_runtime_dependency(%q<koala>, ["~> 1.6.0"])
92
93
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
93
- s.add_development_dependency(%q<shoulda>, [">= 0"])
94
+ s.add_development_dependency(%q<shoulda>, ["~> 3.3.2"])
94
95
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
95
- s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
96
- s.add_development_dependency(%q<simplecov>, [">= 0"])
96
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
97
+ s.add_development_dependency(%q<simplecov>, ["~> 0.7.1"])
97
98
  s.add_development_dependency(%q<webmock>, ["~> 1.8.0"])
98
99
  s.add_development_dependency(%q<rspec>, [">= 0"])
99
100
  s.add_development_dependency(%q<vcr>, [">= 0"])
@@ -107,12 +108,12 @@ Gem::Specification.new do |s|
107
108
  else
108
109
  s.add_dependency(%q<rvm>, [">= 0"])
109
110
  s.add_dependency(%q<bundler>, [">= 0"])
110
- s.add_dependency(%q<koala>, [">= 1.6"])
111
+ s.add_dependency(%q<koala>, ["~> 1.6.0"])
111
112
  s.add_dependency(%q<activesupport>, [">= 0"])
112
- s.add_dependency(%q<shoulda>, [">= 0"])
113
+ s.add_dependency(%q<shoulda>, ["~> 3.3.2"])
113
114
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
114
- s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
115
- s.add_dependency(%q<simplecov>, [">= 0"])
115
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
116
+ s.add_dependency(%q<simplecov>, ["~> 0.7.1"])
116
117
  s.add_dependency(%q<webmock>, ["~> 1.8.0"])
117
118
  s.add_dependency(%q<rspec>, [">= 0"])
118
119
  s.add_dependency(%q<vcr>, [">= 0"])
@@ -127,12 +128,12 @@ Gem::Specification.new do |s|
127
128
  else
128
129
  s.add_dependency(%q<rvm>, [">= 0"])
129
130
  s.add_dependency(%q<bundler>, [">= 0"])
130
- s.add_dependency(%q<koala>, [">= 1.6"])
131
+ s.add_dependency(%q<koala>, ["~> 1.6.0"])
131
132
  s.add_dependency(%q<activesupport>, [">= 0"])
132
- s.add_dependency(%q<shoulda>, [">= 0"])
133
+ s.add_dependency(%q<shoulda>, ["~> 3.3.2"])
133
134
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
134
- s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
135
- s.add_dependency(%q<simplecov>, [">= 0"])
135
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
136
+ s.add_dependency(%q<simplecov>, ["~> 0.7.1"])
136
137
  s.add_dependency(%q<webmock>, ["~> 1.8.0"])
137
138
  s.add_dependency(%q<rspec>, [">= 0"])
138
139
  s.add_dependency(%q<vcr>, [">= 0"])
metadata CHANGED
@@ -1,304 +1,267 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zuck
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.2.0
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jannis Hermanns
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-09-13 00:00:00.000000000 Z
11
+ date: 2014-04-23 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rvm
16
- type: :runtime
17
15
  requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
- none: false
20
+ type: :runtime
21
+ prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
24
  - - ! '>='
26
25
  - !ruby/object:Gem::Version
27
26
  version: '0'
28
- none: false
29
- prerelease: false
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: bundler
32
- type: :runtime
33
29
  requirement: !ruby/object:Gem::Requirement
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
- none: false
34
+ type: :runtime
35
+ prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
38
  - - ! '>='
42
39
  - !ruby/object:Gem::Version
43
40
  version: '0'
44
- none: false
45
- prerelease: false
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: koala
48
- type: :runtime
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
- - - ! '>='
45
+ - - ~>
52
46
  - !ruby/object:Gem::Version
53
- version: '1.6'
54
- none: false
47
+ version: 1.6.0
48
+ type: :runtime
49
+ prerelease: false
55
50
  version_requirements: !ruby/object:Gem::Requirement
56
51
  requirements:
57
- - - ! '>='
52
+ - - ~>
58
53
  - !ruby/object:Gem::Version
59
- version: '1.6'
60
- none: false
61
- prerelease: false
54
+ version: 1.6.0
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: activesupport
64
- type: :runtime
65
57
  requirement: !ruby/object:Gem::Requirement
66
58
  requirements:
67
59
  - - ! '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
- none: false
62
+ type: :runtime
63
+ prerelease: false
71
64
  version_requirements: !ruby/object:Gem::Requirement
72
65
  requirements:
73
66
  - - ! '>='
74
67
  - !ruby/object:Gem::Version
75
68
  version: '0'
76
- none: false
77
- prerelease: false
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: shoulda
80
- type: :development
81
71
  requirement: !ruby/object:Gem::Requirement
82
72
  requirements:
83
- - - ! '>='
73
+ - - ~>
84
74
  - !ruby/object:Gem::Version
85
- version: '0'
86
- none: false
75
+ version: 3.3.2
76
+ type: :development
77
+ prerelease: false
87
78
  version_requirements: !ruby/object:Gem::Requirement
88
79
  requirements:
89
- - - ! '>='
80
+ - - ~>
90
81
  - !ruby/object:Gem::Version
91
- version: '0'
92
- none: false
93
- prerelease: false
82
+ version: 3.3.2
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rdoc
96
- type: :development
97
85
  requirement: !ruby/object:Gem::Requirement
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
101
89
  version: '3.12'
102
- none: false
90
+ type: :development
91
+ prerelease: false
103
92
  version_requirements: !ruby/object:Gem::Requirement
104
93
  requirements:
105
94
  - - ~>
106
95
  - !ruby/object:Gem::Version
107
96
  version: '3.12'
108
- none: false
109
- prerelease: false
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: jeweler
112
- type: :development
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
117
- version: 1.8.4
118
- none: false
103
+ version: 2.0.1
104
+ type: :development
105
+ prerelease: false
119
106
  version_requirements: !ruby/object:Gem::Requirement
120
107
  requirements:
121
108
  - - ~>
122
109
  - !ruby/object:Gem::Version
123
- version: 1.8.4
124
- none: false
125
- prerelease: false
110
+ version: 2.0.1
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: simplecov
128
- type: :development
129
113
  requirement: !ruby/object:Gem::Requirement
130
114
  requirements:
131
- - - ! '>='
115
+ - - ~>
132
116
  - !ruby/object:Gem::Version
133
- version: '0'
134
- none: false
117
+ version: 0.7.1
118
+ type: :development
119
+ prerelease: false
135
120
  version_requirements: !ruby/object:Gem::Requirement
136
121
  requirements:
137
- - - ! '>='
122
+ - - ~>
138
123
  - !ruby/object:Gem::Version
139
- version: '0'
140
- none: false
141
- prerelease: false
124
+ version: 0.7.1
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: webmock
144
- type: :development
145
127
  requirement: !ruby/object:Gem::Requirement
146
128
  requirements:
147
129
  - - ~>
148
130
  - !ruby/object:Gem::Version
149
131
  version: 1.8.0
150
- none: false
132
+ type: :development
133
+ prerelease: false
151
134
  version_requirements: !ruby/object:Gem::Requirement
152
135
  requirements:
153
136
  - - ~>
154
137
  - !ruby/object:Gem::Version
155
138
  version: 1.8.0
156
- none: false
157
- prerelease: false
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: rspec
160
- type: :development
161
141
  requirement: !ruby/object:Gem::Requirement
162
142
  requirements:
163
143
  - - ! '>='
164
144
  - !ruby/object:Gem::Version
165
145
  version: '0'
166
- none: false
146
+ type: :development
147
+ prerelease: false
167
148
  version_requirements: !ruby/object:Gem::Requirement
168
149
  requirements:
169
150
  - - ! '>='
170
151
  - !ruby/object:Gem::Version
171
152
  version: '0'
172
- none: false
173
- prerelease: false
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: vcr
176
- type: :development
177
155
  requirement: !ruby/object:Gem::Requirement
178
156
  requirements:
179
157
  - - ! '>='
180
158
  - !ruby/object:Gem::Version
181
159
  version: '0'
182
- none: false
160
+ type: :development
161
+ prerelease: false
183
162
  version_requirements: !ruby/object:Gem::Requirement
184
163
  requirements:
185
164
  - - ! '>='
186
165
  - !ruby/object:Gem::Version
187
166
  version: '0'
188
- none: false
189
- prerelease: false
190
167
  - !ruby/object:Gem::Dependency
191
168
  name: guard
192
- type: :development
193
169
  requirement: !ruby/object:Gem::Requirement
194
170
  requirements:
195
171
  - - ! '>='
196
172
  - !ruby/object:Gem::Version
197
173
  version: '0'
198
- none: false
174
+ type: :development
175
+ prerelease: false
199
176
  version_requirements: !ruby/object:Gem::Requirement
200
177
  requirements:
201
178
  - - ! '>='
202
179
  - !ruby/object:Gem::Version
203
180
  version: '0'
204
- none: false
205
- prerelease: false
206
181
  - !ruby/object:Gem::Dependency
207
182
  name: guard-rspec
208
- type: :development
209
183
  requirement: !ruby/object:Gem::Requirement
210
184
  requirements:
211
185
  - - ! '>='
212
186
  - !ruby/object:Gem::Version
213
187
  version: '0'
214
- none: false
188
+ type: :development
189
+ prerelease: false
215
190
  version_requirements: !ruby/object:Gem::Requirement
216
191
  requirements:
217
192
  - - ! '>='
218
193
  - !ruby/object:Gem::Version
219
194
  version: '0'
220
- none: false
221
- prerelease: false
222
195
  - !ruby/object:Gem::Dependency
223
196
  name: guard-bundler
224
- type: :development
225
197
  requirement: !ruby/object:Gem::Requirement
226
198
  requirements:
227
199
  - - ! '>='
228
200
  - !ruby/object:Gem::Version
229
201
  version: '0'
230
- none: false
202
+ type: :development
203
+ prerelease: false
231
204
  version_requirements: !ruby/object:Gem::Requirement
232
205
  requirements:
233
206
  - - ! '>='
234
207
  - !ruby/object:Gem::Version
235
208
  version: '0'
236
- none: false
237
- prerelease: false
238
209
  - !ruby/object:Gem::Dependency
239
210
  name: guard-yard
240
- type: :development
241
211
  requirement: !ruby/object:Gem::Requirement
242
212
  requirements:
243
213
  - - ! '>='
244
214
  - !ruby/object:Gem::Version
245
215
  version: '0'
246
- none: false
216
+ type: :development
217
+ prerelease: false
247
218
  version_requirements: !ruby/object:Gem::Requirement
248
219
  requirements:
249
220
  - - ! '>='
250
221
  - !ruby/object:Gem::Version
251
222
  version: '0'
252
- none: false
253
- prerelease: false
254
223
  - !ruby/object:Gem::Dependency
255
224
  name: growl
256
- type: :development
257
225
  requirement: !ruby/object:Gem::Requirement
258
226
  requirements:
259
227
  - - ! '>='
260
228
  - !ruby/object:Gem::Version
261
229
  version: '0'
262
- none: false
230
+ type: :development
231
+ prerelease: false
263
232
  version_requirements: !ruby/object:Gem::Requirement
264
233
  requirements:
265
234
  - - ! '>='
266
235
  - !ruby/object:Gem::Version
267
236
  version: '0'
268
- none: false
269
- prerelease: false
270
237
  - !ruby/object:Gem::Dependency
271
238
  name: redcarpet
272
- type: :development
273
239
  requirement: !ruby/object:Gem::Requirement
274
240
  requirements:
275
241
  - - ! '>='
276
242
  - !ruby/object:Gem::Version
277
243
  version: '0'
278
- none: false
244
+ type: :development
245
+ prerelease: false
279
246
  version_requirements: !ruby/object:Gem::Requirement
280
247
  requirements:
281
248
  - - ! '>='
282
249
  - !ruby/object:Gem::Version
283
250
  version: '0'
284
- none: false
285
- prerelease: false
286
251
  - !ruby/object:Gem::Dependency
287
252
  name: rb-fsevent
288
- type: :development
289
253
  requirement: !ruby/object:Gem::Requirement
290
254
  requirements:
291
255
  - - ! '>='
292
256
  - !ruby/object:Gem::Version
293
257
  version: '0'
294
- none: false
258
+ type: :development
259
+ prerelease: false
295
260
  version_requirements: !ruby/object:Gem::Requirement
296
261
  requirements:
297
262
  - - ! '>='
298
263
  - !ruby/object:Gem::Version
299
264
  version: '0'
300
- none: false
301
- prerelease: false
302
265
  description: This gem allows to easily access facebook's ads api in ruby. See https://developers.facebook.com/docs/reference/ads-api/
303
266
  email: jannis@gmail.com
304
267
  executables: []
@@ -324,7 +287,7 @@ files:
324
287
  - lib/zuck/facebook/ad_campaign.rb
325
288
  - lib/zuck/facebook/ad_creative.rb
326
289
  - lib/zuck/facebook/ad_group.rb
327
- - lib/zuck/facebook/ad_keyword.rb
290
+ - lib/zuck/facebook/ad_interest.rb
328
291
  - lib/zuck/facebook/targeting_spec.rb
329
292
  - lib/zuck/fb_object.rb
330
293
  - lib/zuck/fb_object/dsl.rb
@@ -339,9 +302,9 @@ files:
339
302
  - spec/fixtures/a_single_account.yml
340
303
  - spec/fixtures/a_single_campaign.yml
341
304
  - spec/fixtures/a_single_group.yml
342
- - spec/fixtures/ad_keyword_search_disney.yml
343
- - spec/fixtures/ad_keyword_search_moviepilot.yml
344
- - spec/fixtures/ad_keyword_search_nonexistant.yml
305
+ - spec/fixtures/ad_interest_search_disney.yml
306
+ - spec/fixtures/ad_interest_search_moviepilot.yml
307
+ - spec/fixtures/ad_interest_search_nonexistant.yml
345
308
  - spec/fixtures/create_ad_campaign.yml
346
309
  - spec/fixtures/create_ad_group.yml
347
310
  - spec/fixtures/delete_ad_group.yml
@@ -351,12 +314,12 @@ files:
351
314
  - spec/fixtures/list_of_ad_creatives.yml
352
315
  - spec/fixtures/list_of_ad_groups.yml
353
316
  - spec/fixtures/list_of_all_ad_creatives_of_account.yml
354
- - spec/fixtures/reach_for_invalid_keyword.yml
317
+ - spec/fixtures/reach_for_invalid_interest.yml
355
318
  - spec/fixtures/reach_for_valid_keywords.yml
356
319
  - spec/fixtures/reach_for_valid_keywords_male_young.yml
357
320
  - spec/lib/zuck/facebook/ad_account_spec.rb
358
321
  - spec/lib/zuck/facebook/ad_campaign_spec.rb
359
- - spec/lib/zuck/facebook/ad_keyword_spec.rb
322
+ - spec/lib/zuck/facebook/ad_interest_spec.rb
360
323
  - spec/lib/zuck/facebook/targeting_spec_spec.rb
361
324
  - spec/lib/zuck/fb_object/helpers_spec.rb
362
325
  - spec/lib/zuck/koala/koala_methods_spec.rb
@@ -368,6 +331,7 @@ files:
368
331
  homepage: http://github.com/jayniz/zuck
369
332
  licenses:
370
333
  - MIT
334
+ metadata: {}
371
335
  post_install_message:
372
336
  rdoc_options: []
373
337
  require_paths:
@@ -376,21 +340,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
376
340
  requirements:
377
341
  - - ! '>='
378
342
  - !ruby/object:Gem::Version
379
- segments:
380
- - 0
381
- hash: 2263188203156526454
382
343
  version: '0'
383
- none: false
384
344
  required_rubygems_version: !ruby/object:Gem::Requirement
385
345
  requirements:
386
346
  - - ! '>='
387
347
  - !ruby/object:Gem::Version
388
348
  version: '0'
389
- none: false
390
349
  requirements: []
391
350
  rubyforge_project:
392
- rubygems_version: 1.8.25
351
+ rubygems_version: 2.2.2
393
352
  signing_key:
394
- specification_version: 3
353
+ specification_version: 4
395
354
  summary: Ruby adapter to facebook's ad api
396
355
  test_files: []