grape-listing 1.1.2.1 → 1.1.3

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: eeef22bceb680d605aec7a5f8e6e2b2a7f025c76d532528379edc8b9ca9a18bc
4
- data.tar.gz: 5836c64839d39ff0376cea000ead78da7735a07ed9c0301b219ced83b1fd783a
3
+ metadata.gz: d802d22314fa3384533770c96ee031b3f4d0fc66ad7e0e48dbecfcb72c5ce8af
4
+ data.tar.gz: 937a71993575a3f4d02175d213ca42a063be37a4a497b3cc54ad16d7eb6af033
5
5
  SHA512:
6
- metadata.gz: 2c72f1641ffeb36e8bcd3ae1b17ddbeed9e03a792aad7a4596486f17d50de4326b089a7edcc8b1c547bc01068d9235c2d2bf78b2c11b9129fe6a7e6d560c7168
7
- data.tar.gz: 37ee5594dfd0aa6ab07bd6e40bfa4ba372b594bb6183e13e5cf6deb79a7f969e43f89550314967daed2ac2cfb89997ced018917a1f696d2661110ebd4ea46b6f
6
+ metadata.gz: 6688985911fe01d53e54f6fd10d385d22489aaba8ee8044c4d3c854d37f8041597e147eccdda8d4a3344ca8eeb84c10d0d7c5e7007930383ac90731f4ea1d3f4
7
+ data.tar.gz: 8277a6d3a7523ed981ee56c0974635ea589218128781e39a16643cd9ef717c1a245bb5c5b459f561af5bffcee5bcbc4fa746200dd8ad5eb6b446b88c19e0d0b2
data/README.md CHANGED
@@ -69,9 +69,9 @@ end
69
69
 
70
70
  ### Формирование эл. таблиц
71
71
 
72
- При передаче параметра `spreadsheet=true` происходит формирование эл. таблицы в виде XLSX файла с учетом всех остальных переданных параметров. Параметр `columns` при этом является обязательным.
72
+ При передаче параметра `spreadsheet=true` происходит формирование эл. таблицы в виде XLSX файла с учетом всех остальных переданных параметров.
73
73
 
74
- Заголовки эл. таблицы будут взяты из описаний полей таблицы БД с соответствующими названиями. Значения будут сформированы путем обработки переданного списка колонок как методов.
74
+ Заголовки эл. таблицы будут взяты из описаний полей таблицы БД с соответствующими названиями или описаний полей Grape Entity.
75
75
 
76
76
  ## Конфигурация
77
77
 
@@ -4,8 +4,6 @@ module GrapeListing
4
4
  module Spreadsheet
5
5
 
6
6
  def spreadsheet
7
- @spreadsheet_cols = @params['columns'].map(&:to_sym)
8
-
9
7
  # поиск и фильтрация
10
8
  search
11
9
 
@@ -46,7 +44,7 @@ module GrapeListing
46
44
 
47
45
  # содержимое
48
46
  objects.each do |object|
49
- values = object.slice(*@spreadsheet_cols).values
47
+ values = object.slice(*spreadsheet_cols).values
50
48
  worksheet.append_row(values)
51
49
  end
52
50
 
@@ -57,14 +55,31 @@ module GrapeListing
57
55
  filepath
58
56
  end
59
57
 
58
+ def grape_entity_columns
59
+ @grape_entity.root_exposures.map do |exposure|
60
+ unless exposure.key == :deleted_at
61
+ exposure.key
62
+ end
63
+ end.compact
64
+ end
65
+
66
+ def spreadsheet_cols
67
+ @spreadsheet_cols ||=
68
+ if @params['columns'].to_a.any?
69
+ grape_entity_columns & @params['columns'].map(&:to_sym)
70
+ else
71
+ grape_entity_columns
72
+ end
73
+ end
74
+
60
75
  def spreadsheet_titles
61
76
  values = []
62
77
  entity_doc = @grape_entity.documentation
63
- model_cols = @model.columns.to_h { |i| [i.name.to_sym, i] }
78
+ model_cols = @model.columns_hash
64
79
 
65
- @spreadsheet_cols.each do |column|
80
+ spreadsheet_cols.each do |column|
66
81
  # поиск описания среди комментариев к таблице БД
67
- db_col = model_cols[column]
82
+ db_col = model_cols[column.to_s]
68
83
  if db_col&.comment&.present?
69
84
  values << db_col.comment
70
85
  next
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-listing
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2.1
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Павел Бабин
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-11 00:00:00.000000000 Z
11
+ date: 2024-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -133,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  - !ruby/object:Gem::Version
134
134
  version: '0'
135
135
  requirements: []
136
- rubygems_version: 3.4.10
136
+ rubygems_version: 3.0.6
137
137
  signing_key:
138
138
  specification_version: 4
139
139
  summary: Формирование списков записей для API на базе Grape