arql 0.2.11 → 0.2.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/lib/arql/ext/array.rb +14 -2
- data/lib/arql/ext/hash.rb +27 -11
- data/lib/arql/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59eda4176935ad6c21bff248beac1078df7c44239f17c5febd60cd3af5617b34
|
4
|
+
data.tar.gz: f6362e715937b0792285ded2d9d10dc00a1e4e9cb224ec7e6ac01ea67d08f268
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50c7e6ac7e3014bc25a7b345ac126b61b79a194907d728140deef9a62ef2adc64947dc84cfad5870894005c3b1a48b7b1c96daee2708fac423ed71a207dbba96
|
7
|
+
data.tar.gz: 825621c088e16302953709aa518e5d19f5064212852b65cb230f685e10b47972400eeb2e77b921fa57fb16a8eb9af743e684a60d7d7bc7cfb0e8a61551608131
|
data/Gemfile.lock
CHANGED
data/lib/arql/ext/array.rb
CHANGED
@@ -83,11 +83,17 @@ class Array
|
|
83
83
|
end
|
84
84
|
csv << fields
|
85
85
|
end
|
86
|
+
if size > 0 && first.is_a?(Hash)
|
87
|
+
if fields.empty?
|
88
|
+
fields = first.keys
|
89
|
+
end
|
90
|
+
csv << fields
|
91
|
+
end
|
86
92
|
each do |row|
|
87
93
|
if row.is_a?(Array)
|
88
94
|
csv << row.map(&:to_s)
|
89
95
|
else
|
90
|
-
csv << row.slice(fields).values.map(&:to_s)
|
96
|
+
csv << row.slice(*fields).values.map(&:to_s)
|
91
97
|
end
|
92
98
|
end
|
93
99
|
end
|
@@ -105,11 +111,17 @@ class Array
|
|
105
111
|
end
|
106
112
|
sheet.add_row(fields, types: [:string] * fields.size)
|
107
113
|
end
|
114
|
+
if size > 0 && first.is_a?(Hash)
|
115
|
+
if fields.empty?
|
116
|
+
fields = first.keys
|
117
|
+
end
|
118
|
+
sheet.add_row(fields, types: [:string] * fields.size)
|
119
|
+
end
|
108
120
|
each do |row|
|
109
121
|
if row.is_a?(Array)
|
110
122
|
sheet.add_row(row.map(&:to_s), types: [:string] * row.size)
|
111
123
|
else
|
112
|
-
sheet.add_row(row.slice(fields).values.map(&:to_s), types: [:string] * fields.size)
|
124
|
+
sheet.add_row(row.slice(*fields).values.map(&:to_s), types: [:string] * fields.size)
|
113
125
|
end
|
114
126
|
end
|
115
127
|
end
|
data/lib/arql/ext/hash.rb
CHANGED
@@ -3,19 +3,35 @@ class Hash
|
|
3
3
|
generate_excel(filename) do |workbook|
|
4
4
|
each do |sheet_name, sheet_data|
|
5
5
|
workbook.add_worksheet(name: sheet_name) do |sheet|
|
6
|
-
if sheet_data.is_a?(Hash)
|
7
|
-
|
8
|
-
else
|
9
|
-
fields = sheet_data[:data].first.attributes.keys
|
10
|
-
end
|
6
|
+
if sheet_data.is_a?(Hash)
|
7
|
+
fields = sheet_data[:fields].map(&:to_s)
|
11
8
|
sheet.add_row(fields, types: [:string] * fields.size)
|
12
|
-
sheet_data
|
9
|
+
sheet_data[:data].each do |row|
|
10
|
+
sheet.add_row(row.slice(*fields).values.map(&:to_s), types: [:string] * fields.size)
|
11
|
+
end
|
13
12
|
end
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
sheet.add_row(
|
13
|
+
|
14
|
+
if sheet_data.is_a?(Array)
|
15
|
+
if sheet_data.size > 0 && sheet_data.first.is_a?(ActiveModel::Base)
|
16
|
+
fields = sheet_data.first.attributes.keys
|
17
|
+
sheet.add_row(fields, types: [:string] * fields.size)
|
18
|
+
sheet_data.each do |row|
|
19
|
+
sheet.add_row(row.slice(*fields).values.map(&:to_s), types: [:string] * fields.size)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
if sheet_data.size > 0 && sheet_data.first.is_a?(Hash)
|
24
|
+
fields = sheet_data.first.keys
|
25
|
+
sheet.add_row(fields, types: [:string] * fields.size)
|
26
|
+
sheet_data.each do |row|
|
27
|
+
sheet.add_row(row.slice(*fields).values.map(&:to_s), types: [:string] * fields.size)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
if sheet_data.size > 0 && sheet_data.first.is_a?(Array)
|
32
|
+
sheet_data.each do |row|
|
33
|
+
sheet.add_row(row.map(&:to_s), types: [:string] * fields.size)
|
34
|
+
end
|
19
35
|
end
|
20
36
|
end
|
21
37
|
end
|
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.2.
|
4
|
+
version: 0.2.12
|
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: 2021-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mysql2
|
@@ -271,7 +271,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
271
271
|
- !ruby/object:Gem::Version
|
272
272
|
version: '0'
|
273
273
|
requirements: []
|
274
|
-
rubygems_version: 3.1.
|
274
|
+
rubygems_version: 3.1.4
|
275
275
|
signing_key:
|
276
276
|
specification_version: 4
|
277
277
|
summary: Rails ActiveRecord + Pry is the best SQL query editor
|