paginated 1.0.7 → 1.0.8
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/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
|
- - ">="
|