zuck 0.2.0 → 1.0.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.
@@ -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: []