grape-listing 1.1.2 → 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: 475f3252f68c43b45789964dbfa412320f83dc4f23e60a51e084ce4c85fe2472
4
- data.tar.gz: fb085471aab7e821f270b34643b479dddf686a294bc4830162b8e06015999422
3
+ metadata.gz: d802d22314fa3384533770c96ee031b3f4d0fc66ad7e0e48dbecfcb72c5ce8af
4
+ data.tar.gz: 937a71993575a3f4d02175d213ca42a063be37a4a497b3cc54ad16d7eb6af033
5
5
  SHA512:
6
- metadata.gz: e5e60e6c6e94d7dd830f05cccebef438e14590b576119b038a4f8255b90fb14f74de6f1d8d1cb67986ab85c0581c8a3ae47f08a85b8fe6fa792d0732df464481
7
- data.tar.gz: 368098c1f481f028f0d3eaf31681c42e0f721e62c98bfe9c8ccbce28756cdc939960efcc49663acb193a3756be503bd6c3ad48d81e019422ee821b3d71123db9
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
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
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.2.6
47
+ version: '3.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.2.6
54
+ version: '3.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: fast_excel
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -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