sem4r 0.1.3 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/.gemtest +0 -0
  2. data/Gemfile +2 -22
  3. data/Gemfile.lock +43 -20
  4. data/Rakefile +4 -2
  5. data/bin/sem +2 -6
  6. data/lib/sem4r/adwords.rb +8 -142
  7. data/lib/sem4r/campaign/campaign_account_extension.rb +4 -5
  8. data/lib/sem4r/profile.rb +173 -0
  9. data/lib/sem4r/sem4r_utilities.rb +113 -0
  10. data/lib/sem4r/v13_report/report.rb +5 -0
  11. data/lib/sem4r/version.rb +27 -0
  12. data/lib/sem4r.rb +5 -26
  13. data/lib/sem4r_cli/cli_sem.rb +116 -170
  14. data/lib/sem4r_cli/commands/{cli_ads.rb → cmd_ads.rb} +4 -4
  15. data/lib/sem4r_cli/commands/{cli_campaign.rb → cmd_campaign.rb} +7 -7
  16. data/lib/sem4r_cli/commands/{cli_clients.rb → cmd_clients.rb} +4 -5
  17. data/lib/sem4r_cli/commands/{cli_ideas.rb → cmd_ideas.rb} +7 -5
  18. data/lib/sem4r_cli/commands/{cli_info.rb → cmd_info.rb} +6 -6
  19. data/lib/sem4r_cli/commands/{cli_job.rb → cmd_job.rb} +4 -2
  20. data/lib/sem4r_cli/commands/{cli_keywords.rb → cmd_keywords.rb} +4 -4
  21. data/lib/sem4r_cli/commands/{cli_profile.rb → cmd_profile.rb} +23 -19
  22. data/lib/sem4r_cli/commands/{cli_repdef.rb → cmd_repdef.rb} +6 -4
  23. data/lib/sem4r_cli/commands/{cli_report.rb → cmd_report.rb} +8 -6
  24. data/lib/sem4r_cli.rb +6 -4
  25. data/lib/sem4r_debug_client/client.rb +200 -0
  26. data/lib/sem4r_debug_client.rb +31 -0
  27. data/lib/sem4r_sinatra/cli_server.rb +45 -0
  28. data/lib/sem4r_sinatra/helpers.rb +60 -0
  29. data/lib/sem4r_sinatra/web_server.rb +46 -0
  30. data/lib/sem4r_sinatra.rb +13 -0
  31. data/lib/sem4r_soap/http_connector.rb +5 -6
  32. data/lib/sem4r_soap/soap_dumper.rb +3 -14
  33. data/lib/sem4r_soap/soap_service.rb +5 -5
  34. data/lib/sem4r_soap/soap_service_v2010.rb +2 -2
  35. data/lib/sem4r_soap.rb +24 -0
  36. data/sem4r.gemspec +75 -313
  37. data/spec/fixtures/password.example.yml +5 -3
  38. data/spec/helpers/rspec_matchers.rb +2 -19
  39. data/spec/helpers/rspec_sem4r_helper.rb +25 -9
  40. data/spec/rspec_helper.rb +7 -0
  41. data/spec/sem4r/ad_group/ad_group_spec.rb +2 -3
  42. data/spec/sem4r/ad_group_ad/fixtures/mutate_add_mobile_ad-req.xml +8 -11
  43. data/spec/sem4r/ad_group_criterion/fixtures/mutate_add_negative_keyword-req.xml +1 -3
  44. data/spec/sem4r/adwords_spec.rb +0 -5
  45. data/spec/sem4r/bulk_mutate_job/fixtures/get-list_job-req.xml +18 -33
  46. data/spec/sem4r/bulk_mutate_job/fixtures/get-list_job-res.xml +232 -416
  47. data/spec/sem4r/bulk_mutate_job/fixtures/mutate-add_job-req.xml +55 -104
  48. data/spec/sem4r/bulk_mutate_job/fixtures/mutate-add_job-res.xml +25 -47
  49. data/spec/sem4r/geo_location/fixtures/get-req.xml +23 -40
  50. data/spec/sem4r/geo_location/fixtures/get-res.xml +31 -59
  51. data/spec/sem4r/info/fixtures/get-req.xml +19 -32
  52. data/spec/sem4r/info/fixtures/get-res.xml +16 -26
  53. data/spec/sem4r/profiles_spec.rb +52 -0
  54. data/spec/sem4r/report_definition/fixtures/get-list-repdef-req.xml +13 -20
  55. data/spec/sem4r/report_definition/fixtures/get-list-repdef-res.xml +34 -72
  56. data/spec/sem4r/report_definition/fixtures/getReportFields-req.xml +13 -22
  57. data/spec/sem4r/report_definition/fixtures/getReportFields-res.xml +476 -1198
  58. data/spec/sem4r/report_definition/fixtures/mutate-add-report-req.xml +30 -61
  59. data/spec/sem4r/report_definition/fixtures/mutate-add-report-res.xml +31 -67
  60. data/spec/sem4r/report_definition/report_definition_spec.rb +1 -1
  61. data/spec/sem4r/v13_report/fixtures/schedule_report_job-req.xml +11 -33
  62. data/spec/sem4r_cli/cli_spec.rb +4 -22
  63. data/tasks/sem4r.rake +0 -3
  64. data/tasks/yard.rake +2 -2
  65. metadata +188 -177
  66. data/VERSION.yml +0 -5
  67. data/lib/sem4r_cli/cli_helpers.rb +0 -59
  68. data/lib/sem4r_cli/cli_mini_framework.rb +0 -147
  69. 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: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'>
4
- <env:Header>
5
- <RequestHeader env:mustUnderstand='0'>
6
- <authToken>
7
- ***censured***
8
- </authToken>
9
- <userAgent>
10
- Sem4r Adwords Ruby Client Library (http://github.com/sem4r/sem4r)
11
- </userAgent>
12
- <developerToken>
13
- ***censured***
14
- </developerToken>
15
- </RequestHeader>
16
- </env:Header>
17
- <env:Body>
18
- <mutate>
19
- <operations xsi:type='n1:ReportDefinitionOperation' xmlns:n1='https://adwords.google.com/api/adwords/cm/v201008'>
20
- <operator>
21
- ADD
22
- </operator>
23
- <operand>
24
- <selector>
25
- <fields>
26
- AdGroupId
27
- </fields>
28
- <fields>
29
- Id
30
- </fields>
31
- <fields>
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='http://schemas.xmlsoap.org/soap/envelope/'>
2
- <soap:Header>
3
- <ResponseHeader xmlns='https://adwords.google.com/api/adwords/cm/v201008'>
4
- <requestId>
5
- 0789bb35587ef7a3c09857e7dc98f468
6
- </requestId>
7
- <operations>
8
- 1
9
- </operations>
10
- <responseTime>
11
- 342
12
- </responseTime>
13
- <units>
14
- 1
15
- </units>
16
- </ResponseHeader>
17
- </soap:Header>
18
- <soap:Body>
19
- <mutateResponse xmlns='https://adwords.google.com/api/adwords/cm/v201008'>
20
- <rval>
21
- <id>
22
- 9257
23
- </id>
24
- <selector>
25
- <fields>
26
- AdGroupId
27
- </fields>
28
- <fields>
29
- Id
30
- </fields>
31
- <fields>
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>
@@ -40,7 +40,7 @@ describe ReportDefinition do
40
40
  name "report"
41
41
  end
42
42
  rd.name.should == "report"
43
- rd.id.should == 9257
43
+ rd.id.should == 13578
44
44
  end
45
45
 
46
46
 
@@ -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
- Test Report
22
- </name>
23
- <selectedReportType>
24
- Structure
25
- </selectedReportType>
26
- <startDay>
27
- 2009-01-01
28
- </startDay>
29
- <endDay>
30
- 2009-01-31
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>
@@ -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
- out = with_stdout_captured do
35
- cli = Sem4rCli::CliSem.new
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 = with_stdout_captured do
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
@@ -1,6 +1,3 @@
1
- ###############################################################################
2
- # Sem4r
3
-
4
1
  namespace :sem4r do
5
2
  #
6
3
  # examples
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