paginated 1.0.9 → 1.0.9.1

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: b9bcce808539f59666e9f47ac429c4fb081f8d1ead5152ceb9cf33ba7bcb1e00
4
- data.tar.gz: 665b4534980a20527920130fb5b9593517f82ce0a7d30de05c0bbd756fa6f76a
3
+ metadata.gz: 5c41db6a4f0666aad436a16e28e732045b3d18bbcf19beac25841e2ceb8b9bf5
4
+ data.tar.gz: a0fa7e1e31f7baa4f49de93135b584dad29ad9206c24c6e9bd3909f0aec44fb9
5
5
  SHA512:
6
- metadata.gz: a680390d0db51559a570dc52d373b6388dd9487bd179a572f75224b9d2b6d036e16cae112ea8d07478890926f6b01b38db3d8ccbcf7e3952939f21abb4546b13
7
- data.tar.gz: 0a6e40dd565c4d6b7887bf7174bd6984b087f09785ea049ff67a95c3a36732bfd3b2516309e4b58a47d2647d1f2d8644746ec7939a08911e869940b5a0f3921c
6
+ metadata.gz: cb4b93b5447a89f7f66abc6863c97e712b142c6d4aa0b7fd7ee400fa5f193927b08ef3bb98f6c7b07521dea0ed65fb5a64b5fd67e51518fd3a12977e4b36e6d4
7
+ data.tar.gz: bc8faf601587f4aec8a86345f1032712f8356ac38ed4996efa8efb4e984310c0dd6eb0ec2d9e853fa8522646c111206096cb60063aa4c39184ddd32927bc5e85
data/README.md CHANGED
@@ -83,7 +83,3 @@ end
83
83
  GrapePaginated::Configuration.configure do |config|
84
84
  end
85
85
  ```
86
-
87
- Доступные опции для конфигурирования:
88
-
89
- `spreadsheet_limit` - максимальный размер формируемой электронной таблицы. По умолчанию отстутствует.
@@ -25,6 +25,11 @@ module GrapePaginated
25
25
  @offset = @params['offset'].to_i
26
26
  @limit = @params['limit'] || 20
27
27
 
28
+ # проверка максимального значения лимита
29
+ if @limit.to_i > 100
30
+ raise StandardError.new('Лимит слишком большой')
31
+ end
32
+
28
33
  # требуемый список полей для коллекции
29
34
  @only_columns = args[:only_columns]
30
35
 
@@ -1,12 +1,6 @@
1
1
  module GrapePaginated
2
2
  class Configuration
3
3
 
4
- attr_accessor :spreadsheet_limit
5
-
6
- def spreadsheet_limit
7
- @spreadsheet_limit || Float::INFINITY
8
- end
9
-
10
4
  def self.configure
11
5
  yield(config)
12
6
  config
@@ -10,8 +10,8 @@ module GrapePaginated
10
10
  # коллекция записей ActiveRecord для формирования эл. таблицы
11
11
  records = @objects || @model.unscoped.merge(@scopes)
12
12
 
13
- # exception в случае превышения лимита записей
14
- raise StandardError.new('Кол-во записей превышает заданный лимит') if records.count > spreadsheet_limit
13
+ # ограничение записей
14
+ records = records.order(:id).offset(@offset).limit(@limit)
15
15
 
16
16
  # формирования файла эл. таблицы
17
17
  generate_spreadsheet(records)
@@ -19,10 +19,6 @@ module GrapePaginated
19
19
 
20
20
  private
21
21
 
22
- def spreadsheet_limit
23
- GrapePaginated::Configuration.config.spreadsheet_limit
24
- end
25
-
26
22
  def generate_spreadsheet(records)
27
23
  filepath = "#{@tempdir}/#{Time.now.strftime('%Y%m%d_%H%M%S')}.xlsx"
28
24
 
@@ -45,7 +41,7 @@ module GrapePaginated
45
41
 
46
42
  # содержимое
47
43
  cols = spreadsheet_columns
48
- records.order(:id).each do |record|
44
+ records.each do |record|
49
45
  values = cols.map { |col| record.send(col) }
50
46
  worksheet.append_row(values)
51
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paginated
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Павел Бабин
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-27 00:00:00.000000000 Z
11
+ date: 2024-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fast_excel
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  requirements: []
105
- rubygems_version: 3.4.10
105
+ rubygems_version: 3.0.6
106
106
  signing_key:
107
107
  specification_version: 4
108
108
  summary: Пагинация для API на базе Grape