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'
33gemspec
44
55gem 'redis' , '~> 4'
6- gem 'terminal-table' , '~> 1' , '>= 1.8'
76gem 'rspec'
87gem 'codecov' , :require => false , :group => :test
98
Original file line number Diff line number Diff line change @@ -45,11 +45,11 @@ cmd = """MATCH ()-[:works]->(e:employer) RETURN e"""
4545response = r.query(cmd)
4646
4747response.print_resultset
48- + ----------------+
49- | e.name |
50- + ----------------+
51- | Dunder Mifflin |
52- + ----------------+
48+ --------------------------------
49+ | e |
50+ --------------------------------
51+ | [{"name"=>" Dunder Mifflin"}] |
52+ --------------------------------
5353
5454r.delete
5555 => "Graph removed, internal execution time: 0.416024 milliseconds"
Original file line number Diff line number Diff line change 11require 'redis'
2- require 'terminal-table'
32
43require_relative 'redisgraph/errors.rb'
54require_relative 'redisgraph/query_result.rb'
Original file line number Diff line number Diff line change @@ -39,10 +39,25 @@ def initialize(response, opts = {})
3939 def print_resultset
4040 return unless columns
4141
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 }
4445 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
4661 end
4762
4863 def parse_resultset ( response )
You can’t perform that action at this time.
0 commit comments