table_structure 0.3.18 → 0.3.19
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 +9 -0
- data/Gemfile.lock +1 -1
- data/README.md +10 -10
- data/lib/table_structure/csv/writer.rb +36 -8
- data/lib/table_structure/version.rb +1 -1
- data/lib/table_structure/writer.rb +40 -15
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd4c31d4dca33325702612875d61ba8c011ffa01bc63ae34a37ef3dc5b288350
|
4
|
+
data.tar.gz: 126975799c4d8e7fc2e534c649e43946fb640395b9b040db5d347b2e3562bd48
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 857750dbc07833cc0c137b3041c97ecb5cd1421d0e539f153f614a66c10f8cbe9c7d567c6d73a6982e4c62f9c303f33dcfa28ef850e7aa2941086b9f97371385
|
7
|
+
data.tar.gz: 2663d270d999ed8598b9e83d89894517c39e880e2deda23021c7ae9ac83cb24202a18d9970919eb2ad1913ab0889dff9ddd7b997d75f36d1d2293f748afa05c2
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
# 0.3.19
|
2
|
+
Changes:
|
3
|
+
- `TableStructure::Writer`
|
4
|
+
- `header_omitted: true` option has been deprecated. Use `header: false` option instead.
|
5
|
+
- `TableStructure::CSV::Writer`
|
6
|
+
- `header_omitted: true` option has been deprecated. Use `header: false` option instead.
|
7
|
+
- `TableStructure::Iterator`
|
8
|
+
- `header_omitted: true` option has been deprecated. Use `header: false` option instead.
|
9
|
+
|
1
10
|
# 0.3.18
|
2
11
|
Changes:
|
3
12
|
- Minor improvements.
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -77,10 +77,10 @@ Initialize a writer with the schema:
|
|
77
77
|
```ruby
|
78
78
|
writer = TableStructure::Writer.new(schema)
|
79
79
|
## To omit header, write:
|
80
|
-
# writer = TableStructure::Writer.new(schema,
|
80
|
+
# writer = TableStructure::Writer.new(schema, header: false)
|
81
81
|
```
|
82
82
|
|
83
|
-
|
83
|
+
Write the items converted by the schema to array:
|
84
84
|
```ruby
|
85
85
|
items = [
|
86
86
|
{
|
@@ -109,14 +109,14 @@ writer.write(items, to: table)
|
|
109
109
|
# => [["ID", "Name", "Pet 1", "Pet 2", "Pet 3", "Q1", "Q2", "Q3"], ["1", "Taro", "🐱", "🐶", "", "⭕️", "❌", "⭕️"], ["2", "Hanako", "🐇", "🐢", "🐿", "⭕️", "⭕️", "❌"]]
|
110
110
|
```
|
111
111
|
|
112
|
-
|
112
|
+
Write the items converted by the schema to file as CSV:
|
113
113
|
```ruby
|
114
114
|
File.open('sample.csv', 'w') do |f|
|
115
115
|
writer.write(items, to: CSV.new(f))
|
116
116
|
end
|
117
117
|
```
|
118
118
|
|
119
|
-
|
119
|
+
Write the items converted by the schema to stream as CSV with Rails:
|
120
120
|
```ruby
|
121
121
|
# response.headers['X-Accel-Buffering'] = 'no' # Required if Nginx is used for reverse proxy
|
122
122
|
response.headers['Cache-Control'] = 'no-cache'
|
@@ -191,7 +191,7 @@ context = {
|
|
191
191
|
}
|
192
192
|
|
193
193
|
schema = SampleTableSchema.new(context: context)
|
194
|
-
iterator = TableStructure::Iterator.new(schema, row_type: :hash,
|
194
|
+
iterator = TableStructure::Iterator.new(schema, row_type: :hash, header: false)
|
195
195
|
```
|
196
196
|
|
197
197
|
Enumerate the items converted by the schema:
|
@@ -446,12 +446,12 @@ end
|
|
446
446
|
|
447
447
|
You can also use only `TableStructure::Schema` instance.
|
448
448
|
```erb
|
449
|
-
<% @schema.create_table(row_type: :
|
449
|
+
<% @schema.create_table(row_type: :hash) do |table| %>
|
450
450
|
<table>
|
451
451
|
<thead>
|
452
452
|
<tr>
|
453
|
-
<% table.header.each do |
|
454
|
-
<th><%=
|
453
|
+
<% table.header.each do |key, value| %>
|
454
|
+
<th class="<%= key %>"><%= value %></th>
|
455
455
|
<% end %>
|
456
456
|
</tr>
|
457
457
|
</thead>
|
@@ -459,8 +459,8 @@ You can also use only `TableStructure::Schema` instance.
|
|
459
459
|
<tbody>
|
460
460
|
<% table.body(@items).each do |row| %>
|
461
461
|
<tr>
|
462
|
-
<% row.each do |
|
463
|
-
<td><%=
|
462
|
+
<% row.each do |key, value| %>
|
463
|
+
<td class="<%= key %>"><%= value %></td>
|
464
464
|
<% end %>
|
465
465
|
</tr>
|
466
466
|
<% end %>
|
@@ -9,9 +9,21 @@ module TableStructure
|
|
9
9
|
schema,
|
10
10
|
bom: false,
|
11
11
|
csv_options: {},
|
12
|
-
|
13
|
-
|
12
|
+
header: { context: nil },
|
13
|
+
**deprecated_options
|
14
14
|
)
|
15
|
+
if deprecated_options.key?(:header_omitted)
|
16
|
+
header_omitted = deprecated_options[:header_omitted]
|
17
|
+
warn "[TableStructure] `header_omitted: #{!!header_omitted}` option has been deprecated. Use `header: #{!header_omitted}` option instead."
|
18
|
+
header = !header_omitted
|
19
|
+
end
|
20
|
+
|
21
|
+
if deprecated_options.key?(:header_context)
|
22
|
+
header_context = deprecated_options[:header_context]
|
23
|
+
warn '[TableStructure] `:header_context` option has been deprecated. Use `header: { context: ... }` option instead.'
|
24
|
+
header = { context: header_context }
|
25
|
+
end
|
26
|
+
|
15
27
|
require 'csv'
|
16
28
|
|
17
29
|
@options = {
|
@@ -19,8 +31,7 @@ module TableStructure
|
|
19
31
|
csv_options: csv_options
|
20
32
|
}
|
21
33
|
@inner_options = {
|
22
|
-
|
23
|
-
header_context: header_context
|
34
|
+
header: header
|
24
35
|
}
|
25
36
|
|
26
37
|
@writer = ::TableStructure::Writer.new(schema, **@inner_options)
|
@@ -31,13 +42,30 @@ module TableStructure
|
|
31
42
|
to:,
|
32
43
|
bom: @options[:bom],
|
33
44
|
csv_options: @options[:csv_options],
|
34
|
-
|
35
|
-
header_context: @inner_options[:header_context],
|
45
|
+
**deprecated_options,
|
36
46
|
&block
|
37
47
|
)
|
48
|
+
header = @inner_options[:header]
|
49
|
+
|
50
|
+
if deprecated_options.key?(:header)
|
51
|
+
header = deprecated_options[:header]
|
52
|
+
warn '[TableStructure] Specify :header option as an argument for initialize method.'
|
53
|
+
end
|
54
|
+
|
55
|
+
if deprecated_options.key?(:header_omitted)
|
56
|
+
header_omitted = deprecated_options[:header_omitted]
|
57
|
+
warn "[TableStructure] `header_omitted: #{!!header_omitted}` option has been deprecated. Use `header: #{!header_omitted}` option instead."
|
58
|
+
header = !header_omitted
|
59
|
+
end
|
60
|
+
|
61
|
+
if deprecated_options.key?(:header_context)
|
62
|
+
header_context = deprecated_options[:header_context]
|
63
|
+
warn '[TableStructure] `:header_context` option has been deprecated. Use `header: { context: ... }` option instead.'
|
64
|
+
header = { context: header_context }
|
65
|
+
end
|
66
|
+
|
38
67
|
inner_options = {
|
39
|
-
|
40
|
-
header_context: header_context
|
68
|
+
header: header
|
41
69
|
}
|
42
70
|
|
43
71
|
to << BOM if bom
|
@@ -4,12 +4,23 @@ module TableStructure
|
|
4
4
|
class Writer
|
5
5
|
def initialize(
|
6
6
|
schema,
|
7
|
-
|
8
|
-
header_context: nil,
|
7
|
+
header: { context: nil },
|
9
8
|
method: :<<,
|
10
9
|
row_type: :array,
|
11
10
|
**deprecated_options
|
12
11
|
)
|
12
|
+
if deprecated_options.key?(:header_omitted)
|
13
|
+
header_omitted = deprecated_options[:header_omitted]
|
14
|
+
warn "[TableStructure] `header_omitted: #{!!header_omitted}` option has been deprecated. Use `header: #{!header_omitted}` option instead."
|
15
|
+
header = !header_omitted
|
16
|
+
end
|
17
|
+
|
18
|
+
if deprecated_options.key?(:header_context)
|
19
|
+
header_context = deprecated_options[:header_context]
|
20
|
+
warn '[TableStructure] `:header_context` option has been deprecated. Use `header: { context: ... }` option instead.'
|
21
|
+
header = { context: header_context }
|
22
|
+
end
|
23
|
+
|
13
24
|
if deprecated_options.key?(:result_type)
|
14
25
|
warn '[TableStructure] `:result_type` option has been deprecated. Use `:row_type` option instead.'
|
15
26
|
row_type = deprecated_options[:result_type]
|
@@ -17,8 +28,7 @@ module TableStructure
|
|
17
28
|
|
18
29
|
@schema = schema
|
19
30
|
@options = {
|
20
|
-
|
21
|
-
header_context: header_context,
|
31
|
+
header: header,
|
22
32
|
method: method,
|
23
33
|
row_type: row_type
|
24
34
|
}
|
@@ -28,12 +38,34 @@ module TableStructure
|
|
28
38
|
items,
|
29
39
|
to:,
|
30
40
|
method: @options[:method],
|
31
|
-
header_omitted: @options[:header_omitted],
|
32
|
-
header_context: @options[:header_context],
|
33
|
-
row_type: @options[:row_type],
|
34
41
|
**deprecated_options,
|
35
42
|
&block
|
36
43
|
)
|
44
|
+
header = @options[:header]
|
45
|
+
row_type = @options[:row_type]
|
46
|
+
|
47
|
+
if deprecated_options.key?(:header)
|
48
|
+
header = deprecated_options[:header]
|
49
|
+
warn '[TableStructure] Specify :header option as an argument for initialize method.'
|
50
|
+
end
|
51
|
+
|
52
|
+
if deprecated_options.key?(:header_omitted)
|
53
|
+
header_omitted = deprecated_options[:header_omitted]
|
54
|
+
warn "[TableStructure] `header_omitted: #{!!header_omitted}` option has been deprecated. Use `header: #{!header_omitted}` option instead."
|
55
|
+
header = !header_omitted
|
56
|
+
end
|
57
|
+
|
58
|
+
if deprecated_options.key?(:header_context)
|
59
|
+
header_context = deprecated_options[:header_context]
|
60
|
+
warn '[TableStructure] `:header_context` option has been deprecated. Use `header: { context: ... }` option instead.'
|
61
|
+
header = { context: header_context }
|
62
|
+
end
|
63
|
+
|
64
|
+
if deprecated_options.key?(:row_type)
|
65
|
+
row_type = deprecated_options[:row_type]
|
66
|
+
warn '[TableStructure] Specify :row_type option as an argument for initialize method.'
|
67
|
+
end
|
68
|
+
|
37
69
|
if deprecated_options.key?(:result_type)
|
38
70
|
warn '[TableStructure] `:result_type` option has been deprecated. Use `:row_type` option instead.'
|
39
71
|
row_type = deprecated_options[:result_type]
|
@@ -41,13 +73,6 @@ module TableStructure
|
|
41
73
|
|
42
74
|
items = enumerize(items)
|
43
75
|
|
44
|
-
header_options =
|
45
|
-
if header_omitted
|
46
|
-
false
|
47
|
-
else
|
48
|
-
{ context: header_context }
|
49
|
-
end
|
50
|
-
|
51
76
|
@schema.create_table(row_type: row_type) do |table|
|
52
77
|
output = Output.new(to, method: method)
|
53
78
|
|
@@ -55,7 +80,7 @@ module TableStructure
|
|
55
80
|
Table::Iterator
|
56
81
|
.new(
|
57
82
|
table,
|
58
|
-
header:
|
83
|
+
header: header
|
59
84
|
)
|
60
85
|
.iterate(items)
|
61
86
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: table_structure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jsmmr
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-02-
|
11
|
+
date: 2020-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|