paginated 1.0.9 → 1.0.9.1

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