paginated 1.0.0 → 1.0.2

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