Class: Qravan::Rest
- Inherits:
-
Object
- Object
- Qravan::Rest
- Defined in:
- lib/qravan/source/rest.rb
Overview
Database class
Instance Attribute Summary collapse
-
#connection ⇒ Object
Returns the value of attribute connection.
-
#result ⇒ Object
Returns the value of attribute result.
Instance Method Summary collapse
- #extract(sql = "select * from smevql1.driverlicenseql3;") ⇒ Object
-
#initialize(source) ⇒ Rest
constructor
A new instance of Rest.
Constructor Details
#initialize(source) ⇒ Rest
Returns a new instance of Rest.
11 12 13 |
# File 'lib/qravan/source/rest.rb', line 11 def initialize(source) @connection = source end |
Instance Attribute Details
#connection ⇒ Object
Returns the value of attribute connection.
9 10 11 |
# File 'lib/qravan/source/rest.rb', line 9 def connection @connection end |
#result ⇒ Object
Returns the value of attribute result.
9 10 11 |
# File 'lib/qravan/source/rest.rb', line 9 def result @result end |
Instance Method Details
#extract(sql = "select * from smevql1.driverlicenseql3;") ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/qravan/source/rest.rb', line 15 def extract(sql = "select * from smevql1.driverlicenseql3;") Console.logger.info "REST EXTRACT: #{sql}" internet = Async::HTTP::Internet.new = Async::Barrier.new time = Time.now @result = [] url = "#{@connection["protocol"]}://#{@connection["host"]}:#{@connection["port"]}/#{@connection["path"]}" headers = [%w[accept application/json], %w[content-type application/json]] body = [@connection["template"] % { request: sql }] .async do response = internet.post(url, headers, body) response_body = JSON.parse(response.read) @result << response_body[@connection["payload-path"]] ensure response.finish end .wait @result << { time: "REST Duration: #{Time.now - time}s " } @result end |