grape-listing 1.1.6 → 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: 44f1d43a25f9fdf1f78ebca77acca29913d00b5c3f1ee74f909e121569a6255d
4
- data.tar.gz: 466b6e2e8d755285a9b2208a4998555b14bd6d9a69f9a9b06a2ac1ba97dfef94
3
+ metadata.gz: 8718471a29bc7aa2abcb3b58465ace6e5dd453962e7f54422fd3e3e311e323c0
4
+ data.tar.gz: 3d0cc9a56ce90c53464f021944bdfc37f3112d56d009cfe3815ab85e770c4b03
5
5
  SHA512:
6
- metadata.gz: 9d562cd66687f45f68096a83d9f84d8be5b3cd2e69a15409acb7f8179077a83eaef81dd636d245428be8e07602bcbd1b7774b5f03eb3756a96cbc4eb900d229b
7
- data.tar.gz: c9ab0900cac1168df94db626a6fd09d845babef14ff0e9d49efa091b52f6b2ed206e538fa7d8983674ffc5ae636a397ef057c95165c873ac79784783f6b5aa4c
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
 
@@ -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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-listing
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.6
4
+ version: 1.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Павел Бабин