useful_renderers 0.1.0 → 0.2.0
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 +5 -5
- data/README.md +4 -10
- data/lib/useful_renderers/csv_renderable.rb +7 -13
- data/lib/useful_renderers/version.rb +1 -1
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b45070a2de797541d5adc36450bb071956c65b10d1318f33d891334e01493bdb
|
4
|
+
data.tar.gz: 42c7b8e6c222f43d719caf545b4cdfa99d3dece8b205a1d8ad622dd8f3acaa79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 594e329714e524b8d006e1a4d5e53e1f97fae8aff7f65b17a7da753f183f3c5594f32ab744a4052e2c8c66de1b14d12cf79b8aad8cbf471a7904f7c48f3753c9
|
7
|
+
data.tar.gz: d096a66632c5a9e8b7c75dfd4b8a9fb9170be3c0a399d8b9707ca16b8918932305016fe577b682b7c3058e827f6df7994c554fe30317ef51af07d3f759a510d7
|
data/README.md
CHANGED
@@ -83,23 +83,17 @@ end
|
|
83
83
|
|
84
84
|
```ruby
|
85
85
|
respond_to do |format|
|
86
|
-
format.csv { render csv: @locations, only: [:address, :zip] }
|
86
|
+
format.csv { render csv: @locations, only: [:address, :zip, 'country.state'] }
|
87
87
|
end
|
88
88
|
```
|
89
89
|
|
90
|
-
###
|
90
|
+
### Translate headers
|
91
91
|
|
92
|
-
|
93
|
-
respond_to do |format|
|
94
|
-
format.csv { render csv: @locations, add_methods: [:method1, :method2] }
|
95
|
-
end
|
96
|
-
```
|
97
|
-
|
98
|
-
### Add methods as columns and exclude columns
|
92
|
+
Using `Class.human_attribute_name(column_name)`
|
99
93
|
|
100
94
|
```ruby
|
101
95
|
respond_to do |format|
|
102
|
-
format.csv { render csv: @locations,
|
96
|
+
format.csv { render csv: @locations, translate: true }
|
103
97
|
end
|
104
98
|
```
|
105
99
|
|
@@ -5,25 +5,17 @@ module UsefulRenderers
|
|
5
5
|
|
6
6
|
# Converts an array to CSV formatted string
|
7
7
|
# Options include:
|
8
|
-
# :only => [:col1, :col2]
|
8
|
+
# :only => [:col1, :col2] # Specify which columns to include
|
9
9
|
# :except => [:col1, :col2] # Specify which columns to exclude
|
10
|
-
# :
|
10
|
+
# :translate => boolean # Translate headers
|
11
11
|
|
12
12
|
def to_csv(options = {})
|
13
13
|
klass = first.class
|
14
14
|
return '' if empty?
|
15
15
|
return join(',') unless klass.respond_to? :column_names
|
16
16
|
|
17
|
-
columns = klass.column_names
|
18
|
-
if options[:
|
19
|
-
columns = []
|
20
|
-
options[:only].each do |method|
|
21
|
-
columns << method.to_s if first.respond_to?(method)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
columns -= options[:except].map(&:to_s) if options[:except]
|
26
|
-
columns += options[:add_methods].map(&:to_s) if options[:add_methods]
|
17
|
+
columns = options[:only] ? options[:only].map(&:to_s) : klass.column_names
|
18
|
+
columns -= options[:except].map(&:to_s) if options[:except]
|
27
19
|
|
28
20
|
headers = columns.dup
|
29
21
|
headers.map!{|col| klass.human_attribute_name col } if options[:translate]
|
@@ -36,7 +28,9 @@ module UsefulRenderers
|
|
36
28
|
|
37
29
|
CSV.generate(csv_options) do |row|
|
38
30
|
self.each do |obj|
|
39
|
-
row << columns.map
|
31
|
+
row << columns.map do |column|
|
32
|
+
column.to_s.split('.').inject(obj) { |o, m| o.try(m) }
|
33
|
+
end
|
40
34
|
end
|
41
35
|
end
|
42
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: useful_renderers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ondrej Bartas
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -139,7 +139,7 @@ homepage: ''
|
|
139
139
|
licenses:
|
140
140
|
- MIT
|
141
141
|
metadata: {}
|
142
|
-
post_install_message:
|
142
|
+
post_install_message:
|
143
143
|
rdoc_options: []
|
144
144
|
require_paths:
|
145
145
|
- lib
|
@@ -154,9 +154,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
154
|
- !ruby/object:Gem::Version
|
155
155
|
version: '0'
|
156
156
|
requirements: []
|
157
|
-
|
158
|
-
|
159
|
-
signing_key:
|
157
|
+
rubygems_version: 3.0.1
|
158
|
+
signing_key:
|
160
159
|
specification_version: 4
|
161
160
|
summary: Adds a custom CSV and ZIP renderer to Rails applications
|
162
161
|
test_files:
|