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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6af50a307ab63970a4f0f92e789beae23cd38b613ae0dc74f864b3b06257952f
4
- data.tar.gz: cf61cda1b04000830cbbd0c012ea9d5bb16aed2cf01ba2eb8b53a3b581e9f80c
3
+ metadata.gz: 59eda4176935ad6c21bff248beac1078df7c44239f17c5febd60cd3af5617b34
4
+ data.tar.gz: f6362e715937b0792285ded2d9d10dc00a1e4e9cb224ec7e6ac01ea67d08f268
5
5
  SHA512:
6
- metadata.gz: 710b210b12ea9be344e515fbd6fbeb07b6387024b8f13616782effb1070efb0ea2b144bcd7a095d25fdf07d43542473e8a0e77d8224e94f29a8aa7662156dd45
7
- data.tar.gz: e37353c09931d7c998430d1e4e891a49fbe3e5837c571f400e578fdfa974b43aecf7f76eb3a7810e0db25406c541e509554e5e70555b14b6a694b31875550100
6
+ metadata.gz: 50c7e6ac7e3014bc25a7b345ac126b61b79a194907d728140deef9a62ef2adc64947dc84cfad5870894005c3b1a48b7b1c96daee2708fac423ed71a207dbba96
7
+ data.tar.gz: 825621c088e16302953709aa518e5d19f5064212852b65cb230f685e10b47972400eeb2e77b921fa57fb16a8eb9af743e684a60d7d7bc7cfb0e8a61551608131
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- arql (0.2.11)
4
+ arql (0.2.12)
5
5
  activerecord (~> 6.0.3)
6
6
  activesupport (~> 6.0.3)
7
7
  caxlsx (~> 3.0.2)
@@ -88,4 +88,4 @@ DEPENDENCIES
88
88
  rake (~> 12.0)
89
89
 
90
90
  BUNDLED WITH
91
- 2.1.2
91
+ 2.1.4
@@ -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
@@ -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) && sheet_data[:fields].present?
7
- fields = sheet_data[:fields].map(&:to_s)
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 = sheet_data[: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
- sheet_data.each do |row|
15
- if row.is_a?(Array)
16
- sheet.add_row(row.map(&:to_s), types: [:string] * row.size)
17
- else
18
- sheet.add_row(row.slice(fields).values.map(&:to_s), types: [:string] * fields.size)
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
@@ -1,3 +1,3 @@
1
1
  module Arql
2
- VERSION = "0.2.11"
2
+ VERSION = "0.2.12"
3
3
  end
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.11
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: 2020-12-25 00:00:00.000000000 Z
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.2
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