adapi 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -1
- data/README.markdown +2 -1
- data/adapi.gemspec +11 -11
- data/examples/add_ad_group.rb +0 -0
- data/examples/add_bare_ad_group.rb +3 -1
- data/examples/add_bare_campaign.rb +6 -4
- data/examples/add_campaign.rb +10 -3
- data/examples/add_campaign_criteria.rb +5 -5
- data/examples/add_invalid_ad_group.rb +4 -6
- data/examples/add_invalid_keywords.rb +40 -0
- data/examples/add_invalid_text_ad.rb +6 -6
- data/examples/add_keywords.rb +0 -0
- data/examples/add_negative_campaign_criteria.rb +0 -0
- data/examples/add_text_ad.rb +5 -9
- data/examples/custom_settings.yml +8 -0
- data/examples/customize_configuration.rb +0 -0
- data/examples/delete_ad_group.rb +11 -0
- data/examples/delete_keyword.rb +0 -0
- data/examples/delete_text_ad.rb +13 -0
- data/examples/find_ad_group.rb +10 -0
- data/examples/find_all_campaigns.rb +0 -0
- data/examples/find_bare_campaign.rb +34 -0
- data/examples/find_campaign.rb +0 -0
- data/examples/find_campaign_ad_groups.rb +0 -0
- data/examples/find_campaign_criteria.rb +0 -0
- data/examples/find_locations.rb +0 -0
- data/examples/log_to_specific_account.rb +0 -0
- data/examples/rollback_campaign.rb +0 -0
- data/examples/test_diacritics.rb +0 -0
- data/examples/update_ad_group.rb +70 -0
- data/examples/update_campaign.rb +34 -9
- data/examples/update_campaign_ad_groups.rb +137 -0
- data/examples/update_campaign_criteria.rb +33 -0
- data/examples/update_complete_campaign.rb +177 -0
- data/examples/update_text_ad.rb +18 -0
- data/lib/adapi/ad/text_ad.rb +39 -49
- data/lib/adapi/ad.rb +30 -19
- data/lib/adapi/ad_group.rb +110 -30
- data/lib/adapi/api.rb +25 -28
- data/lib/adapi/campaign.rb +216 -70
- data/lib/adapi/campaign_criterion.rb +44 -5
- data/lib/adapi/config.rb +1 -4
- data/lib/adapi/constant_data/language.rb +11 -2
- data/lib/adapi/keyword.rb +60 -1
- data/lib/adapi/version.rb +11 -2
- data/lib/adapi.rb +10 -7
- data/test/{config/adapi.yml.template → fixtures/adapi.yml} +11 -2
- data/test/{config/adwords_api.yml.template → fixtures/adwords_api.yml} +6 -2
- data/test/integration/find_location_test.rb +1 -1
- data/test/unit/ad_group_test.rb +2 -2
- data/test/unit/config_test.rb +8 -27
- data/test/unit/constant_data/language_test.rb +34 -0
- metadata +52 -108
- data/examples/update_campaign_status.rb +0 -15
- data/lib/savon_monkeypatch.rb +0 -43
data/lib/adapi.rb
CHANGED
@@ -2,13 +2,16 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'adwords_api'
|
5
|
+
# TODO use for optional logging of general activity
|
6
|
+
# currently we only load communication with adwords-api
|
7
|
+
# in form of complete SOAP requests
|
5
8
|
# require 'logger'
|
6
9
|
require 'yaml'
|
7
10
|
require 'pp'
|
8
11
|
|
9
12
|
require 'active_model'
|
10
|
-
#
|
11
|
-
require 'active_support/
|
13
|
+
# load only ActiveSupport core extensions
|
14
|
+
require 'active_support/core_ext'
|
12
15
|
|
13
16
|
require 'adapi/version'
|
14
17
|
require 'adapi/config'
|
@@ -31,10 +34,10 @@ require 'adapi/location'
|
|
31
34
|
# monkeypatch that hardcodes HTTP timeout to 5 minutes
|
32
35
|
require 'httpi_monkeypatch'
|
33
36
|
|
34
|
-
#
|
35
|
-
#
|
36
|
-
|
37
|
-
|
37
|
+
# optionally prettify Savon SOAP log
|
38
|
+
# PS: slow, should be set to false in production
|
39
|
+
Savon.configure do |config|
|
40
|
+
config.pretty_print_xml = ((Adapi::Config.read[:library][:log_pretty_format] == true) rescue false)
|
38
41
|
end
|
39
42
|
|
40
43
|
HTTPI.adapter = :curb
|
@@ -46,4 +49,4 @@ end
|
|
46
49
|
|
47
50
|
if RUBY_VERSION < '1.9'
|
48
51
|
puts "WARNING: please use ruby 1.9, adapi gem won't work properly in 1.8 and earlier versions"
|
49
|
-
end
|
52
|
+
end
|
@@ -1,21 +1,30 @@
|
|
1
|
+
|
1
2
|
:default:
|
2
3
|
:authentication:
|
3
4
|
:method: ClientLogin
|
4
|
-
:email:
|
5
|
+
:email: default_email@gmail.com
|
5
6
|
:password: default_password
|
6
7
|
:developer_token: default_token
|
7
8
|
:client_customer_id: 555-666-7777
|
8
9
|
:user_agent: My Adwords API Client
|
9
10
|
:service:
|
10
11
|
:environment: PRODUCTION
|
12
|
+
:library:
|
13
|
+
:log_level: WARN
|
14
|
+
:log_path: /tmp/adapi_production.log
|
15
|
+
# :log_pretty_format is set to :false by default
|
11
16
|
|
12
17
|
:sandbox:
|
13
18
|
:authentication:
|
14
19
|
:method: ClientLogin
|
15
|
-
:email: sandbox_email@
|
20
|
+
:email: sandbox_email@gmail.com
|
16
21
|
:password: sandbox_password
|
17
22
|
:developer_token: sandbox_token
|
18
23
|
:client_customer_id: 555-666-7777
|
19
24
|
:user_agent: Adwords API Test
|
20
25
|
:service:
|
21
26
|
:environment: SANDBOX
|
27
|
+
:library:
|
28
|
+
:log_level: DEBUG
|
29
|
+
:log_path: /tmp/adapi_sandbox.log
|
30
|
+
:log_pretty_format: true
|
@@ -1,10 +1,14 @@
|
|
1
|
+
|
1
2
|
:authentication:
|
2
3
|
:method: ClientLogin
|
3
|
-
:email:
|
4
|
+
:email: default_email@gmail.com
|
4
5
|
:password: default_password
|
5
6
|
:developer_token: default_token
|
6
7
|
:client_customer_id: 555-666-7777
|
7
8
|
:user_agent: My Adwords API Client
|
8
9
|
:service:
|
9
10
|
:environment: PRODUCTION
|
10
|
-
|
11
|
+
:library:
|
12
|
+
:log_level: WARN
|
13
|
+
:log_path: /tmp/adapi_production.log
|
14
|
+
# :log_pretty_format is set to :false by default
|
@@ -44,7 +44,7 @@ module Adapi
|
|
44
44
|
@location = Adapi::Location.find( :country => "CZ", :province => "CZ-JM" )
|
45
45
|
assert_not_nil @location
|
46
46
|
assert_equal 20219, @location[:id]
|
47
|
-
assert_equal "South
|
47
|
+
assert_equal "South Moravian Region", @location[:location_name]
|
48
48
|
assert_equal "Region", @location[:display_type]
|
49
49
|
end
|
50
50
|
|
data/test/unit/ad_group_test.rb
CHANGED
@@ -31,8 +31,8 @@ module Adapi
|
|
31
31
|
|
32
32
|
context " / data method" do
|
33
33
|
should "return params in hash" do
|
34
|
-
assert @ad_group.
|
35
|
-
assert_equal @ad_group.name, @ad_group.
|
34
|
+
assert @ad_group.attributes.is_a?(Hash)
|
35
|
+
assert_equal @ad_group.name, @ad_group.attributes[:name]
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
data/test/unit/config_test.rb
CHANGED
@@ -1,52 +1,33 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
|
2
3
|
require 'test_helper'
|
3
4
|
|
4
5
|
module Adapi
|
5
6
|
class ConfigTest < Test::Unit::TestCase
|
6
7
|
|
7
|
-
# FIXME how come that tests work without custom configurations settings?
|
8
|
-
# Adapi::Config.dir = 'test/config'
|
9
|
-
# Adapi::Config.filename = 'adapi.yml.template'
|
10
|
-
|
11
8
|
context "Loading adapi.yml" do
|
12
9
|
should "load the configuration" do
|
13
|
-
|
14
|
-
|
15
|
-
Adapi::Config.dir = 'test/config'
|
16
|
-
Adapi::Config.filename = 'adapi.yml.template'
|
10
|
+
Adapi::Config.dir = 'test/fixtures'
|
11
|
+
Adapi::Config.filename = 'adapi.yml'
|
17
12
|
@settings = Adapi::Config.settings(true)
|
18
13
|
|
19
14
|
assert_equal '555-666-7777', @settings[:default][:authentication][:client_customer_id]
|
20
|
-
assert_equal '
|
21
|
-
assert_equal 'sandbox_email@
|
15
|
+
assert_equal 'default_email@gmail.com', @settings[:default][:authentication][:email]
|
16
|
+
assert_equal 'sandbox_email@gmail.com', @settings[:sandbox][:authentication][:email]
|
22
17
|
end
|
23
18
|
end
|
24
19
|
|
25
20
|
context "Loading adwords_api.yml" do
|
26
21
|
should "loads the configuration" do
|
27
|
-
|
28
|
-
|
29
|
-
Adapi::Config.dir = 'test/config'
|
30
|
-
Adapi::Config.filename = 'adwords_api.yml.template'
|
22
|
+
Adapi::Config.dir = 'test/fixtures'
|
23
|
+
Adapi::Config.filename = 'adwords_api.yml'
|
31
24
|
@settings = Adapi::Config.settings(true)
|
32
25
|
|
33
26
|
assert_equal '555-666-7777', @settings[:default][:authentication][:client_customer_id]
|
34
|
-
assert_equal '
|
27
|
+
assert_equal 'default_email@gmail.com', @settings[:default][:authentication][:email]
|
35
28
|
assert_nil @settings[:sandbox]
|
36
29
|
end
|
37
30
|
end
|
38
31
|
|
39
|
-
|
40
|
-
context "Config params can be overwritten and " do
|
41
|
-
should "correctly set Adapi::Config.adapi_dir" do
|
42
|
-
Adapi::Config.dir = 'adapi_dir'
|
43
|
-
assert_equal 'adapi_dir', Adapi::Config.dir
|
44
|
-
end
|
45
|
-
|
46
|
-
should "correctly set Adapi::Config.adapi_filename" do
|
47
|
-
Adapi::Config.filename = 'adapi_filename'
|
48
|
-
assert_equal 'adapi_filename', Adapi::Config.filename
|
49
|
-
end
|
50
|
-
end
|
51
32
|
end
|
52
33
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Adapi
|
6
|
+
class LanguageTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
context "Language.find" do
|
9
|
+
|
10
|
+
should "return instance of Language class" do
|
11
|
+
assert_instance_of ConstantData::Language, ConstantData::Language.find('cs')
|
12
|
+
end
|
13
|
+
|
14
|
+
should "find language id by language code" do
|
15
|
+
assert_equal 1021, ConstantData::Language.find('cs').id
|
16
|
+
end
|
17
|
+
|
18
|
+
should "return nil for unknown language code" do
|
19
|
+
assert_equal nil, ConstantData::Language.find('unknown').id
|
20
|
+
end
|
21
|
+
|
22
|
+
should "return language code for language id" do
|
23
|
+
assert_equal :cs, ConstantData::Language.find(1021).code
|
24
|
+
end
|
25
|
+
|
26
|
+
should "return nil for unknown language id" do
|
27
|
+
assert_equal nil, ConstantData::Language.find(12345).code
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,75 +9,55 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-07-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-ads-common
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &14836360 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - =
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.7.
|
21
|
+
version: 0.7.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - '='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 0.7.0
|
24
|
+
version_requirements: *14836360
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: google-adwords-api
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &14835520 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
|
-
- -
|
30
|
+
- - =
|
36
31
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0.6.
|
32
|
+
version: 0.6.2
|
38
33
|
type: :runtime
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - '='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 0.6.0
|
35
|
+
version_requirements: *14835520
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: activemodel
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &14834820 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
41
|
- - ~>
|
52
42
|
- !ruby/object:Gem::Version
|
53
|
-
version: '3.
|
43
|
+
version: '3.0'
|
54
44
|
type: :runtime
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '3.1'
|
46
|
+
version_requirements: *14834820
|
62
47
|
- !ruby/object:Gem::Dependency
|
63
48
|
name: activesupport
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &14834120 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
51
|
requirements:
|
67
52
|
- - ~>
|
68
53
|
- !ruby/object:Gem::Version
|
69
|
-
version: '3.
|
54
|
+
version: '3.0'
|
70
55
|
type: :runtime
|
71
56
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '3.1'
|
57
|
+
version_requirements: *14834120
|
78
58
|
- !ruby/object:Gem::Dependency
|
79
59
|
name: rake
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirement: &14849580 !ruby/object:Gem::Requirement
|
81
61
|
none: false
|
82
62
|
requirements:
|
83
63
|
- - ~>
|
@@ -85,15 +65,10 @@ dependencies:
|
|
85
65
|
version: 0.9.2
|
86
66
|
type: :runtime
|
87
67
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: 0.9.2
|
68
|
+
version_requirements: *14849580
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
70
|
name: curb
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirement: &14848220 !ruby/object:Gem::Requirement
|
97
72
|
none: false
|
98
73
|
requirements:
|
99
74
|
- - ~>
|
@@ -101,15 +76,10 @@ dependencies:
|
|
101
76
|
version: 0.8.0
|
102
77
|
type: :runtime
|
103
78
|
prerelease: false
|
104
|
-
version_requirements:
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: 0.8.0
|
79
|
+
version_requirements: *14848220
|
110
80
|
- !ruby/object:Gem::Dependency
|
111
81
|
name: yard
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
82
|
+
requirement: &14846280 !ruby/object:Gem::Requirement
|
113
83
|
none: false
|
114
84
|
requirements:
|
115
85
|
- - ~>
|
@@ -117,15 +87,10 @@ dependencies:
|
|
117
87
|
version: '0.7'
|
118
88
|
type: :development
|
119
89
|
prerelease: false
|
120
|
-
version_requirements:
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ~>
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0.7'
|
90
|
+
version_requirements: *14846280
|
126
91
|
- !ruby/object:Gem::Dependency
|
127
92
|
name: rcov
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirement: &14845320 !ruby/object:Gem::Requirement
|
129
94
|
none: false
|
130
95
|
requirements:
|
131
96
|
- - ~>
|
@@ -133,31 +98,21 @@ dependencies:
|
|
133
98
|
version: '0.9'
|
134
99
|
type: :development
|
135
100
|
prerelease: false
|
136
|
-
version_requirements:
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ~>
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '0.9'
|
101
|
+
version_requirements: *14845320
|
142
102
|
- !ruby/object:Gem::Dependency
|
143
103
|
name: turn
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirement: &14843740 !ruby/object:Gem::Requirement
|
145
105
|
none: false
|
146
106
|
requirements:
|
147
|
-
- -
|
107
|
+
- - ~>
|
148
108
|
- !ruby/object:Gem::Version
|
149
|
-
version: 0.
|
109
|
+
version: 0.9.6
|
150
110
|
type: :development
|
151
111
|
prerelease: false
|
152
|
-
version_requirements:
|
153
|
-
none: false
|
154
|
-
requirements:
|
155
|
-
- - '='
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: 0.8.2
|
112
|
+
version_requirements: *14843740
|
158
113
|
- !ruby/object:Gem::Dependency
|
159
114
|
name: shoulda
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirement: &14842660 !ruby/object:Gem::Requirement
|
161
116
|
none: false
|
162
117
|
requirements:
|
163
118
|
- - ! '>='
|
@@ -165,15 +120,10 @@ dependencies:
|
|
165
120
|
version: '0'
|
166
121
|
type: :development
|
167
122
|
prerelease: false
|
168
|
-
version_requirements:
|
169
|
-
none: false
|
170
|
-
requirements:
|
171
|
-
- - ! '>='
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
123
|
+
version_requirements: *14842660
|
174
124
|
- !ruby/object:Gem::Dependency
|
175
125
|
name: fakeweb
|
176
|
-
requirement: !ruby/object:Gem::Requirement
|
126
|
+
requirement: &14858140 !ruby/object:Gem::Requirement
|
177
127
|
none: false
|
178
128
|
requirements:
|
179
129
|
- - ! '>='
|
@@ -181,15 +131,10 @@ dependencies:
|
|
181
131
|
version: '0'
|
182
132
|
type: :development
|
183
133
|
prerelease: false
|
184
|
-
version_requirements:
|
185
|
-
none: false
|
186
|
-
requirements:
|
187
|
-
- - ! '>='
|
188
|
-
- !ruby/object:Gem::Version
|
189
|
-
version: '0'
|
134
|
+
version_requirements: *14858140
|
190
135
|
- !ruby/object:Gem::Dependency
|
191
136
|
name: factory_girl
|
192
|
-
requirement: !ruby/object:Gem::Requirement
|
137
|
+
requirement: &14857440 !ruby/object:Gem::Requirement
|
193
138
|
none: false
|
194
139
|
requirements:
|
195
140
|
- - ~>
|
@@ -197,15 +142,10 @@ dependencies:
|
|
197
142
|
version: 3.3.0
|
198
143
|
type: :development
|
199
144
|
prerelease: false
|
200
|
-
version_requirements:
|
201
|
-
none: false
|
202
|
-
requirements:
|
203
|
-
- - ~>
|
204
|
-
- !ruby/object:Gem::Version
|
205
|
-
version: 3.3.0
|
145
|
+
version_requirements: *14857440
|
206
146
|
- !ruby/object:Gem::Dependency
|
207
147
|
name: minitest
|
208
|
-
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirement: &14856840 !ruby/object:Gem::Requirement
|
209
149
|
none: false
|
210
150
|
requirements:
|
211
151
|
- - ! '>='
|
@@ -213,12 +153,7 @@ dependencies:
|
|
213
153
|
version: '0'
|
214
154
|
type: :development
|
215
155
|
prerelease: false
|
216
|
-
version_requirements:
|
217
|
-
none: false
|
218
|
-
requirements:
|
219
|
-
- - ! '>='
|
220
|
-
- !ruby/object:Gem::Version
|
221
|
-
version: '0'
|
156
|
+
version_requirements: *14856840
|
222
157
|
description: This gem provides user-friendly interface to Google Adwords API.
|
223
158
|
email:
|
224
159
|
- lucastej@gmail.com
|
@@ -239,14 +174,19 @@ files:
|
|
239
174
|
- examples/add_campaign.rb
|
240
175
|
- examples/add_campaign_criteria.rb
|
241
176
|
- examples/add_invalid_ad_group.rb
|
177
|
+
- examples/add_invalid_keywords.rb
|
242
178
|
- examples/add_invalid_text_ad.rb
|
243
179
|
- examples/add_keywords.rb
|
244
180
|
- examples/add_negative_campaign_criteria.rb
|
245
181
|
- examples/add_text_ad.rb
|
246
182
|
- examples/custom_settings.yml
|
247
183
|
- examples/customize_configuration.rb
|
184
|
+
- examples/delete_ad_group.rb
|
248
185
|
- examples/delete_keyword.rb
|
186
|
+
- examples/delete_text_ad.rb
|
187
|
+
- examples/find_ad_group.rb
|
249
188
|
- examples/find_all_campaigns.rb
|
189
|
+
- examples/find_bare_campaign.rb
|
250
190
|
- examples/find_campaign.rb
|
251
191
|
- examples/find_campaign_ad_groups.rb
|
252
192
|
- examples/find_campaign_criteria.rb
|
@@ -254,8 +194,12 @@ files:
|
|
254
194
|
- examples/log_to_specific_account.rb
|
255
195
|
- examples/rollback_campaign.rb
|
256
196
|
- examples/test_diacritics.rb
|
197
|
+
- examples/update_ad_group.rb
|
257
198
|
- examples/update_campaign.rb
|
258
|
-
- examples/
|
199
|
+
- examples/update_campaign_ad_groups.rb
|
200
|
+
- examples/update_campaign_criteria.rb
|
201
|
+
- examples/update_complete_campaign.rb
|
202
|
+
- examples/update_text_ad.rb
|
259
203
|
- lib/adapi.rb
|
260
204
|
- lib/adapi/ad.rb
|
261
205
|
- lib/adapi/ad/text_ad.rb
|
@@ -275,13 +219,12 @@ files:
|
|
275
219
|
- lib/adapi/location.rb
|
276
220
|
- lib/adapi/version.rb
|
277
221
|
- lib/httpi_monkeypatch.rb
|
278
|
-
- lib/savon_monkeypatch.rb
|
279
|
-
- test/config/adapi.yml.template
|
280
|
-
- test/config/adwords_api.yml.template
|
281
222
|
- test/factories/.gitignore
|
282
223
|
- test/factories/ad_group_factory.rb
|
283
224
|
- test/factories/ad_text_factory.rb
|
284
225
|
- test/factories/campaign_factory.rb
|
226
|
+
- test/fixtures/adapi.yml
|
227
|
+
- test/fixtures/adwords_api.yml
|
285
228
|
- test/integration/create_campaign_test.rb
|
286
229
|
- test/integration/find_location_test.rb
|
287
230
|
- test/test_helper.rb
|
@@ -292,6 +235,7 @@ files:
|
|
292
235
|
- test/unit/campaign_criterion_test.rb
|
293
236
|
- test/unit/campaign_test.rb
|
294
237
|
- test/unit/config_test.rb
|
238
|
+
- test/unit/constant_data/language_test.rb
|
295
239
|
homepage: https://github.com/lstejskal/adapi
|
296
240
|
licenses: []
|
297
241
|
post_install_message:
|
@@ -306,7 +250,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
306
250
|
version: '0'
|
307
251
|
segments:
|
308
252
|
- 0
|
309
|
-
hash:
|
253
|
+
hash: 3921754169281817969
|
310
254
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
311
255
|
none: false
|
312
256
|
requirements:
|
@@ -315,10 +259,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
315
259
|
version: '0'
|
316
260
|
segments:
|
317
261
|
- 0
|
318
|
-
hash:
|
262
|
+
hash: 3921754169281817969
|
319
263
|
requirements: []
|
320
264
|
rubyforge_project: adapi
|
321
|
-
rubygems_version: 1.8.
|
265
|
+
rubygems_version: 1.8.15
|
322
266
|
signing_key:
|
323
267
|
specification_version: 3
|
324
268
|
summary: User-friendly interface to Google Adwords API
|
@@ -1,15 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'adapi'
|
3
|
-
|
4
|
-
# create campaign
|
5
|
-
require_relative 'add_bare_campaign'
|
6
|
-
|
7
|
-
p "ORIGINAL STATUS: %s" % $campaign.status
|
8
|
-
|
9
|
-
$campaign.activate
|
10
|
-
|
11
|
-
p "STATUS UPDATE 1: %s" % $campaign.status
|
12
|
-
|
13
|
-
$campaign.delete
|
14
|
-
|
15
|
-
p "STATUS UPDATE 2: %s" % $campaign.status
|
data/lib/savon_monkeypatch.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
|
2
|
-
# This monkeypatch adds option to prettify Savon SOAP log
|
3
|
-
#
|
4
|
-
# Not necessary, but very convenient feature - unless you're fond of deciphering
|
5
|
-
# endless SOAP request/response one-liners.
|
6
|
-
#
|
7
|
-
# Can be safely removed. Should be only temporary, as the idea is taken straight
|
8
|
-
# out of Savon pull requests and should be included in its future version.
|
9
|
-
|
10
|
-
module Savon
|
11
|
-
module Config
|
12
|
-
|
13
|
-
# Logs a given +message+. Optionally filtered if +xml+ is truthy.
|
14
|
-
def log(message, xml = false)
|
15
|
-
return unless log?
|
16
|
-
|
17
|
-
# ORIG
|
18
|
-
# message = filter_xml(message) if xml && !log_filter.empty?
|
19
|
-
|
20
|
-
# NEW: always run filter_xml method
|
21
|
-
message = filter_xml(message) # if xml && !log_filter.empty?
|
22
|
-
|
23
|
-
logger.send log_level, message
|
24
|
-
end
|
25
|
-
|
26
|
-
# Filters the given +xml+ based on log filter.
|
27
|
-
def filter_xml(xml)
|
28
|
-
doc = Nokogiri::XML(xml)
|
29
|
-
return xml unless doc.errors.empty?
|
30
|
-
|
31
|
-
log_filter.each do |filter|
|
32
|
-
doc.xpath("//*[local-name()='#{filter}']").map { |node| node.content = "***FILTERED***" }
|
33
|
-
end
|
34
|
-
|
35
|
-
# ORIG
|
36
|
-
# doc.root.to_s
|
37
|
-
|
38
|
-
# NEW: return formatted SOAP
|
39
|
-
doc.to_xml(:indent => 2)
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
end
|