File tree Expand file tree Collapse file tree 4 files changed +23
-10
lines changed Expand file tree Collapse file tree 4 files changed +23
-10
lines changed Original file line number Diff line number Diff line change @@ -3,7 +3,6 @@ source 'https://rubygems.org'
3
3
gemspec
4
4
5
5
gem 'redis' , '~> 4'
6
- gem 'terminal-table' , '~> 1' , '>= 1.8'
7
6
gem 'rspec'
8
7
gem 'codecov' , :require => false , :group => :test
9
8
Original file line number Diff line number Diff line change @@ -45,11 +45,11 @@ cmd = """MATCH ()-[:works]->(e:employer) RETURN e"""
45
45
response = r.query(cmd)
46
46
47
47
response.print_resultset
48
- + ----------------+
49
- | e.name |
50
- + ----------------+
51
- | Dunder Mifflin |
52
- + ----------------+
48
+ --------------------------------
49
+ | e |
50
+ --------------------------------
51
+ | [{"name"=>" Dunder Mifflin"}] |
52
+ --------------------------------
53
53
54
54
r.delete
55
55
=> "Graph removed, internal execution time: 0.416024 milliseconds"
Original file line number Diff line number Diff line change 1
1
require 'redis'
2
- require 'terminal-table'
3
2
4
3
require_relative 'redisgraph/errors.rb'
5
4
require_relative 'redisgraph/query_result.rb'
Original file line number Diff line number Diff line change @@ -39,10 +39,25 @@ def initialize(response, opts = {})
39
39
def print_resultset
40
40
return unless columns
41
41
42
- pretty = Terminal ::Table . new headings : columns do |t |
43
- resultset . each { |record | t << record }
42
+ # Compute max length of each column
43
+ column_sizes = resultset . reduce ( [ ] ) do |lengths , row |
44
+ row . each_with_index . map { |iterand , index | [ lengths [ index ] || 0 , iterand . to_s . length ] . max }
44
45
end
45
- puts pretty
46
+
47
+ # Print column headers
48
+ puts head = '-' * ( column_sizes . inject ( &:+ ) + ( 3 * column_sizes . count ) + 1 )
49
+ row = columns . fill ( nil , columns . size ..( column_sizes . size - 1 ) )
50
+ row = row . each_with_index . map { |v , i | v = v . to_s + ' ' * ( column_sizes [ i ] - v . to_s . length ) }
51
+ puts '| ' + row . join ( ' | ' ) + ' |'
52
+ puts head
53
+
54
+ # Print result set rows
55
+ resultset . each do |row |
56
+ row = row . fill ( nil , row . size ..( column_sizes . size - 1 ) )
57
+ row = row . each_with_index . map { |v , i | v = v . to_s + ' ' * ( column_sizes [ i ] - v . to_s . length ) }
58
+ puts '| ' + row . join ( ' | ' ) + ' |'
59
+ end
60
+ puts head
46
61
end
47
62
48
63
def parse_resultset ( response )
You can’t perform that action at this time.
0 commit comments