boomi-ruby 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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