ip21 1.0.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/ip21.gemspec +4 -3
  3. data/lib/ip21.rb +28 -16
  4. metadata +20 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f638df374799c3d306c2dc305384e7c796b64a31c75e5a9e8320e73eb27db0d7
4
- data.tar.gz: 2c73764f135c65782921cee24dcf03cd5a778431b0c8313e7bcfa264376006eb
3
+ metadata.gz: f13b47dc34afa9911dcce75e646e47a44a3e71a79c84277125c81f5e5baffa90
4
+ data.tar.gz: 84d5b491d39178b042563c06b3130f7020744a8b96bf1fb2aeb22e41fbe9e575
5
5
  SHA512:
6
- metadata.gz: 6c845f6d07f705b6dfa5e6dad7ab86cfcb6aedfe903af71a7e07b55b05c81b7b5bd7adf14b42827b26dd967267b53f9d1b6a3501390842d6e33f82a0e486df69
7
- data.tar.gz: 83ea282fef5124401e7b2ab4eccfd8d052de345e559ff2b5012e9fd06e5638a673c8d928b2d4b16fac8bd23f5b771de4924fe55ed570a6a8b1bba2202871ac3c
6
+ metadata.gz: bae814543504c17f3f8c3f43c6cff6d9029a989e2258a91cb1d99feef2af69e91462c81cf23943a50fe4da31d51d0d8907ac2fe9b8859cabf31c7c1b0effe942
7
+ data.tar.gz: 2ee1aed4ed3327df97d9f40cbe3bb04c382c8e4606d3edb0fd541239facd9d8a7a468860611427e63ba82d5b1b536310c763f20dcc39d24405196eaec21b6ae4
data/ip21.gemspec CHANGED
@@ -5,15 +5,16 @@ Gem::Specification.new do |s|
5
5
  s.summary = 'Aspentech IP21 Adapter for Ruby'
6
6
  s.description = 'Aspentech IP21 Adapter for executing queries using SQLPlus' \
7
7
  ' REST API'
8
- s.version = '1.0.1'
8
+ s.version = '1.3.0'
9
9
  s.date = Time.now.strftime('%Y-%m-%d')
10
10
  s.author = 'Rhuan Barreto'
11
11
  s.email = 'rhuan@rhuan.com.br'
12
12
  s.homepage = 'http://rubygems.org/gems/ip21'
13
13
  s.platform = Gem::Platform::RUBY
14
14
  s.license = 'MIT'
15
- s.add_dependency 'activesupport', '~>6.0.1'
16
- s.add_dependency 'rubyntlm', '~>0.6'
15
+ s.add_dependency 'activesupport', '~> 6.1.0'
16
+ s.add_dependency 'rubyntlm', '~>0.6.3'
17
+ s.add_dependency 'httpi', '~>2.4'
17
18
  s.files = Dir.glob('{docs,bin,lib,spec,templates,benchmarks}/**/*') +
18
19
  ['LICENSE', 'README.md', '.yardopts', __FILE__]
19
20
  s.require_path = 'lib'
data/lib/ip21.rb CHANGED
@@ -118,15 +118,13 @@ class IP21
118
118
  # @param [String] type The request type to be passed to rest_address function
119
119
  # @param [String] body The request body
120
120
  def rest_request(type, body)
121
- require 'net/http'
122
- require 'ntlm/http'
123
- uri = URI(rest_address(type))
124
- http = Net::HTTP.new(uri.host)
125
- request = Net::HTTP::Post.new(uri)
121
+ require 'httpi'
122
+ HTTPI.log = @debug
123
+ request = HTTPI::Request.new(rest_address(type))
126
124
  request.body = body
127
- request.ntlm_auth(@account, @domain, @password)
128
- response = http.request(request)
129
- debug_info(uri, request.body, response) if @debug
125
+ request.auth.ntlm(@account, @password, @domain)
126
+ response = HTTPI.post(request)
127
+ debug_info(request.url, request.body, response) if @debug
130
128
  response
131
129
  end
132
130
 
@@ -147,13 +145,13 @@ class IP21
147
145
  #
148
146
  # @return [Hash] Response or error from the API
149
147
  def parse_rest(response)
150
- if response.code == '200'
148
+ if response.code == 200
151
149
  require 'json'
152
150
  JSON.parse(response.body)
153
151
  else
154
152
  {
155
153
  status: response.code,
156
- message: "Error on IP21: #{response.message}"
154
+ message: "Error on IP21: #{response.body}"
157
155
  }
158
156
  end
159
157
  end
@@ -183,16 +181,30 @@ class IP21
183
181
  }.to_query
184
182
  end
185
183
 
186
- def history_query_body(tag, start_time, end_time, opts)
184
+ def history_query_body(tags, start_time, end_time, opts)
187
185
  opts[:limit] ||= 1000
188
186
  opts[:outsiders] ||= 0
189
187
  opts[:history_format] ||= 0
190
188
  opts[:retrieval_type] ||= 0
191
- '<Q appId="20" f="D" allQuotes="1"><Tag>' + "<N><![CDATA[#{tag}]]></N>" \
192
- "<D><![CDATA[#{@ip21_address}]]></D>" + "<HF>#{opts[:history_format]}</HF>" \
193
- "<St>#{start_time}</St>" + "<Et>#{end_time}</Et>" \
194
- "<RT>#{opts[:retrieval_type]}</RT>" + "<X>#{opts[:limit]}</X>" \
195
- "<O>#{opts[:outsiders]}</O>" + '</Tag></Q>'
189
+ body = if tags.is_a?(String)
190
+ tag_request(tags, start_time, end_time, opts)
191
+ else
192
+ tags.map { |tag| tag_request(tag, start_time, end_time, opts) }.join
193
+ end
194
+ '<Q appId="20" f="D" allQuotes="1">' + body + '</Q>'
195
+ end
196
+
197
+ def tag_request(tag, start_time, end_time, opts)
198
+ '<Tag>' \
199
+ "<N><![CDATA[#{tag}]]></N>" \
200
+ "<D><![CDATA[#{@ip21_address}]]></D>" \
201
+ "<HF>#{opts[:history_format]}</HF>" \
202
+ "<St>#{start_time}</St>" \
203
+ "<Et>#{end_time}</Et>" \
204
+ "<RT>#{opts[:retrieval_type]}</RT>" \
205
+ "<X>#{opts[:limit]}</X>" \
206
+ "<O>#{opts[:outsiders]}</O>" \
207
+ '</Tag>'
196
208
  end
197
209
 
198
210
  def select?(query)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ip21
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rhuan Barreto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-11 00:00:00.000000000 Z
11
+ date: 2021-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,28 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 6.0.1
19
+ version: 6.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 6.0.1
26
+ version: 6.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubyntlm
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.6'
33
+ version: 0.6.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.6'
40
+ version: 0.6.3
41
+ - !ruby/object:Gem::Dependency
42
+ name: httpi
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.4'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.4'
41
55
  description: Aspentech IP21 Adapter for executing queries using SQLPlus REST API
42
56
  email: rhuan@rhuan.com.br
43
57
  executables: []