arql 0.3.20 → 0.3.22
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/Gemfile.lock +6 -4
- data/arql.gemspec +2 -1
- data/lib/arql/definition.rb +16 -6
- data/lib/arql/ext/array.rb +17 -6
- data/lib/arql/ext/hash.rb +1 -1
- data/lib/arql/ext.rb +1 -0
- data/lib/arql/version.rb +1 -1
- metadata +18 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f4178a1d360f59152ce5fac37b745a98a77ac744090114b6c9d70e89ec4dfe57
|
|
4
|
+
data.tar.gz: 46520be1d1411eb164160d7e42d81012f5147272014556b6825e3cd122ed483c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 377195d8ebfe1a1a1c5c0eac7d31533171bb95452eee33c2a74048b6d620e565d9ac804d821f1a9201ad803448717e20f50ad7e079065273e866e155535bae99
|
|
7
|
+
data.tar.gz: 3c2a29b255032fc6efc7dc109a557e3e9dc2d8145854fa1d514d9b14551278424b95b81fd6f02d59cfff33a6fa66ae21e1d6cde1a7f408f9ba784189b13d7626
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
arql (0.3.
|
|
4
|
+
arql (0.3.22)
|
|
5
5
|
activerecord (>= 6.1.5, < 7.1.0)
|
|
6
6
|
activesupport (>= 6.1.5, < 7.1.0)
|
|
7
7
|
caxlsx (~> 3.3.0)
|
|
@@ -11,7 +11,7 @@ PATH
|
|
|
11
11
|
net-ssh-gateway (~> 2.0.0)
|
|
12
12
|
pry (~> 0.14.1)
|
|
13
13
|
pry-byebug (~> 3.10.1)
|
|
14
|
-
pry-doc (>= 1.
|
|
14
|
+
pry-doc (>= 1.4.0)
|
|
15
15
|
rainbow (~> 3.0.0)
|
|
16
16
|
ransack (>= 3.2.1)
|
|
17
17
|
roo (~> 2.9.0)
|
|
@@ -42,6 +42,7 @@ GEM
|
|
|
42
42
|
composite_primary_keys (14.0.4)
|
|
43
43
|
activerecord (~> 7.0.2)
|
|
44
44
|
concurrent-ruby (1.1.10)
|
|
45
|
+
gem-release (2.2.2)
|
|
45
46
|
htmlentities (4.3.4)
|
|
46
47
|
i18n (1.12.0)
|
|
47
48
|
concurrent-ruby (~> 1.0)
|
|
@@ -66,7 +67,7 @@ GEM
|
|
|
66
67
|
pry-byebug (3.10.1)
|
|
67
68
|
byebug (~> 11.0)
|
|
68
69
|
pry (>= 0.13, < 0.15)
|
|
69
|
-
pry-doc (1.
|
|
70
|
+
pry-doc (1.4.0)
|
|
70
71
|
pry (~> 0.11)
|
|
71
72
|
yard (~> 0.9.11)
|
|
72
73
|
racc (1.6.2)
|
|
@@ -97,7 +98,8 @@ PLATFORMS
|
|
|
97
98
|
|
|
98
99
|
DEPENDENCIES
|
|
99
100
|
arql!
|
|
101
|
+
gem-release (~> 2.2.2)
|
|
100
102
|
rake (~> 12.0)
|
|
101
103
|
|
|
102
104
|
BUNDLED WITH
|
|
103
|
-
2.
|
|
105
|
+
2.4.1
|
data/arql.gemspec
CHANGED
|
@@ -35,11 +35,12 @@ Gem::Specification.new do |spec|
|
|
|
35
35
|
spec.add_dependency 'net-ssh-gateway', '~> 2.0.0'
|
|
36
36
|
spec.add_dependency 'pry', '~> 0.14.1'
|
|
37
37
|
spec.add_dependency 'pry-byebug', '~> 3.10.1'
|
|
38
|
-
spec.add_dependency 'pry-doc', '>= 1.
|
|
38
|
+
spec.add_dependency 'pry-doc', '>= 1.4.0'
|
|
39
39
|
spec.add_dependency 'rainbow', '~> 3.0.0'
|
|
40
40
|
spec.add_dependency 'terminal-table', '~> 1.8.0'
|
|
41
41
|
spec.add_dependency 'table_print', '~> 1.5.6'
|
|
42
42
|
spec.add_dependency 'roo', '~> 2.9.0'
|
|
43
43
|
spec.add_dependency 'caxlsx', '~> 3.3.0'
|
|
44
44
|
spec.add_dependency 'ransack', '>= 3.2.1'
|
|
45
|
+
spec.add_development_dependency "gem-release", "~> 2.2.2"
|
|
45
46
|
end
|
data/lib/arql/definition.rb
CHANGED
|
@@ -5,9 +5,9 @@ module Arql
|
|
|
5
5
|
module Extension
|
|
6
6
|
extend ActiveSupport::Concern
|
|
7
7
|
|
|
8
|
-
def t
|
|
8
|
+
def t(**options)
|
|
9
9
|
puts Terminal::Table.new { |t|
|
|
10
|
-
v.each { |row| t << (row || :separator) }
|
|
10
|
+
v(**options).each { |row| t << (row || :separator) }
|
|
11
11
|
}
|
|
12
12
|
end
|
|
13
13
|
|
|
@@ -20,12 +20,17 @@ module Arql
|
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
def v
|
|
23
|
+
def v(**options)
|
|
24
24
|
t = []
|
|
25
25
|
t << ['Attribute Name', 'Attribute Value', 'SQL Type', 'Comment']
|
|
26
26
|
t << nil
|
|
27
|
+
compact_mode = options[:compact] || false
|
|
27
28
|
self.class.connection.columns(self.class.table_name).each do |column|
|
|
28
|
-
|
|
29
|
+
value = read_attribute(column.name)
|
|
30
|
+
if compact_mode && value.blank?
|
|
31
|
+
next
|
|
32
|
+
end
|
|
33
|
+
t << [column.name, value, column.sql_type, column.comment || '']
|
|
29
34
|
end
|
|
30
35
|
t
|
|
31
36
|
end
|
|
@@ -114,7 +119,7 @@ module Arql
|
|
|
114
119
|
tables.each do |table_name|
|
|
115
120
|
table_comment = comments[table_name]
|
|
116
121
|
primary_keys[table_name].tap do |pkey|
|
|
117
|
-
table_name.
|
|
122
|
+
table_name.send(@@classify_method).tap do |const_name|
|
|
118
123
|
const_name = 'Modul' if const_name == 'Module'
|
|
119
124
|
const_name = 'Clazz' if const_name == 'Class'
|
|
120
125
|
Class.new(::ArqlModel) do
|
|
@@ -172,6 +177,11 @@ module Arql
|
|
|
172
177
|
def initialize(options)
|
|
173
178
|
@@options = options
|
|
174
179
|
@@models = []
|
|
180
|
+
@@classify_method = if @@options[:singularized_table_names]
|
|
181
|
+
:camelize
|
|
182
|
+
else
|
|
183
|
+
:classify
|
|
184
|
+
end
|
|
175
185
|
ActiveRecord::Base.connection.tap do |conn|
|
|
176
186
|
Object.const_set('ArqlModel', Class.new(ActiveRecord::Base) do
|
|
177
187
|
include ::Arql::Concerns::TableDataDefinition
|
|
@@ -203,7 +213,7 @@ module Arql
|
|
|
203
213
|
tables.each do |table_name|
|
|
204
214
|
table_comment = comments[table_name]
|
|
205
215
|
primary_keys[table_name].tap do |pkey|
|
|
206
|
-
table_name.
|
|
216
|
+
table_name.send(@@classify_method).tap do |const_name|
|
|
207
217
|
const_name = 'Modul' if const_name == 'Module'
|
|
208
218
|
const_name = 'Clazz' if const_name == 'Class'
|
|
209
219
|
Class.new(::ArqlModel) do
|
data/lib/arql/ext/array.rb
CHANGED
|
@@ -27,6 +27,9 @@ class Array
|
|
|
27
27
|
attrs -= [options[:except]].flatten
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
|
+
# if options[:compact]
|
|
31
|
+
# attrs = attrs.select { |e| any { |r| r.attributes[e.to_s]&.present? } }
|
|
32
|
+
# end
|
|
30
33
|
puts Terminal::Table.new { |t|
|
|
31
34
|
t << attrs
|
|
32
35
|
t << :separator
|
|
@@ -36,7 +39,7 @@ class Array
|
|
|
36
39
|
}
|
|
37
40
|
else
|
|
38
41
|
table = Terminal::Table.new { |t|
|
|
39
|
-
v.each { |row| t << (row || :separator)}
|
|
42
|
+
v(**options).each { |row| t << (row || :separator)}
|
|
40
43
|
}.to_s
|
|
41
44
|
|
|
42
45
|
terminal_width = `tput cols`.to_i
|
|
@@ -77,23 +80,31 @@ class Array
|
|
|
77
80
|
nil
|
|
78
81
|
end
|
|
79
82
|
|
|
80
|
-
def v
|
|
83
|
+
def v(**options)
|
|
81
84
|
return self unless present?
|
|
82
85
|
t = []
|
|
83
86
|
if map(&:class).uniq.size == 1
|
|
84
87
|
if first.is_a?(ActiveRecord::Base)
|
|
85
|
-
|
|
88
|
+
attribute_names = first.attribute_names
|
|
89
|
+
if options[:compact]
|
|
90
|
+
attribute_names = attribute_names.select { |e| any? { |r| r.attributes[e]&.present? } }
|
|
91
|
+
end
|
|
92
|
+
t << attribute_names
|
|
86
93
|
t << nil
|
|
87
94
|
each do |e|
|
|
88
|
-
t << e.attributes.values_at(*
|
|
95
|
+
t << e.attributes.values_at(*attribute_names).map(&:as_json)
|
|
89
96
|
end
|
|
90
97
|
elsif first.is_a?(Array)
|
|
91
98
|
t = map { |a| a.map(&:as_json) }
|
|
92
99
|
elsif first.is_a?(Hash) || first.is_a?(ActiveSupport::HashWithIndifferentAccess)
|
|
93
|
-
|
|
100
|
+
keys = first.keys
|
|
101
|
+
if options[:compact]
|
|
102
|
+
keys = keys.select { |e| any? { |r| r[e]&.present? } }
|
|
103
|
+
end
|
|
104
|
+
t << keys
|
|
94
105
|
t << nil
|
|
95
106
|
each do |e|
|
|
96
|
-
t << e.values_at(*
|
|
107
|
+
t << e.values_at(*keys).map(&:as_json)
|
|
97
108
|
end
|
|
98
109
|
else
|
|
99
110
|
return self
|
data/lib/arql/ext/hash.rb
CHANGED
|
@@ -12,7 +12,7 @@ class Hash
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
if sheet_data.is_a?(Array)
|
|
15
|
-
if sheet_data.size > 0 && sheet_data.first.is_a?(
|
|
15
|
+
if sheet_data.size > 0 && sheet_data.first.is_a?(ActiveRecord::Base)
|
|
16
16
|
fields = sheet_data.first.attributes.keys
|
|
17
17
|
sheet.add_row(fields, types: [:string] * fields.size)
|
|
18
18
|
sheet_data.each do |row|
|
data/lib/arql/ext.rb
CHANGED
data/lib/arql/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: arql
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.22
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Liu Xiang
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-04-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: mysql2
|
|
@@ -154,14 +154,14 @@ dependencies:
|
|
|
154
154
|
requirements:
|
|
155
155
|
- - ">="
|
|
156
156
|
- !ruby/object:Gem::Version
|
|
157
|
-
version: 1.
|
|
157
|
+
version: 1.4.0
|
|
158
158
|
type: :runtime
|
|
159
159
|
prerelease: false
|
|
160
160
|
version_requirements: !ruby/object:Gem::Requirement
|
|
161
161
|
requirements:
|
|
162
162
|
- - ">="
|
|
163
163
|
- !ruby/object:Gem::Version
|
|
164
|
-
version: 1.
|
|
164
|
+
version: 1.4.0
|
|
165
165
|
- !ruby/object:Gem::Dependency
|
|
166
166
|
name: rainbow
|
|
167
167
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -246,6 +246,20 @@ dependencies:
|
|
|
246
246
|
- - ">="
|
|
247
247
|
- !ruby/object:Gem::Version
|
|
248
248
|
version: 3.2.1
|
|
249
|
+
- !ruby/object:Gem::Dependency
|
|
250
|
+
name: gem-release
|
|
251
|
+
requirement: !ruby/object:Gem::Requirement
|
|
252
|
+
requirements:
|
|
253
|
+
- - "~>"
|
|
254
|
+
- !ruby/object:Gem::Version
|
|
255
|
+
version: 2.2.2
|
|
256
|
+
type: :development
|
|
257
|
+
prerelease: false
|
|
258
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
259
|
+
requirements:
|
|
260
|
+
- - "~>"
|
|
261
|
+
- !ruby/object:Gem::Version
|
|
262
|
+
version: 2.2.2
|
|
249
263
|
description: Use ActiveRecord and Pry as your favorite SQL query editor.
|
|
250
264
|
email:
|
|
251
265
|
- liuxiang921@gmail.com
|