sem4r 0.1.3 → 0.1.5

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