taql 0.2.1 → 0.2.3
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/taql/table.rb +44 -54
- data/lib/taql/version.rb +1 -1
- data/lib/taql.rb +3 -1
- data/taql.gemspec +2 -2
- metadata +5 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 106f6fd29eb626394dfcae398aaf2b79696574c3828b313ca528c60686fb7891
|
4
|
+
data.tar.gz: b578ac768cd8c7c8aa1e588619868d96c77eab2a67387fb254947b076243bd34
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13b105a6407b067a0de7200f5fe2f650a877c6a98ef413962c5278fa84154867aec5960e14a56ab90d5c8a3cd4ca9448202a77eb9568282efca1a7192519acd8
|
7
|
+
data.tar.gz: 95a82e535d052293134f90d4b1827da6d1eb88bf999aae439b64bfcab40c08e7db5f9959792c02e8862a9bbf60eda8886f2ce0e3fc240f4a72d90da928dbb76a
|
data/CHANGELOG.md
CHANGED
data/lib/taql/table.rb
CHANGED
@@ -1,82 +1,72 @@
|
|
1
1
|
module Taql
|
2
2
|
class Table
|
3
|
-
|
3
|
+
DASH = "-".freeze
|
4
|
+
PLUS = "+".freeze
|
5
|
+
SPACE = " ".freeze
|
6
|
+
VERTICAL_BAR = "|".freeze
|
4
7
|
|
5
8
|
def initialize(entries)
|
6
|
-
@entries = entries
|
7
|
-
end
|
8
|
-
|
9
|
-
def print
|
10
|
-
<<~OUTPUT
|
11
|
-
#{separator}
|
12
|
-
#{formatted_headers}
|
13
|
-
#{separator}
|
14
|
-
#{formatted_entries.join("\n")}
|
15
|
-
#{separator}
|
16
|
-
OUTPUT
|
9
|
+
@entries = entries.map { it.transform_values(&:to_s) }
|
17
10
|
end
|
18
11
|
|
19
|
-
def
|
20
|
-
|
12
|
+
def body
|
13
|
+
entries.map(&:values)
|
21
14
|
end
|
22
15
|
|
23
|
-
def
|
24
|
-
|
25
|
-
|
26
|
-
.map { |key, value| value.to_s.ljust(rows_max_length[key]) }
|
27
|
-
.join(" | ")
|
28
|
-
|
29
|
-
result << "| #{individual_entry} |"
|
16
|
+
def columns
|
17
|
+
headers.map do |header|
|
18
|
+
[header, *entries.map { |entry| entry[header] }]
|
30
19
|
end
|
31
20
|
end
|
32
21
|
|
33
|
-
def
|
34
|
-
|
35
|
-
header.upcase.ljust(rows_max_length[header])
|
36
|
-
end.join(" | ")
|
37
|
-
|
38
|
-
"| #{output} |"
|
22
|
+
def headers
|
23
|
+
entries.map(&:keys).uniq.flatten
|
39
24
|
end
|
40
25
|
|
41
|
-
def
|
42
|
-
|
26
|
+
def print
|
27
|
+
output if entries.any?
|
43
28
|
end
|
44
29
|
|
45
30
|
def rows
|
46
|
-
|
47
|
-
Hash.new { |hash, key| hash[key] = [] }
|
48
|
-
) do |entry, result|
|
49
|
-
entry.each do |header, value|
|
50
|
-
result[header] << value
|
51
|
-
end
|
52
|
-
end
|
31
|
+
[headers, *body]
|
53
32
|
end
|
54
33
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
34
|
+
private
|
35
|
+
|
36
|
+
attr_reader :entries
|
37
|
+
|
38
|
+
def column_widths
|
39
|
+
columns.map { it.map(&:length).max }
|
59
40
|
end
|
60
41
|
|
61
|
-
def
|
62
|
-
|
63
|
-
|
42
|
+
def formatted(segments)
|
43
|
+
segments.map do |segment|
|
44
|
+
cell_index = segments.index(segment)
|
45
|
+
max_length = column_widths[cell_index]
|
46
|
+
[SPACE, segment.ljust(max_length), SPACE].join
|
47
|
+
end.then do |segments|
|
48
|
+
[VERTICAL_BAR, segments.join(VERTICAL_BAR), VERTICAL_BAR].join
|
64
49
|
end
|
65
50
|
end
|
66
51
|
|
67
|
-
def
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
52
|
+
def output
|
53
|
+
<<~OUTPUT
|
54
|
+
#{separator}
|
55
|
+
#{formatted(headers.map(&:upcase))}
|
56
|
+
#{separator}
|
57
|
+
#{body.map(&method(:formatted)).join("\n")}
|
58
|
+
#{separator}
|
59
|
+
OUTPUT
|
74
60
|
end
|
75
61
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
62
|
+
def separator
|
63
|
+
columns.map do |column|
|
64
|
+
column_index = columns.index(column)
|
65
|
+
max_length = column_widths[column_index]
|
66
|
+
Array.new(max_length + 2, DASH).join
|
67
|
+
end.then do |columns|
|
68
|
+
[PLUS, columns.join(PLUS), PLUS].join
|
69
|
+
end
|
80
70
|
end
|
81
71
|
end
|
82
72
|
end
|
data/lib/taql/version.rb
CHANGED
data/lib/taql.rb
CHANGED
data/taql.gemspec
CHANGED
@@ -10,11 +10,11 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.description = "Taql allows you to pretty print SQL table queries in Rails."
|
11
11
|
spec.homepage = "https://github.com/arzezak/taql"
|
12
12
|
spec.license = "MIT"
|
13
|
-
spec.required_ruby_version = ">= 3.
|
13
|
+
spec.required_ruby_version = ">= 3.4"
|
14
14
|
|
15
15
|
spec.metadata["homepage_uri"] = spec.homepage
|
16
16
|
spec.metadata["source_code_uri"] = spec.homepage
|
17
|
-
spec.metadata["changelog_uri"] = "#{spec.homepage}/CHANGELOG.md"
|
17
|
+
spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/main/CHANGELOG.md"
|
18
18
|
|
19
19
|
spec.files = Dir["*.gemspec", "*.{md,txt}", "Rakefile", "{bin,exe,lib}/**/*"]
|
20
20
|
spec.bindir = "exe"
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ariel Rzezak
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-04-17 00:00:00.000000000 Z
|
12
11
|
dependencies: []
|
13
12
|
description: Taql allows you to pretty print SQL table queries in Rails.
|
14
13
|
email:
|
@@ -37,8 +36,7 @@ licenses:
|
|
37
36
|
metadata:
|
38
37
|
homepage_uri: https://github.com/arzezak/taql
|
39
38
|
source_code_uri: https://github.com/arzezak/taql
|
40
|
-
changelog_uri: https://github.com/arzezak/taql/CHANGELOG.md
|
41
|
-
post_install_message:
|
39
|
+
changelog_uri: https://github.com/arzezak/taql/blob/main/CHANGELOG.md
|
42
40
|
rdoc_options: []
|
43
41
|
require_paths:
|
44
42
|
- lib
|
@@ -46,15 +44,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
46
44
|
requirements:
|
47
45
|
- - ">="
|
48
46
|
- !ruby/object:Gem::Version
|
49
|
-
version: 3.
|
47
|
+
version: '3.4'
|
50
48
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
51
49
|
requirements:
|
52
50
|
- - ">="
|
53
51
|
- !ruby/object:Gem::Version
|
54
52
|
version: '0'
|
55
53
|
requirements: []
|
56
|
-
rubygems_version: 3.5
|
57
|
-
signing_key:
|
54
|
+
rubygems_version: 3.6.5
|
58
55
|
specification_version: 4
|
59
56
|
summary: Tableize Rails SQL queries
|
60
57
|
test_files: []
|