sem4r 0.1.3 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.gemtest +0 -0
- data/Gemfile +2 -22
- data/Gemfile.lock +43 -20
- data/Rakefile +4 -2
- data/bin/sem +2 -6
- data/lib/sem4r/adwords.rb +8 -142
- data/lib/sem4r/campaign/campaign_account_extension.rb +4 -5
- data/lib/sem4r/profile.rb +173 -0
- data/lib/sem4r/sem4r_utilities.rb +113 -0
- data/lib/sem4r/v13_report/report.rb +5 -0
- data/lib/sem4r/version.rb +27 -0
- data/lib/sem4r.rb +5 -26
- data/lib/sem4r_cli/cli_sem.rb +116 -170
- data/lib/sem4r_cli/commands/{cli_ads.rb → cmd_ads.rb} +4 -4
- data/lib/sem4r_cli/commands/{cli_campaign.rb → cmd_campaign.rb} +7 -7
- data/lib/sem4r_cli/commands/{cli_clients.rb → cmd_clients.rb} +4 -5
- data/lib/sem4r_cli/commands/{cli_ideas.rb → cmd_ideas.rb} +7 -5
- data/lib/sem4r_cli/commands/{cli_info.rb → cmd_info.rb} +6 -6
- data/lib/sem4r_cli/commands/{cli_job.rb → cmd_job.rb} +4 -2
- data/lib/sem4r_cli/commands/{cli_keywords.rb → cmd_keywords.rb} +4 -4
- data/lib/sem4r_cli/commands/{cli_profile.rb → cmd_profile.rb} +23 -19
- data/lib/sem4r_cli/commands/{cli_repdef.rb → cmd_repdef.rb} +6 -4
- data/lib/sem4r_cli/commands/{cli_report.rb → cmd_report.rb} +8 -6
- data/lib/sem4r_cli.rb +6 -4
- data/lib/sem4r_debug_client/client.rb +200 -0
- data/lib/sem4r_debug_client.rb +31 -0
- data/lib/sem4r_sinatra/cli_server.rb +45 -0
- data/lib/sem4r_sinatra/helpers.rb +60 -0
- data/lib/sem4r_sinatra/web_server.rb +46 -0
- data/lib/sem4r_sinatra.rb +13 -0
- data/lib/sem4r_soap/http_connector.rb +5 -6
- data/lib/sem4r_soap/soap_dumper.rb +3 -14
- data/lib/sem4r_soap/soap_service.rb +5 -5
- data/lib/sem4r_soap/soap_service_v2010.rb +2 -2
- data/lib/sem4r_soap.rb +24 -0
- data/sem4r.gemspec +75 -313
- data/spec/fixtures/password.example.yml +5 -3
- data/spec/helpers/rspec_matchers.rb +2 -19
- data/spec/helpers/rspec_sem4r_helper.rb +25 -9
- data/spec/rspec_helper.rb +7 -0
- data/spec/sem4r/ad_group/ad_group_spec.rb +2 -3
- data/spec/sem4r/ad_group_ad/fixtures/mutate_add_mobile_ad-req.xml +8 -11
- data/spec/sem4r/ad_group_criterion/fixtures/mutate_add_negative_keyword-req.xml +1 -3
- data/spec/sem4r/adwords_spec.rb +0 -5
- data/spec/sem4r/bulk_mutate_job/fixtures/get-list_job-req.xml +18 -33
- data/spec/sem4r/bulk_mutate_job/fixtures/get-list_job-res.xml +232 -416
- data/spec/sem4r/bulk_mutate_job/fixtures/mutate-add_job-req.xml +55 -104
- data/spec/sem4r/bulk_mutate_job/fixtures/mutate-add_job-res.xml +25 -47
- data/spec/sem4r/geo_location/fixtures/get-req.xml +23 -40
- data/spec/sem4r/geo_location/fixtures/get-res.xml +31 -59
- data/spec/sem4r/info/fixtures/get-req.xml +19 -32
- data/spec/sem4r/info/fixtures/get-res.xml +16 -26
- data/spec/sem4r/profiles_spec.rb +52 -0
- data/spec/sem4r/report_definition/fixtures/get-list-repdef-req.xml +13 -20
- data/spec/sem4r/report_definition/fixtures/get-list-repdef-res.xml +34 -72
- data/spec/sem4r/report_definition/fixtures/getReportFields-req.xml +13 -22
- data/spec/sem4r/report_definition/fixtures/getReportFields-res.xml +476 -1198
- data/spec/sem4r/report_definition/fixtures/mutate-add-report-req.xml +30 -61
- data/spec/sem4r/report_definition/fixtures/mutate-add-report-res.xml +31 -67
- data/spec/sem4r/report_definition/report_definition_spec.rb +1 -1
- data/spec/sem4r/v13_report/fixtures/schedule_report_job-req.xml +11 -33
- data/spec/sem4r_cli/cli_spec.rb +4 -22
- data/tasks/sem4r.rake +0 -3
- data/tasks/yard.rake +2 -2
- metadata +188 -177
- data/VERSION.yml +0 -5
- data/lib/sem4r_cli/cli_helpers.rb +0 -59
- data/lib/sem4r_cli/cli_mini_framework.rb +0 -147
- data/tasks/jeweler.rake +0 -66
@@ -1,63 +1,32 @@
|
|
1
1
|
<!-- Post to 'https://adwords-sandbox.google.com/api/adwords/cm/v201008/ReportDefinitionService' -->
|
2
|
-
|
3
|
-
<env:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
</
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
KeywordText
|
33
|
-
</fields>
|
34
|
-
<fields>
|
35
|
-
KeywordMatchType
|
36
|
-
</fields>
|
37
|
-
<fields>
|
38
|
-
Impressions
|
39
|
-
</fields>
|
40
|
-
<fields>
|
41
|
-
Clicks
|
42
|
-
</fields>
|
43
|
-
<fields>
|
44
|
-
Cost
|
45
|
-
</fields>
|
46
|
-
</selector>
|
47
|
-
<reportName>
|
48
|
-
Keywords performance report #1290336379254
|
49
|
-
</reportName>
|
50
|
-
<reportType>
|
51
|
-
KEYWORDS_PERFORMANCE_REPORT
|
52
|
-
</reportType>
|
53
|
-
<dateRangeType>
|
54
|
-
LAST_WEEK
|
55
|
-
</dateRangeType>
|
56
|
-
<downloadFormat>
|
57
|
-
CSV
|
58
|
-
</downloadFormat>
|
59
|
-
</operand>
|
60
|
-
</operations>
|
61
|
-
</mutate>
|
62
|
-
</env:Body>
|
2
|
+
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="https://adwords.google.com/api/adwords/cm/v201008">
|
3
|
+
<env:Header>
|
4
|
+
<RequestHeader env:mustUnderstand="0">
|
5
|
+
<authToken>***censured***</authToken>
|
6
|
+
<userAgent>Sem4r Adwords Ruby Client Library (http://github.com/sem4r/sem4r)</userAgent>
|
7
|
+
<developerToken>***censured***</developerToken>
|
8
|
+
</RequestHeader>
|
9
|
+
</env:Header>
|
10
|
+
<env:Body>
|
11
|
+
<mutate>
|
12
|
+
<operations xmlns:n1="https://adwords.google.com/api/adwords/cm/v201008" xsi:type="n1:ReportDefinitionOperation">
|
13
|
+
<operator>ADD</operator>
|
14
|
+
<operand>
|
15
|
+
<selector>
|
16
|
+
<fields>AdGroupId</fields>
|
17
|
+
<fields>Id</fields>
|
18
|
+
<fields>KeywordText</fields>
|
19
|
+
<fields>KeywordMatchType</fields>
|
20
|
+
<fields>Impressions</fields>
|
21
|
+
<fields>Clicks</fields>
|
22
|
+
<fields>Cost</fields>
|
23
|
+
</selector>
|
24
|
+
<reportName>Keywords performance report #1290336379254</reportName>
|
25
|
+
<reportType>KEYWORDS_PERFORMANCE_REPORT</reportType>
|
26
|
+
<dateRangeType>LAST_WEEK</dateRangeType>
|
27
|
+
<downloadFormat>CSV</downloadFormat>
|
28
|
+
</operand>
|
29
|
+
</operations>
|
30
|
+
</mutate>
|
31
|
+
</env:Body>
|
63
32
|
</env:Envelope>
|
@@ -1,68 +1,32 @@
|
|
1
|
-
<soap:Envelope xmlns:soap=
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
KeywordText
|
33
|
-
</fields>
|
34
|
-
<fields>
|
35
|
-
KeywordMatchType
|
36
|
-
</fields>
|
37
|
-
<fields>
|
38
|
-
Impressions
|
39
|
-
</fields>
|
40
|
-
<fields>
|
41
|
-
Clicks
|
42
|
-
</fields>
|
43
|
-
<fields>
|
44
|
-
Cost
|
45
|
-
</fields>
|
46
|
-
</selector>
|
47
|
-
<reportName>
|
48
|
-
Keywords performance report #1290336379254
|
49
|
-
</reportName>
|
50
|
-
<reportType>
|
51
|
-
KEYWORDS_PERFORMANCE_REPORT
|
52
|
-
</reportType>
|
53
|
-
<hasAttachment>
|
54
|
-
false
|
55
|
-
</hasAttachment>
|
56
|
-
<dateRangeType>
|
57
|
-
LAST_WEEK
|
58
|
-
</dateRangeType>
|
59
|
-
<downloadFormat>
|
60
|
-
CSV
|
61
|
-
</downloadFormat>
|
62
|
-
<creationTime>
|
63
|
-
20101210 105826 America/Los_Angeles
|
64
|
-
</creationTime>
|
65
|
-
</rval>
|
66
|
-
</mutateResponse>
|
67
|
-
</soap:Body>
|
1
|
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
2
|
+
<soap:Header>
|
3
|
+
<ResponseHeader xmlns="https://adwords.google.com/api/adwords/cm/v201008">
|
4
|
+
<requestId>43f601d2695055bec23c35a09bea2e6d</requestId>
|
5
|
+
<operations>1</operations>
|
6
|
+
<responseTime>182</responseTime>
|
7
|
+
<units>1</units>
|
8
|
+
</ResponseHeader>
|
9
|
+
</soap:Header>
|
10
|
+
<soap:Body>
|
11
|
+
<mutateResponse xmlns="https://adwords.google.com/api/adwords/cm/v201008">
|
12
|
+
<rval>
|
13
|
+
<id>13578</id>
|
14
|
+
<selector>
|
15
|
+
<fields>AdGroupId</fields>
|
16
|
+
<fields>Id</fields>
|
17
|
+
<fields>KeywordText</fields>
|
18
|
+
<fields>KeywordMatchType</fields>
|
19
|
+
<fields>Impressions</fields>
|
20
|
+
<fields>Clicks</fields>
|
21
|
+
<fields>Cost</fields>
|
22
|
+
</selector>
|
23
|
+
<reportName>Keywords performance report #1290336379254</reportName>
|
24
|
+
<reportType>KEYWORDS_PERFORMANCE_REPORT</reportType>
|
25
|
+
<hasAttachment>false</hasAttachment>
|
26
|
+
<dateRangeType>LAST_WEEK</dateRangeType>
|
27
|
+
<downloadFormat>CSV</downloadFormat>
|
28
|
+
<creationTime>20101213 131755 America/Los_Angeles</creationTime>
|
29
|
+
</rval>
|
30
|
+
</mutateResponse>
|
31
|
+
</soap:Body>
|
68
32
|
</soap:Envelope>
|
@@ -17,39 +17,17 @@
|
|
17
17
|
<env:Body>
|
18
18
|
<scheduleReportJob xmlns='https://adwords.google.com/api/adwords/v13'>
|
19
19
|
<job xsi:type='DefinedReportJob'>
|
20
|
-
<name>
|
21
|
-
|
22
|
-
</
|
23
|
-
<
|
24
|
-
|
25
|
-
</
|
26
|
-
<
|
27
|
-
|
28
|
-
</
|
29
|
-
<
|
30
|
-
|
31
|
-
</endDay>
|
32
|
-
<aggregationTypes>
|
33
|
-
Keyword
|
34
|
-
</aggregationTypes>
|
35
|
-
<crossClient>
|
36
|
-
false
|
37
|
-
</crossClient>
|
38
|
-
<includeZeroImpression>
|
39
|
-
false
|
40
|
-
</includeZeroImpression>
|
41
|
-
<selectedColumns>
|
42
|
-
Campaign
|
43
|
-
</selectedColumns>
|
44
|
-
<selectedColumns>
|
45
|
-
AdGroup
|
46
|
-
</selectedColumns>
|
47
|
-
<selectedColumns>
|
48
|
-
Keyword
|
49
|
-
</selectedColumns>
|
50
|
-
<selectedColumns>
|
51
|
-
KeywordTypeDisplay
|
52
|
-
</selectedColumns>
|
20
|
+
<name>Test Report</name>
|
21
|
+
<selectedReportType>Structure</selectedReportType>
|
22
|
+
<startDay>2009-01-01</startDay>
|
23
|
+
<endDay>2009-01-31</endDay>
|
24
|
+
<aggregationTypes>Keyword</aggregationTypes>
|
25
|
+
<crossClient>false</crossClient>
|
26
|
+
<includeZeroImpression>false</includeZeroImpression>
|
27
|
+
<selectedColumns>Campaign</selectedColumns>
|
28
|
+
<selectedColumns>AdGroup</selectedColumns>
|
29
|
+
<selectedColumns>Keyword</selectedColumns>
|
30
|
+
<selectedColumns>KeywordTypeDisplay</selectedColumns>
|
53
31
|
</job>
|
54
32
|
</scheduleReportJob>
|
55
33
|
</env:Body>
|
data/spec/sem4r_cli/cli_spec.rb
CHANGED
@@ -20,7 +20,6 @@
|
|
20
20
|
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
21
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
22
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
23
|
-
#
|
24
23
|
# -------------------------------------------------------------------------
|
25
24
|
|
26
25
|
require File.dirname(__FILE__) + '/../rspec_helper'
|
@@ -31,33 +30,16 @@ describe "cli" do
|
|
31
30
|
describe Sem4rCli::CliSem do
|
32
31
|
|
33
32
|
it "should show help" do
|
34
|
-
|
35
|
-
|
36
|
-
args = %w{ -h }
|
37
|
-
cli.parse_and_run(args)
|
38
|
-
end
|
33
|
+
ret = false
|
34
|
+
out = capture_out { ret = Sem4rCli::CliSem.run %w{ -h } }.out
|
39
35
|
out.should match("Usage")
|
36
|
+
ret.should be_true
|
40
37
|
end
|
41
38
|
end
|
42
39
|
|
43
|
-
it "should show help and exit" do
|
44
|
-
ret = true
|
45
|
-
out = with_stdout_captured do
|
46
|
-
args = %w{ -h }
|
47
|
-
cmd = Sem4rCli::CliSem.new
|
48
|
-
ret = cmd.parse_and_run(args)
|
49
|
-
end
|
50
|
-
out.should match("Usage")
|
51
|
-
ret.should be_true
|
52
|
-
end
|
53
|
-
|
54
40
|
it "should show version and exit" do
|
55
41
|
ret = true
|
56
|
-
out =
|
57
|
-
args = %w{ --version }
|
58
|
-
cmd = Sem4rCli::CliSem.new
|
59
|
-
ret = cmd.parse_and_run(args)
|
60
|
-
end
|
42
|
+
out = capture_out { ret = Sem4rCli::CliSem.run %w{ --version } }.out
|
61
43
|
out.should match("sem4r version")
|
62
44
|
ret.should be_true
|
63
45
|
end
|
data/tasks/sem4r.rake
CHANGED
data/tasks/yard.rake
CHANGED
@@ -20,9 +20,9 @@ begin
|
|
20
20
|
#require 'rake/rdoctask'
|
21
21
|
#
|
22
22
|
#Rake::RDocTask.new do |rdoc|
|
23
|
-
# version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
23
|
+
# version.rb = File.exist?('VERSION') ? File.read('VERSION') : ""
|
24
24
|
# rdoc.rdoc_dir = 'rdoc'
|
25
|
-
# rdoc.title = "sem4r #{version}"
|
25
|
+
# rdoc.title = "sem4r #{version.rb}"
|
26
26
|
# rdoc.rdoc_files.include('README*')
|
27
27
|
# rdoc.rdoc_files.include('lib/**/*.rb')
|
28
28
|
#end
|