adapi 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/.gitignore +1 -1
  2. data/README.markdown +2 -1
  3. data/adapi.gemspec +11 -11
  4. data/examples/add_ad_group.rb +0 -0
  5. data/examples/add_bare_ad_group.rb +3 -1
  6. data/examples/add_bare_campaign.rb +6 -4
  7. data/examples/add_campaign.rb +10 -3
  8. data/examples/add_campaign_criteria.rb +5 -5
  9. data/examples/add_invalid_ad_group.rb +4 -6
  10. data/examples/add_invalid_keywords.rb +40 -0
  11. data/examples/add_invalid_text_ad.rb +6 -6
  12. data/examples/add_keywords.rb +0 -0
  13. data/examples/add_negative_campaign_criteria.rb +0 -0
  14. data/examples/add_text_ad.rb +5 -9
  15. data/examples/custom_settings.yml +8 -0
  16. data/examples/customize_configuration.rb +0 -0
  17. data/examples/delete_ad_group.rb +11 -0
  18. data/examples/delete_keyword.rb +0 -0
  19. data/examples/delete_text_ad.rb +13 -0
  20. data/examples/find_ad_group.rb +10 -0
  21. data/examples/find_all_campaigns.rb +0 -0
  22. data/examples/find_bare_campaign.rb +34 -0
  23. data/examples/find_campaign.rb +0 -0
  24. data/examples/find_campaign_ad_groups.rb +0 -0
  25. data/examples/find_campaign_criteria.rb +0 -0
  26. data/examples/find_locations.rb +0 -0
  27. data/examples/log_to_specific_account.rb +0 -0
  28. data/examples/rollback_campaign.rb +0 -0
  29. data/examples/test_diacritics.rb +0 -0
  30. data/examples/update_ad_group.rb +70 -0
  31. data/examples/update_campaign.rb +34 -9
  32. data/examples/update_campaign_ad_groups.rb +137 -0
  33. data/examples/update_campaign_criteria.rb +33 -0
  34. data/examples/update_complete_campaign.rb +177 -0
  35. data/examples/update_text_ad.rb +18 -0
  36. data/lib/adapi/ad/text_ad.rb +39 -49
  37. data/lib/adapi/ad.rb +30 -19
  38. data/lib/adapi/ad_group.rb +110 -30
  39. data/lib/adapi/api.rb +25 -28
  40. data/lib/adapi/campaign.rb +216 -70
  41. data/lib/adapi/campaign_criterion.rb +44 -5
  42. data/lib/adapi/config.rb +1 -4
  43. data/lib/adapi/constant_data/language.rb +11 -2
  44. data/lib/adapi/keyword.rb +60 -1
  45. data/lib/adapi/version.rb +11 -2
  46. data/lib/adapi.rb +10 -7
  47. data/test/{config/adapi.yml.template → fixtures/adapi.yml} +11 -2
  48. data/test/{config/adwords_api.yml.template → fixtures/adwords_api.yml} +6 -2
  49. data/test/integration/find_location_test.rb +1 -1
  50. data/test/unit/ad_group_test.rb +2 -2
  51. data/test/unit/config_test.rb +8 -27
  52. data/test/unit/constant_data/language_test.rb +34 -0
  53. metadata +52 -108
  54. data/examples/update_campaign_status.rb +0 -15
  55. 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
- # TODO require only ActiveSupport parts that we actually use
11
- require 'active_support/all'
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
- # optional monkeypatch that saves SOAP in Savon log in pretty format
35
- # doesn't save SOAP in pretty format by default (it's faster)
36
- if (Adapi::Config.read[:library][:log_pretty_format] rescue false)
37
- require 'savon_monkeypatch'
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: adapi_yml@example.com
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@example.com
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: adwords_api_yml@example.com
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 Moravia", @location[:location_name]
47
+ assert_equal "South Moravian Region", @location[:location_name]
48
48
  assert_equal "Region", @location[:display_type]
49
49
  end
50
50
 
@@ -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.data.is_a?(Hash)
35
- assert_equal @ad_group.name, @ad_group.data[:name]
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
 
@@ -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
- # because it could have been set in another test
14
- # set default values
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 'adapi_yml@example.com', @settings[:default][:authentication][:email]
21
- assert_equal 'sandbox_email@example.com', @settings[:sandbox][:authentication][: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
- # because it could have been set in another test
28
- # set default values
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 'adwords_api_yml@example.com', @settings[:default][:authentication][:email]
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.8
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-05-27 00:00:00.000000000 Z
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.0
21
+ version: 0.7.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
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.0
32
+ version: 0.6.2
38
33
  type: :runtime
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
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.1'
43
+ version: '3.0'
54
44
  type: :runtime
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
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.1'
54
+ version: '3.0'
70
55
  type: :runtime
71
56
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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.8.2
109
+ version: 0.9.6
150
110
  type: :development
151
111
  prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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/update_campaign_status.rb
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: -478548313315719997
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: -478548313315719997
262
+ hash: 3921754169281817969
319
263
  requirements: []
320
264
  rubyforge_project: adapi
321
- rubygems_version: 1.8.21
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
@@ -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