paginated 1.0.7 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +26 -16
- data/lib/grape_extensions/dsl.rb +7 -0
- data/lib/paginated/spreadsheet.rb +11 -3
- 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: 198ac3104064417c27a8177a6000b4344999b26715857a79b05c67f112f8a6b3
|
4
|
+
data.tar.gz: 4e8b69b3de828f3a3295a7bfb638dd0c851ecb4e20f7d36d0cea406f1a7def46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51c867ec559e36bbadda8cf1f1d5658e840878a5a8d6d1670926e373457502e247698489a99841ce2f74637f6f25cd15b520bb00216cf98077d8f4a0b2b99c9f
|
7
|
+
data.tar.gz: 0a18ebb83509c2c3be91f6ce1d793548f954b9b692db560239d40a118340cf6908d8704ba8dc89c8244313f9e67ce37d6ef4458c22bd0ff596ab7d63ac3a40d0
|
data/README.md
CHANGED
@@ -20,32 +20,42 @@ bundle
|
|
20
20
|
|
21
21
|
Использование с помощью вызова метода-хелпера `paginated` и передачи в него необходимых опций.
|
22
22
|
|
23
|
+
|
24
|
+
Например:
|
25
|
+
|
26
|
+
```
|
27
|
+
paginated model: User,
|
28
|
+
entity: UserEntity,
|
29
|
+
search: %w[email name|ilike role|custom.for_role]
|
30
|
+
```
|
31
|
+
|
23
32
|
Опции (с примерами):
|
24
33
|
|
25
|
-
`model:
|
34
|
+
`model: User` - модель, записи которой нужно обработать.
|
26
35
|
|
27
|
-
`entity:
|
36
|
+
`entity: UserEntity` - класс Grape Entity, который обработает каждую запись (передается вместо `fields`).
|
28
37
|
|
29
|
-
`
|
38
|
+
`scopes: proc {...}` - блок кода для применения
|
39
|
+
|
40
|
+
`fields: %i[...]` - список полей, которые должны присутствовать в списке записей (передается вместо `entity`).
|
30
41
|
|
31
42
|
`search: %w[...]` - список полей, по которым должна осуществляться фильтрация (поиск).
|
32
43
|
|
33
|
-
|
44
|
+
`spreadsheet: '[...]'` - список полей/колонок для формирования эл. таблицы, JSON в виде строки. Пример:
|
34
45
|
|
35
46
|
```
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
]
|
47
|
-
)
|
47
|
+
[
|
48
|
+
{
|
49
|
+
"column": "id",
|
50
|
+
"title": "ID"
|
51
|
+
},
|
52
|
+
{
|
53
|
+
"column": "name",
|
54
|
+
"title": "Название"
|
55
|
+
}
|
56
|
+
]
|
48
57
|
```
|
58
|
+
При передаче `speadsheet` происходит формирование эл. таблицы в виде XLSX файла.
|
49
59
|
|
50
60
|
## Параметры HTTP запроса
|
51
61
|
|
data/lib/grape_extensions/dsl.rb
CHANGED
@@ -34,12 +34,12 @@ module Spreadsheet
|
|
34
34
|
worksheet.auto_width = true
|
35
35
|
|
36
36
|
# заголовки
|
37
|
-
worksheet.append_row(
|
37
|
+
worksheet.append_row(spreadsheet_titles, bold)
|
38
38
|
|
39
39
|
# содержимое
|
40
|
-
|
40
|
+
cols = spreadsheet_columns
|
41
41
|
records.each do |record|
|
42
|
-
values =
|
42
|
+
values = cols.map { |col| record.send(col) }
|
43
43
|
worksheet.append_row(values)
|
44
44
|
end
|
45
45
|
|
@@ -50,4 +50,12 @@ module Spreadsheet
|
|
50
50
|
filepath
|
51
51
|
end
|
52
52
|
|
53
|
+
def spreadsheet_titles
|
54
|
+
@spreadsheet_columns.map { |i| i['title'] }
|
55
|
+
end
|
56
|
+
|
57
|
+
def spreadsheet_columns
|
58
|
+
@spreadsheet_columns.map { |i| i['column'] }
|
59
|
+
end
|
60
|
+
|
53
61
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paginated
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Павел Бабин
|
@@ -93,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 3.0.0
|
97
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
98
|
requirements:
|
99
99
|
- - ">="
|