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 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.6.0"
5
- gem "xml-simple", "~> 1.0.0", :require => 'xmlsimple'
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.6.7)
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.6.0)
76
+ rest-client (~> 1.0.0)
79
77
  rspec-rails
80
78
  shoulda
81
- xml-simple (~> 1.0.0)
79
+ xml-simple (= 1.0.12)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.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.2.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-09-28"
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.6.0"])
48
- s.add_runtime_dependency(%q<xml-simple>, ["~> 1.0.0"])
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.6.0"])
58
- s.add_dependency(%q<xml-simple>, ["~> 1.0.0"])
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.6.0"])
69
- s.add_dependency(%q<xml-simple>, ["~> 1.0.0"])
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
- @resource = RestClient::Resource.new(opts[:override_account] ? BASE_PARTNER_URI : BASE_URI, :user => opts[:user], :password => opts[:pass])
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
- parsed = parse(contents)
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
- rescue RestClient::BadRequest => e
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
- XmlSimple.xml_in(content, { 'NoAttr' => true, 'ForceArray' => false})
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
@@ -1,4 +1,4 @@
1
- require 'rest-client'
1
+ require 'restclient'
2
2
  require 'xmlsimple'
3
3
 
4
4
  require File.join(File.dirname(__FILE__), 'boomi', 'boomi')
@@ -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
- # FakeWeb.register_uri(:post, %r(https://.*@platform.boomi.com/api/rest/v1/.*/Event/.*), :body => File.join(XML_PATH, "getEvent-1result.xml"))
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-09-28 00:00:00.000000000 Z
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.6.0
29
- none: false
30
- - !ruby/object:Gem::Dependency
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
- none: false
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.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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- hash: -72245453
194
+ version: '0'
194
195
  segments:
195
196
  - 0
196
- version: '0'
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