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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc3ad78511419953d52e6f0f45794b7ff5b11730cb5556dbecc64f9785d8a195
4
- data.tar.gz: 136abe2c808ba73b848c8ecf68b8033d573c9c3dd87e351fab13be3fd16a6659
3
+ metadata.gz: 198ac3104064417c27a8177a6000b4344999b26715857a79b05c67f112f8a6b3
4
+ data.tar.gz: 4e8b69b3de828f3a3295a7bfb638dd0c851ecb4e20f7d36d0cea406f1a7def46
5
5
  SHA512:
6
- metadata.gz: 6764684cb5a12b29b6ebd146bc7a5e8e77705b2d237c4dd60c553db1aa4461e5f9332fc56d30679bf97c3daf51e3f817a5bd60ea5a9c2523c5ae40cab112f656
7
- data.tar.gz: 6074be3b096999fe2379345aa17e6d69441af45ae471d453c32be5125e1d98b5eb6c7c3033324d8500e32680e6e66817dc303779c4e0ab23504efceb09de5ea3
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: 'User'` - название модели, записи которой нужно обработать.
34
+ `model: User` - модель, записи которой нужно обработать.
26
35
 
27
- `entity: 'UserEntity'` - название класса Grape Entity, который обработает каждую запись (передается вместо `fields`).
36
+ `entity: UserEntity` - класс Grape Entity, который обработает каждую запись (передается вместо `fields`).
28
37
 
29
- `fields: %i[...]` - список полей, которые должны присутствовать в списке записей (передается вместо `serializer`).
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
- paginated(
37
- model: 'User',
38
- fields: %i[
39
- email
40
- name
41
- ],
42
- search: %w[
43
- email
44
- name|ilike
45
- role|custom.for_role
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
 
@@ -24,6 +24,13 @@ module Grape
24
24
  end
25
25
 
26
26
  # требуемый список полей эл. таблицы
27
+ # формат:
28
+ # [
29
+ # {
30
+ # "column": "id",
31
+ # "title": "ID"
32
+ # }
33
+ # ]
27
34
  if params[:spreadsheet]
28
35
  opts[:spreadsheet_columns] = JSON.parse(params[:spreadsheet])
29
36
  end
@@ -34,12 +34,12 @@ module Spreadsheet
34
34
  worksheet.auto_width = true
35
35
 
36
36
  # заголовки
37
- worksheet.append_row(@spreadsheet_columns.values, bold)
37
+ worksheet.append_row(spreadsheet_titles, bold)
38
38
 
39
39
  # содержимое
40
- columns = @spreadsheet_columns.keys
40
+ cols = spreadsheet_columns
41
41
  records.each do |record|
42
- values = columns.map { |col| record.send(col) }
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.7
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: 2.5.0
96
+ version: 3.0.0
97
97
  required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  requirements:
99
99
  - - ">="