paginated 1.0.0 → 1.0.2

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: 25d6612ba23cb5271d1e3f372038e6561367ca5d89fa3b3954459bb12d745e69
4
- data.tar.gz: 3a8251026ddc43e08426263df219db39fabbf8127a71059cc21a165afa2649e2
3
+ metadata.gz: 9ae94c2ae8e872f233996072ec628db19b885a8538cafcf7ff3b75a2af99b933
4
+ data.tar.gz: 2fd627408f5ad65ae5da8e72fd9b393db0e8cdaf7f2d1b073f02135ce37ea474
5
5
  SHA512:
6
- metadata.gz: 1a16eda994f3d8ce357367ecb016a0aeacb0b45c16c10519c1be03865a382fa42b2239014b1dbc6d8453ee58db0fc9065d1a2c319f90f568e4a3b26bf5130747
7
- data.tar.gz: 7007c621aa8deb8a343cf8aca640d1fcb7bc8aa4710a2ef7fb142c317b04b86b00bfb9c1009fe4df16d6490541ff24915ae422d104d44d51ed84c3274bdae9f5
6
+ metadata.gz: f73355fbbeda03857a8948618625392f69749f4bb968d9c4248662c31703db94cadb3a115013419d24b9fce418edf6db4db8c91dcbd6de855fae22a77a473ce0
7
+ data.tar.gz: 1297773a18228ed479111c7cc84fad0a500cfd4af7c87d456e9abe5cc825bdd161716b31b5ffa8ec53c352e0a2b81c8bd94e959c15e552f8ac733a346991e702
data/README.md CHANGED
@@ -29,7 +29,7 @@ Paginated.new.collection()
29
29
 
30
30
  `fields: %i[...]` - список полей, которые должны присутствовать в списке записей (передается вместо `serializer`).
31
31
 
32
- `serializer: 'UserSerializer'` - название сериалайзера, который обработает каждую запись (передается вместо `fields`).
32
+ `entity: 'UserEntity'` - название класса Grape Entity, который обработает каждую запись (передается вместо `fields`).
33
33
 
34
34
  `params:` - передаваемые параметры для фильтрации записей.
35
35
 
@@ -19,8 +19,8 @@ module Serialization
19
19
  # сериализация с помощью переданных полей или сериалайзера
20
20
  if @fields
21
21
  serialize_with_fields
22
- elsif @attrs[:serializer]
23
- serialize_with_serializer
22
+ elsif @attrs[:entity]
23
+ serialize_with_entity
24
24
  end
25
25
  end
26
26
 
@@ -35,9 +35,9 @@ module Serialization
35
35
  @objects = @objects.map { |i| @fields.zip(i).to_h }
36
36
  end
37
37
 
38
- def serialize_with_serializer
39
- serializer = @attrs[:serializer].constantize
40
- @objects = @objects.map { |i| serializer.new(i, root: false) }
38
+ def serialize_with_entity
39
+ entity = @attrs[:entity].constantize
40
+ @objects = @objects.map { |i| entity.represent(i, current_user: @current_user).as_json }
41
41
  end
42
42
 
43
43
  def sort_proc
data/lib/paginated.rb CHANGED
@@ -8,9 +8,10 @@ class Paginated
8
8
 
9
9
  def collection(**attrs)
10
10
  @attrs = attrs
11
+ @params = attrs[:serialization_scope].params.stringify_keys
12
+ @current_user = attrs[:serialization_scope].current_user
11
13
  @fields = attrs[:fields]
12
14
  @scopes = attrs[:scopes] || {}
13
- @params = attrs[:params].stringify_keys
14
15
  @offset = @params['offset'].to_i
15
16
  @limit = @params['limit'] || 20
16
17
  @order = attrs[:order] || :id
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.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Павел Бабин
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-03 00:00:00.000000000 Z
11
+ date: 2023-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '6.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: grape
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.7.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.7.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: grape-entity
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.0
27
55
  description: Простая пагинация записей и поиск для Rails-приложений
28
56
  email: babin359@gmail.com
29
57
  executables: []