yieldmanager 0.9.0 → 0.9.1
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.
- data/VERSION +1 -1
- data/lib/soap4r_19_patch/xsd/iconvcharset.rb +42 -0
- data/lib/yieldmanager/report.rb +21 -2
- data/spec/yieldmanager/report_spec.rb +6 -5
- data/yieldmanager.gemspec +11 -10
- metadata +34 -13
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.1
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# XSD4R - Charset handling with iconv.
|
2
|
+
# # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
|
+
#
|
4
|
+
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
|
+
# redistribute it and/or modify it under the same terms of Ruby's license;
|
6
|
+
# either the dual license version in 2003, or any later version.
|
7
|
+
#
|
8
|
+
# PATCH CLONED FROM THIS GITHUB PULL REQUEST https://github.com/felipec/soap4r/pull/6
|
9
|
+
#
|
10
|
+
|
11
|
+
unless ''.respond_to? :encode
|
12
|
+
require 'iconv'
|
13
|
+
end
|
14
|
+
|
15
|
+
module XSD
|
16
|
+
|
17
|
+
|
18
|
+
class IconvCharset
|
19
|
+
if ''.respond_to? :encode
|
20
|
+
def self.safe_iconv(to, from, str)
|
21
|
+
str.encode(to, from, :invalid => :replace, :undef => :replace, :replace => '?')
|
22
|
+
end
|
23
|
+
else
|
24
|
+
def self.safe_iconv(to, from, str)
|
25
|
+
iconv = Iconv.new(to, from)
|
26
|
+
out = ""
|
27
|
+
begin
|
28
|
+
out << iconv.iconv(str)
|
29
|
+
rescue Iconv::IllegalSequence => e
|
30
|
+
out << e.success
|
31
|
+
ch, str = e.failed.split(//, 2)
|
32
|
+
out << '?'
|
33
|
+
warn("Failed to convert #{ch}")
|
34
|
+
retry
|
35
|
+
end
|
36
|
+
return out
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
end
|
data/lib/yieldmanager/report.rb
CHANGED
@@ -57,6 +57,10 @@ module Yieldmanager
|
|
57
57
|
hashes
|
58
58
|
end
|
59
59
|
|
60
|
+
def pause
|
61
|
+
sleep(5)
|
62
|
+
end
|
63
|
+
|
60
64
|
private
|
61
65
|
|
62
66
|
def request_report_token token, report, xml
|
@@ -68,13 +72,24 @@ private
|
|
68
72
|
60.times do |secs| # Poll until report ready
|
69
73
|
report_url = report.status(token,report_token)
|
70
74
|
break if report_url != nil
|
71
|
-
|
75
|
+
pause
|
72
76
|
end
|
73
77
|
report_url
|
74
78
|
end
|
75
79
|
|
76
80
|
def retrieve_data url
|
77
|
-
|
81
|
+
retries = 5
|
82
|
+
doc = nil
|
83
|
+
while (doc == nil && retries > 0) do
|
84
|
+
begin
|
85
|
+
doc = parse_data(url)
|
86
|
+
rescue Exception => e
|
87
|
+
retries = retries - 1
|
88
|
+
pause
|
89
|
+
end
|
90
|
+
end
|
91
|
+
raise "Failed pulling report data from #{url}" unless doc
|
92
|
+
|
78
93
|
(doc/"header column").each do |col|
|
79
94
|
headers << col.inner_html
|
80
95
|
end
|
@@ -87,6 +102,10 @@ private
|
|
87
102
|
data << row
|
88
103
|
end
|
89
104
|
end
|
105
|
+
|
106
|
+
def parse_data url
|
107
|
+
open(url) { |f| Hpricot(f) }
|
108
|
+
end
|
90
109
|
|
91
110
|
class ReportRow < Array
|
92
111
|
def initialize report
|
@@ -98,11 +98,12 @@ describe "A Yieldmanager report request" do
|
|
98
98
|
report.headers[0] = 'new_first'
|
99
99
|
report.data.first.by_name('new_first').should == "one"
|
100
100
|
end
|
101
|
-
|
102
|
-
it "complains if report
|
103
|
-
|
104
|
-
|
105
|
-
|
101
|
+
|
102
|
+
it "complains if report URL doesn't exist, even after retries" do
|
103
|
+
report = Yieldmanager::Report.new
|
104
|
+
report.stub(:pause) {} # don't make me wait
|
105
|
+
expect{ report.send(:retrieve_data,"http://i_dont_exist.com") }.to raise_error
|
106
|
+
end
|
106
107
|
|
107
108
|
def login_args
|
108
109
|
unless ENV["YIELDMANAGER_USER"] &&
|
data/yieldmanager.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.9.
|
7
|
+
s.name = "yieldmanager"
|
8
|
+
s.version = "0.9.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
11
|
+
s.authors = ["Bill Gathen"]
|
12
|
+
s.date = "2012-08-24"
|
13
|
+
s.description = "This gem offers full access to YieldManager's API tools (read/write) as well as ad-hoc reporting through the Reportware tool"
|
14
|
+
s.email = "bill@billgathen.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
17
|
"README.md",
|
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
|
|
32
32
|
"lib/soap4r_19_patch/soap/generator.rb",
|
33
33
|
"lib/soap4r_19_patch/soap/property.rb",
|
34
34
|
"lib/soap4r_19_patch/xsd/charset.rb",
|
35
|
+
"lib/soap4r_19_patch/xsd/iconvcharset.rb",
|
35
36
|
"lib/soap4r_19_patch/xsd/xmlparser.rb",
|
36
37
|
"lib/wsdl/patch.rb",
|
37
38
|
"lib/yieldmanager.rb",
|
@@ -45,10 +46,10 @@ Gem::Specification.new do |s|
|
|
45
46
|
"spec/yieldmanager/report_spec.rb",
|
46
47
|
"yieldmanager.gemspec"
|
47
48
|
]
|
48
|
-
s.homepage =
|
49
|
-
s.require_paths = [
|
50
|
-
s.rubygems_version =
|
51
|
-
s.summary =
|
49
|
+
s.homepage = "http://github.com/billgathen/yieldmanager"
|
50
|
+
s.require_paths = ["lib"]
|
51
|
+
s.rubygems_version = "1.8.24"
|
52
|
+
s.summary = "Interact with RightMedia's YieldManager API and Reportware products"
|
52
53
|
|
53
54
|
if s.respond_to? :specification_version then
|
54
55
|
s.specification_version = 3
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yieldmanager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 1.2.9
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.2.9
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rdoc
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,29 +37,44 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: hpricot
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
|
-
- - =
|
51
|
+
- - '='
|
42
52
|
- !ruby/object:Gem::Version
|
43
53
|
version: 0.8.2
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.8.2
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: soap4r
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
|
-
- - =
|
67
|
+
- - '='
|
53
68
|
- !ruby/object:Gem::Version
|
54
69
|
version: 1.5.8
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - '='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.5.8
|
58
78
|
description: This gem offers full access to YieldManager's API tools (read/write)
|
59
79
|
as well as ad-hoc reporting through the Reportware tool
|
60
80
|
email: bill@billgathen.com
|
@@ -79,6 +99,7 @@ files:
|
|
79
99
|
- lib/soap4r_19_patch/soap/generator.rb
|
80
100
|
- lib/soap4r_19_patch/soap/property.rb
|
81
101
|
- lib/soap4r_19_patch/xsd/charset.rb
|
102
|
+
- lib/soap4r_19_patch/xsd/iconvcharset.rb
|
82
103
|
- lib/soap4r_19_patch/xsd/xmlparser.rb
|
83
104
|
- lib/wsdl/patch.rb
|
84
105
|
- lib/yieldmanager.rb
|
@@ -111,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
132
|
version: '0'
|
112
133
|
requirements: []
|
113
134
|
rubyforge_project:
|
114
|
-
rubygems_version: 1.8.
|
135
|
+
rubygems_version: 1.8.24
|
115
136
|
signing_key:
|
116
137
|
specification_version: 3
|
117
138
|
summary: Interact with RightMedia's YieldManager API and Reportware products
|