grape-listing 1.1.5 → 1.1.7

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: ebde4f181db7c89e1def2eeb1af0fe820da5f89b0921dc88080d0b793f3d01ac
4
- data.tar.gz: 5f077bb264dcf16c617be8a22c78e0769a1270af387ee2f171b78be398a35baa
3
+ metadata.gz: 8718471a29bc7aa2abcb3b58465ace6e5dd453962e7f54422fd3e3e311e323c0
4
+ data.tar.gz: 3d0cc9a56ce90c53464f021944bdfc37f3112d56d009cfe3815ab85e770c4b03
5
5
  SHA512:
6
- metadata.gz: 0cc783b3c30a87083033d825a7d80624af8d513c55989b6cd572a9dea1786caa72bc1306f50bf1a5f6ca6f136e9008b4c08a6b93713d4e5da58b12e06684500d
7
- data.tar.gz: dde882747da769a523f0c31b4862327d8b959f667a14e5b151b92dca8de9b609204467c2b9bfbfc79e19b75a2b27b49243184ac434bb7ee858a496371b6c6c78
6
+ metadata.gz: 38777a8933a68a07e18b5f47f2ae45a831d6c18d164cdc0e1679c33204964da94446ec95ae83ca10646e52d656d01588f81e9f2e651e8a787c61040fbd4b38f5
7
+ data.tar.gz: 6c43aca8751cbf6582ab838360c8aed7ed5e239e82dab5ae910e56be71ee8d007fd1aa44729b42e7d5983a44ebf66137c7d2a4b73c749731a68a2913b1e1ff26
data/lib/grape/dsl.rb CHANGED
@@ -53,7 +53,7 @@ module Grape
53
53
  end
54
54
 
55
55
  header['Access-Control-Expose-Headers'] = 'Content-Disposition'
56
- header['Content-Disposition'] = "attachment; filename=#{Addressable::URI.escape(filename)}"
56
+ header['Content-Disposition'] = "attachment; filename*=UTF-8''#{Addressable::URI.escape(filename).force_encoding('utf-8')}"
57
57
  env['api.format'] = :binary
58
58
  end
59
59
 
data/lib/grape_listing.rb CHANGED
@@ -5,7 +5,7 @@ require 'grape_listing_service'
5
5
  module GrapeListing
6
6
 
7
7
  def self.cache
8
- @cache ||= ActiveSupport::Cache.lookup_store(:mem_cache_store)
8
+ @cache ||= ActionController::Base.cache_store
9
9
  end
10
10
 
11
11
  end
@@ -23,7 +23,7 @@ module GrapeListing
23
23
  private
24
24
 
25
25
  def generate_spreadsheet(objects)
26
- filepath = "#{@tempdir}/#{Time.now.strftime('%Y%m%d_%H%M%S')}.xlsx"
26
+ filepath = "#{@tempdir}/#{spreadsheet_filename}"
27
27
 
28
28
  # создание таблицы и ее конфигурация
29
29
  workbook = FastExcel.open(filepath, constant_memory: true)
@@ -55,6 +55,17 @@ module GrapeListing
55
55
  filepath
56
56
  end
57
57
 
58
+ def spreadsheet_filename
59
+ model_desc =
60
+ ActiveRecord::Base.connection.execute(
61
+ "SELECT obj_description('public.#{@model.table_name}'::regclass) as comment"
62
+ )[0]['comment']&.force_encoding(Encoding::BINARY)
63
+
64
+ desc = model_desc.present? ? model_desc.gsub(' ', '_') : @model.table_name
65
+
66
+ "#{desc}_#{Time.now.strftime('%Y%m%d_%H%M%S')}.xlsx"
67
+ end
68
+
58
69
  def grape_entity_columns
59
70
  @grape_entity.root_exposures.map do |exposure|
60
71
  unless exposure.key == :deleted_at
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-listing
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Павел Бабин
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-11 00:00:00.000000000 Z
11
+ date: 2024-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activesupport
14
+ name: actionpack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.8'
41
- - !ruby/object:Gem::Dependency
42
- name: dalli
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '3.2'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '3.2'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: fast_excel
57
43
  requirement: !ruby/object:Gem::Requirement