boomi-ruby 0.2.0 → 0.3.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/Gemfile +2 -2
- data/Gemfile.lock +3 -5
- data/VERSION +1 -1
- data/boomi-ruby.gemspec +8 -8
- data/lib/boomi/boomi.rb +16 -12
- data/lib/boomi-ruby.rb +1 -1
- data/spec/boomi/boomi_spec.rb +1 -1
- metadata +64 -64
data/Gemfile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
# Add dependencies required to use your gem here.
|
3
3
|
# Example:
|
4
|
-
gem "rest-client", "~> 1.
|
5
|
-
gem "xml-simple", "
|
4
|
+
gem "rest-client", "~> 1.0.0"
|
5
|
+
gem "xml-simple", "1.0.12", :require => 'xmlsimple'
|
6
6
|
|
7
7
|
# Add dependencies to develop your gem here.
|
8
8
|
# Include everything needed to run rake, tests, features, etc.
|
data/Gemfile.lock
CHANGED
@@ -26,7 +26,6 @@ GEM
|
|
26
26
|
rake
|
27
27
|
rdoc
|
28
28
|
json (1.8.0)
|
29
|
-
mime-types (1.23)
|
30
29
|
minitest (4.7.5)
|
31
30
|
multi_json (1.7.7)
|
32
31
|
rack (1.5.2)
|
@@ -41,8 +40,7 @@ GEM
|
|
41
40
|
rcov (0.9.11)
|
42
41
|
rdoc (3.12.2)
|
43
42
|
json (~> 1.4)
|
44
|
-
rest-client (1.
|
45
|
-
mime-types (>= 1.16)
|
43
|
+
rest-client (1.0.3)
|
46
44
|
rspec-core (2.14.5)
|
47
45
|
rspec-expectations (2.14.3)
|
48
46
|
diff-lcs (>= 1.1.3, < 2.0)
|
@@ -75,7 +73,7 @@ DEPENDENCIES
|
|
75
73
|
jeweler (~> 1.8.4)
|
76
74
|
rcov (= 0.9.11)
|
77
75
|
rdoc (~> 3.12)
|
78
|
-
rest-client (~> 1.
|
76
|
+
rest-client (~> 1.0.0)
|
79
77
|
rspec-rails
|
80
78
|
shoulda
|
81
|
-
xml-simple (
|
79
|
+
xml-simple (= 1.0.12)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/boomi-ruby.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "boomi-ruby"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Charles Cooke"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-10-02"
|
13
13
|
s.description = "Supports the Boomi REST Webservice"
|
14
14
|
s.email = "charles@coupa.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -44,8 +44,8 @@ Gem::Specification.new do |s|
|
|
44
44
|
s.specification_version = 3
|
45
45
|
|
46
46
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
47
|
-
s.add_runtime_dependency(%q<rest-client>, ["~> 1.
|
48
|
-
s.add_runtime_dependency(%q<xml-simple>, ["
|
47
|
+
s.add_runtime_dependency(%q<rest-client>, ["~> 1.0.0"])
|
48
|
+
s.add_runtime_dependency(%q<xml-simple>, ["= 1.0.12"])
|
49
49
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
50
50
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
51
51
|
s.add_development_dependency(%q<bundler>, [">= 0"])
|
@@ -54,8 +54,8 @@ Gem::Specification.new do |s|
|
|
54
54
|
s.add_development_dependency(%q<rspec-rails>, [">= 0"])
|
55
55
|
s.add_development_dependency(%q<fakeweb>, [">= 0"])
|
56
56
|
else
|
57
|
-
s.add_dependency(%q<rest-client>, ["~> 1.
|
58
|
-
s.add_dependency(%q<xml-simple>, ["
|
57
|
+
s.add_dependency(%q<rest-client>, ["~> 1.0.0"])
|
58
|
+
s.add_dependency(%q<xml-simple>, ["= 1.0.12"])
|
59
59
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
60
60
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
61
61
|
s.add_dependency(%q<bundler>, [">= 0"])
|
@@ -65,8 +65,8 @@ Gem::Specification.new do |s|
|
|
65
65
|
s.add_dependency(%q<fakeweb>, [">= 0"])
|
66
66
|
end
|
67
67
|
else
|
68
|
-
s.add_dependency(%q<rest-client>, ["~> 1.
|
69
|
-
s.add_dependency(%q<xml-simple>, ["
|
68
|
+
s.add_dependency(%q<rest-client>, ["~> 1.0.0"])
|
69
|
+
s.add_dependency(%q<xml-simple>, ["= 1.0.12"])
|
70
70
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
71
71
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
72
72
|
s.add_dependency(%q<bundler>, [">= 0"])
|
data/lib/boomi/boomi.rb
CHANGED
@@ -3,7 +3,8 @@ class Boomi
|
|
3
3
|
BASE_PARTNER_URI = "https://platform.boomi.com/partner/api/rest/v1"
|
4
4
|
|
5
5
|
def initialize(opts)
|
6
|
-
|
6
|
+
opts = symbolize_keys(opts)
|
7
|
+
@resource = RestClient::Resource.new(opts[:override_account] ? BASE_PARTNER_URI : BASE_URI, :user => opts[:user], :password => opts[:pass], :timeout => opts[:timeout] || 60)
|
7
8
|
@override_account = opts[:override_account]
|
8
9
|
@account = opts[:account]
|
9
10
|
end
|
@@ -40,7 +41,6 @@ EOS
|
|
40
41
|
post("#{@account}/Event/query"+(@override_account ? "?overrideAccount=#{@override_account}" : ""), make_query(opts))
|
41
42
|
end
|
42
43
|
|
43
|
-
|
44
44
|
def get_execution_records(opts)
|
45
45
|
post("#{@account}/ExecutionRecord/query"+(@override_account ? "?overrideAccount=#{@override_account}" : ""), make_query(opts))
|
46
46
|
end
|
@@ -62,6 +62,11 @@ EOS
|
|
62
62
|
end
|
63
63
|
|
64
64
|
private
|
65
|
+
|
66
|
+
def symbolize_keys(hash)
|
67
|
+
Hash[hash.map{ |k, v| [k.to_sym, v] }]
|
68
|
+
end
|
69
|
+
|
65
70
|
def make_query(opts)
|
66
71
|
query = <<-EXPR
|
67
72
|
<QueryConfig xmlns="http://api.platform.boomi.com/">
|
@@ -88,7 +93,7 @@ EXPR
|
|
88
93
|
|
89
94
|
def get(url)
|
90
95
|
contents = @resource[url].get
|
91
|
-
|
96
|
+
parse(contents)
|
92
97
|
end
|
93
98
|
|
94
99
|
def post(url,content)
|
@@ -111,18 +116,17 @@ EXPR
|
|
111
116
|
end
|
112
117
|
query_token = xml_doc['queryToken']
|
113
118
|
end
|
114
|
-
|
115
|
-
puts e.http_body
|
116
|
-
error = true
|
117
|
-
rescue RestClient::InternalServerError => e
|
118
|
-
puts "Received error from server, stopped processing but dealing with any results that exist: #{e}"
|
119
|
-
error = true
|
120
|
-
end while query_token.present? && !error && attempts < 50
|
119
|
+
end while query_token && !error && attempts < 50
|
121
120
|
results
|
122
121
|
end
|
123
122
|
|
124
123
|
def parse(content)
|
125
|
-
return if content.empty?
|
126
|
-
|
124
|
+
return if content.to_s.empty?
|
125
|
+
xml_simple.xml_in(content.to_s)
|
126
|
+
end
|
127
|
+
|
128
|
+
# For some reason XmlSimple breaks in some dependencies when use with the class method syntax
|
129
|
+
def xml_simple
|
130
|
+
@simple ||= XmlSimple.new('NoAttr' => true, 'ForceArray' => false)
|
127
131
|
end
|
128
132
|
end
|
data/lib/boomi-ruby.rb
CHANGED
data/spec/boomi/boomi_spec.rb
CHANGED
@@ -32,7 +32,7 @@ describe Boomi do
|
|
32
32
|
|
33
33
|
it 'should be able to retrieve events for execution record' do
|
34
34
|
FakeWeb.register_uri(:post, %r(https://.*@platform.boomi.com/api/rest/v1/.*/ExecutionRecord/.*), :body => File.join(XML_PATH, "getExecutionRecord-3results.xml"))
|
35
|
-
|
35
|
+
FakeWeb.register_uri(:post, %r(https://.*@platform.boomi.com/api/rest/v1/.*/Event/.*), :body => File.join(XML_PATH, "getEvent-1result.xml"))
|
36
36
|
records = @boomi.get_execution_records("executionTime[GREATER_THAN_OR_EQUAL]" => Time.now-15*60)
|
37
37
|
records.size.should == 3
|
38
38
|
events = @boomi.get_events("executionId[EQUALS]" => records[0]['executionId'], "eventDate[GREATER_THAN_OR_EQUAL]" => records[0]['executionTime'])
|
metadata
CHANGED
@@ -1,160 +1,160 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boomi-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Charles Cooke
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-10-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
version_requirements: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ~>
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 1.6.0
|
20
|
-
none: false
|
21
15
|
name: rest-client
|
22
|
-
prerelease: false
|
23
|
-
type: :runtime
|
24
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
25
18
|
requirements:
|
26
19
|
- - ~>
|
27
20
|
- !ruby/object:Gem::Version
|
28
|
-
version: 1.
|
29
|
-
|
30
|
-
|
21
|
+
version: 1.0.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
31
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
32
26
|
requirements:
|
33
27
|
- - ~>
|
34
28
|
- !ruby/object:Gem::Version
|
35
29
|
version: 1.0.0
|
36
|
-
|
30
|
+
- !ruby/object:Gem::Dependency
|
37
31
|
name: xml-simple
|
38
|
-
prerelease: false
|
39
|
-
type: :runtime
|
40
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
41
34
|
requirements:
|
42
|
-
- -
|
35
|
+
- - '='
|
43
36
|
- !ruby/object:Gem::Version
|
44
|
-
version: 1.0.
|
37
|
+
version: 1.0.12
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
41
|
none: false
|
42
|
+
requirements:
|
43
|
+
- - '='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.0.12
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
|
47
|
+
name: shoulda
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
48
50
|
requirements:
|
49
51
|
- - ! '>='
|
50
52
|
- !ruby/object:Gem::Version
|
51
53
|
version: '0'
|
52
|
-
none: false
|
53
|
-
name: shoulda
|
54
|
-
prerelease: false
|
55
54
|
type: :development
|
56
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
57
58
|
requirements:
|
58
59
|
- - ! '>='
|
59
60
|
- !ruby/object:Gem::Version
|
60
61
|
version: '0'
|
61
|
-
none: false
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
|
63
|
+
name: rdoc
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
64
66
|
requirements:
|
65
67
|
- - ~>
|
66
68
|
- !ruby/object:Gem::Version
|
67
69
|
version: '3.12'
|
68
|
-
none: false
|
69
|
-
name: rdoc
|
70
|
-
prerelease: false
|
71
70
|
type: :development
|
72
|
-
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
73
74
|
requirements:
|
74
75
|
- - ~>
|
75
76
|
- !ruby/object:Gem::Version
|
76
77
|
version: '3.12'
|
77
|
-
none: false
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
|
79
|
+
name: bundler
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
80
82
|
requirements:
|
81
83
|
- - ! '>='
|
82
84
|
- !ruby/object:Gem::Version
|
83
85
|
version: '0'
|
84
|
-
none: false
|
85
|
-
name: bundler
|
86
|
-
prerelease: false
|
87
86
|
type: :development
|
88
|
-
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
89
90
|
requirements:
|
90
91
|
- - ! '>='
|
91
92
|
- !ruby/object:Gem::Version
|
92
93
|
version: '0'
|
93
|
-
none: false
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
-
|
95
|
+
name: jeweler
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
96
98
|
requirements:
|
97
99
|
- - ~>
|
98
100
|
- !ruby/object:Gem::Version
|
99
101
|
version: 1.8.4
|
100
|
-
none: false
|
101
|
-
name: jeweler
|
102
|
-
prerelease: false
|
103
102
|
type: :development
|
104
|
-
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
105
106
|
requirements:
|
106
107
|
- - ~>
|
107
108
|
- !ruby/object:Gem::Version
|
108
109
|
version: 1.8.4
|
109
|
-
none: false
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
|
-
|
111
|
+
name: rcov
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
112
114
|
requirements:
|
113
115
|
- - '='
|
114
116
|
- !ruby/object:Gem::Version
|
115
117
|
version: 0.9.11
|
116
|
-
none: false
|
117
|
-
name: rcov
|
118
|
-
prerelease: false
|
119
118
|
type: :development
|
120
|
-
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
121
122
|
requirements:
|
122
123
|
- - '='
|
123
124
|
- !ruby/object:Gem::Version
|
124
125
|
version: 0.9.11
|
125
|
-
none: false
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
-
|
127
|
+
name: rspec-rails
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
128
130
|
requirements:
|
129
131
|
- - ! '>='
|
130
132
|
- !ruby/object:Gem::Version
|
131
133
|
version: '0'
|
132
|
-
none: false
|
133
|
-
name: rspec-rails
|
134
|
-
prerelease: false
|
135
134
|
type: :development
|
136
|
-
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
137
138
|
requirements:
|
138
139
|
- - ! '>='
|
139
140
|
- !ruby/object:Gem::Version
|
140
141
|
version: '0'
|
141
|
-
none: false
|
142
142
|
- !ruby/object:Gem::Dependency
|
143
|
-
|
143
|
+
name: fakeweb
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
144
146
|
requirements:
|
145
147
|
- - ! '>='
|
146
148
|
- !ruby/object:Gem::Version
|
147
149
|
version: '0'
|
148
|
-
none: false
|
149
|
-
name: fakeweb
|
150
|
-
prerelease: false
|
151
150
|
type: :development
|
152
|
-
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
153
154
|
requirements:
|
154
155
|
- - ! '>='
|
155
156
|
- !ruby/object:Gem::Version
|
156
157
|
version: '0'
|
157
|
-
none: false
|
158
158
|
description: Supports the Boomi REST Webservice
|
159
159
|
email: charles@coupa.com
|
160
160
|
executables: []
|
@@ -187,20 +187,20 @@ rdoc_options: []
|
|
187
187
|
require_paths:
|
188
188
|
- lib
|
189
189
|
required_ruby_version: !ruby/object:Gem::Requirement
|
190
|
+
none: false
|
190
191
|
requirements:
|
191
192
|
- - ! '>='
|
192
193
|
- !ruby/object:Gem::Version
|
193
|
-
|
194
|
+
version: '0'
|
194
195
|
segments:
|
195
196
|
- 0
|
196
|
-
|
197
|
-
none: false
|
197
|
+
hash: -568298163
|
198
198
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
|
+
none: false
|
199
200
|
requirements:
|
200
201
|
- - ! '>='
|
201
202
|
- !ruby/object:Gem::Version
|
202
203
|
version: '0'
|
203
|
-
none: false
|
204
204
|
requirements: []
|
205
205
|
rubyforge_project:
|
206
206
|
rubygems_version: 1.8.25
|