ip21 1.0.1 → 1.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.
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: []