yieldmanager 0.3.5 → 0.4.0
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/TODO +1 -0
- data/VERSION +1 -1
- data/lib/patch_detector.rb +22 -0
- data/lib/wsdl/patch.rb +38 -0
- data/lib/yieldmanager.rb +8 -0
- data/lib/yieldmanager/builder.rb +1 -0
- data/lib/yieldmanager/client.rb +1 -0
- data/spec/patch_detector_spec.rb +50 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/yieldmanager/client_spec.rb +2 -2
- data/spec/yieldmanager/report_spec.rb +5 -4
- data/yieldmanager.gemspec +7 -3
- metadata +6 -2
data/TODO
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
"unknown element: {http://schemas.xmlsoap.org/wsdl/}definitions"
|
3
3
|
* throwing warning when running in autotest, but not spec?: monkeypatch net/http?
|
4
4
|
"warning: peer certificate won't be verified in this SSL session"
|
5
|
+
* DONE (chris) Monkey-patch 1.8.7 to handle targetnamespace bug
|
5
6
|
* DONE Using :env => "test" actually hits test environment
|
6
7
|
* DONE add session start/end
|
7
8
|
* DONE add session block
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module PatchDetector
|
2
|
+
def needs_patching?(opts={})
|
3
|
+
|
4
|
+
ruby_version, minimum_ruby_version_for_patch = opts.values_at(:ruby_version, :minimum_ruby_version_for_patch)
|
5
|
+
|
6
|
+
[ruby_version, minimum_ruby_version_for_patch].each do |extracted_option|
|
7
|
+
raise(ArgumentError, "requires :ruby_version and :minimum_ruby_version_for_patch") if extracted_option.nil? || extracted_option.empty?
|
8
|
+
end
|
9
|
+
|
10
|
+
return false if ruby_version.nil? || minimum_ruby_version_for_patch.nil?
|
11
|
+
|
12
|
+
minimum_ruby_version_for_patch =~ /(\d+)\.(\d+)\.(\d+)/
|
13
|
+
min_release_milestone, min_release_feature, min_release_bug_fix = [$1, $2, $3].collect{|m| m.to_i}
|
14
|
+
|
15
|
+
ruby_version =~ /(\d+)\.(\d+)\.(\d+)/
|
16
|
+
ruby_version_milestone, ruby_version_feature, ruby_version_bug_fix = [$1, $2, $3].collect{|m| m.to_i}
|
17
|
+
|
18
|
+
return true if (ruby_version_milestone >= min_release_milestone) && (ruby_version_feature >= min_release_feature) && (ruby_version_bug_fix >= min_release_bug_fix)
|
19
|
+
return false
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
data/lib/wsdl/patch.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
# warn "Patching WSDL::Import"
|
2
|
+
|
3
|
+
module WSDL
|
4
|
+
class Import < Info
|
5
|
+
def parse_attr(attr, value)
|
6
|
+
case attr
|
7
|
+
when NamespaceAttrName
|
8
|
+
@namespace = value.source
|
9
|
+
# if @content
|
10
|
+
# @content.targetnamespace = @namespace
|
11
|
+
# end
|
12
|
+
@namespace
|
13
|
+
when LocationAttrName
|
14
|
+
@location = URI.parse(value.source)
|
15
|
+
if @location.relative? and !parent.location.nil? and
|
16
|
+
!parent.location.relative?
|
17
|
+
@location = parent.location + @location
|
18
|
+
end
|
19
|
+
if root.importedschema.key?(@location)
|
20
|
+
@content = root.importedschema[@location]
|
21
|
+
else
|
22
|
+
root.importedschema[@location] = nil # placeholder
|
23
|
+
@content = import(@location)
|
24
|
+
if @content.is_a?(Definitions)
|
25
|
+
@content.root = root
|
26
|
+
if @namespace
|
27
|
+
@content.targetnamespace = @namespace
|
28
|
+
end
|
29
|
+
end
|
30
|
+
root.importedschema[@location] = @content
|
31
|
+
end
|
32
|
+
@location
|
33
|
+
else
|
34
|
+
nil
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/yieldmanager.rb
CHANGED
@@ -9,6 +9,14 @@ $LOAD_PATH.unshift dir unless $LOAD_PATH.include?(dir)
|
|
9
9
|
module Yieldmanager
|
10
10
|
end
|
11
11
|
|
12
|
+
require 'patch_detector'
|
13
|
+
include PatchDetector
|
14
|
+
|
12
15
|
require 'yieldmanager/client'
|
16
|
+
|
17
|
+
if needs_patching?(:ruby_version => RUBY_VERSION, :minimum_ruby_version_for_patch => "1.8.7")
|
18
|
+
require 'wsdl/patch'
|
19
|
+
end
|
20
|
+
|
13
21
|
require 'yieldmanager/builder'
|
14
22
|
require 'yieldmanager/report'
|
data/lib/yieldmanager/builder.rb
CHANGED
@@ -17,6 +17,7 @@ module Yieldmanager
|
|
17
17
|
BASE_URL = "https://api.yieldmanager.com/api-"
|
18
18
|
BASE_URL_TEST = "https://api-test.yieldmanager.com/api-"
|
19
19
|
WSDL_DIR = File.join(File.dirname(__FILE__), '..', '..', 'wsdls')
|
20
|
+
|
20
21
|
def self.build_wsdls_for api_version
|
21
22
|
unless api_version.match(/^\d\.\d{2}/)
|
22
23
|
raise ArgumentError, "Non-standard api version"
|
data/lib/yieldmanager/client.rb
CHANGED
@@ -0,0 +1,50 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), *%w[spec_helper])
|
2
|
+
|
3
|
+
describe PatchDetector do
|
4
|
+
describe "needs_patching?" do
|
5
|
+
before do
|
6
|
+
class Object
|
7
|
+
include PatchDetector
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "when invalid arguments are passed" do
|
12
|
+
it "should raise an ArgumentError" do
|
13
|
+
ruby_version, minimum_ruby_version_for_patch = "", ""
|
14
|
+
|
15
|
+
lambda {needs_patching?(:ruby_version => ruby_version, :minimum_ruby_version_for_patch => minimum_ruby_version_for_patch)}.should raise_error
|
16
|
+
lambda {needs_patching?()}.should raise_error
|
17
|
+
lambda {needs_patching?(:fasdfasdfa => "asdfasdfda", :foo => "bar")}.should raise_error
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "when the current ruby version is equal to the minimum ruby version require for patch" do
|
22
|
+
it "should be true" do
|
23
|
+
ruby_version, minimum_ruby_version_for_patch = "1.8.7", "1.8.7"
|
24
|
+
needs_patching?(:ruby_version => ruby_version, :minimum_ruby_version_for_patch => minimum_ruby_version_for_patch).should == true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "when the current ruby version is greater than the minimum_ruby_version_for_patch" do
|
29
|
+
it "should return true" do
|
30
|
+
minimum_ruby_version_for_patch = "1.8.7"
|
31
|
+
|
32
|
+
ruby_version_array = %w(1.8.8 1.8.9 1.8.10)
|
33
|
+
ruby_version_array.each do |rv|
|
34
|
+
needs_patching?(:ruby_version => rv, :minimum_ruby_version_for_patch => minimum_ruby_version_for_patch).should == true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "when the current ruby version is smaller than the minimum_ruby_version_for_patch" do
|
40
|
+
it "should return true" do
|
41
|
+
minimum_ruby_version_for_patch = "1.8.7"
|
42
|
+
|
43
|
+
ruby_version_array = %w(1.8.2 1.7.7 0.8.10)
|
44
|
+
ruby_version_array.each do |rv|
|
45
|
+
needs_patching?(:ruby_version => rv, :minimum_ruby_version_for_patch => minimum_ruby_version_for_patch).should == false
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
2
|
|
3
|
-
|
3
|
+
CLIENT_NEED_ENV_ARGS_MSG = <<EOM
|
4
4
|
Please set these environment variables to match your Yieldmanager account:
|
5
5
|
* YIELDMANAGER_USER
|
6
6
|
* YIELDMANAGER_PASS
|
@@ -114,7 +114,7 @@ describe "A new Yieldmanager client" do
|
|
114
114
|
unless ENV["YIELDMANAGER_USER"] &&
|
115
115
|
ENV["YIELDMANAGER_PASS"] &&
|
116
116
|
ENV["YIELDMANAGER_API_VERSION"]
|
117
|
-
raise(ArgumentError,
|
117
|
+
raise(ArgumentError, CLIENT_NEED_ENV_ARGS_MSG)
|
118
118
|
end
|
119
119
|
@login_args ||= {
|
120
120
|
:user => ENV["YIELDMANAGER_USER"],
|
@@ -1,11 +1,11 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
2
|
|
3
|
-
|
3
|
+
REPORT_NEED_ENV_ARGS_MSG = <<EOM
|
4
4
|
Please set these environment variables to match your Yieldmanager account:
|
5
5
|
* YIELDMANAGER_USER
|
6
6
|
* YIELDMANAGER_PASS
|
7
7
|
* YIELDMANAGER_API_VERSION
|
8
|
-
* YIELDMANAGER_CONTACT_ID
|
8
|
+
* YIELDMANAGER_CONTACT_ID (get this from the contact_id attribute in any UI-created reportware report)
|
9
9
|
* YIELDMANAGER_IP_ADDRESS (your external IP address)
|
10
10
|
EOM
|
11
11
|
|
@@ -77,14 +77,15 @@ describe "A Yieldmanager report request" do
|
|
77
77
|
@login_args ||= {
|
78
78
|
:user => ENV["YIELDMANAGER_USER"],
|
79
79
|
:pass => ENV["YIELDMANAGER_PASS"],
|
80
|
-
:api_version => ENV["YIELDMANAGER_API_VERSION"]
|
80
|
+
:api_version => ENV["YIELDMANAGER_API_VERSION"],
|
81
|
+
:env => "test"
|
81
82
|
}
|
82
83
|
end
|
83
84
|
|
84
85
|
def request_xml
|
85
86
|
unless ENV["YIELDMANAGER_CONTACT_ID"] &&
|
86
87
|
ENV["YIELDMANAGER_IP_ADDRESS"]
|
87
|
-
raise(ArgumentError,
|
88
|
+
raise(ArgumentError, REPORT_NEED_ENV_ARGS_MSG)
|
88
89
|
end
|
89
90
|
<<EOR
|
90
91
|
<?xml version="1.0"?>
|
data/yieldmanager.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{yieldmanager}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Bill Gathen"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2010-01-05}
|
13
13
|
s.description = %q{This gem offers full access to YieldManager's API tools (read/write) as well as ad-hoc reporting through the Reportware tool}
|
14
14
|
s.email = %q{bill@billgathen.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -25,10 +25,13 @@ Gem::Specification.new do |s|
|
|
25
25
|
"Rakefile",
|
26
26
|
"TODO",
|
27
27
|
"VERSION",
|
28
|
+
"lib/patch_detector.rb",
|
29
|
+
"lib/wsdl/patch.rb",
|
28
30
|
"lib/yieldmanager.rb",
|
29
31
|
"lib/yieldmanager/builder.rb",
|
30
32
|
"lib/yieldmanager/client.rb",
|
31
33
|
"lib/yieldmanager/report.rb",
|
34
|
+
"spec/patch_detector_spec.rb",
|
32
35
|
"spec/reports/sample_report.xml",
|
33
36
|
"spec/spec.opts",
|
34
37
|
"spec/spec_helper.rb",
|
@@ -81,7 +84,8 @@ Gem::Specification.new do |s|
|
|
81
84
|
s.rubygems_version = %q{1.3.5}
|
82
85
|
s.summary = %q{Interact with RightMedia's YieldManager API and Reportware products}
|
83
86
|
s.test_files = [
|
84
|
-
"spec/
|
87
|
+
"spec/patch_detector_spec.rb",
|
88
|
+
"spec/spec_helper.rb",
|
85
89
|
"spec/yieldmanager/builder_spec.rb",
|
86
90
|
"spec/yieldmanager/client_spec.rb",
|
87
91
|
"spec/yieldmanager/report_spec.rb"
|
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.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bill Gathen
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-05 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -50,10 +50,13 @@ files:
|
|
50
50
|
- Rakefile
|
51
51
|
- TODO
|
52
52
|
- VERSION
|
53
|
+
- lib/patch_detector.rb
|
54
|
+
- lib/wsdl/patch.rb
|
53
55
|
- lib/yieldmanager.rb
|
54
56
|
- lib/yieldmanager/builder.rb
|
55
57
|
- lib/yieldmanager/client.rb
|
56
58
|
- lib/yieldmanager/report.rb
|
59
|
+
- spec/patch_detector_spec.rb
|
57
60
|
- spec/reports/sample_report.xml
|
58
61
|
- spec/spec.opts
|
59
62
|
- spec/spec_helper.rb
|
@@ -128,6 +131,7 @@ signing_key:
|
|
128
131
|
specification_version: 3
|
129
132
|
summary: Interact with RightMedia's YieldManager API and Reportware products
|
130
133
|
test_files:
|
134
|
+
- spec/patch_detector_spec.rb
|
131
135
|
- spec/spec_helper.rb
|
132
136
|
- spec/yieldmanager/builder_spec.rb
|
133
137
|
- spec/yieldmanager/client_spec.rb
|