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.
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