grape-listing 1.1.2 → 1.1.3

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 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