plucker_serializer 0.3.0 → 0.4.0

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: af8283b8fb399c77763762271db9ee9e01c7cb67a6c1d65076bd76761b81c779
4
- data.tar.gz: c0e79765da235b4cec454375c967ed85e0483d74a3403e8a11a8c7b30e916e00
3
+ metadata.gz: b1afbdbecad2e29b9ee1e5cc59f143597f8995ad851b2d4a7b28ddcab61349de
4
+ data.tar.gz: 6a4bbd5de3a4d833833030fa8c2e35f43fc3ed56c2b2bfaeb435352495a904d0
5
5
  SHA512:
6
- metadata.gz: c7acb91c9ec72c63fa5bce5f0d3d5c08979478caf08235efd7abefdf674ce146dd1f9ad7179fb6d40ac9ed4e67c9f152c10d8532dd338ec1b94374f675e6fd9c
7
- data.tar.gz: fb0c12340759e5d09ccf56f3cbe49c04c112d6d219166de5004b1c241408788cfff8648053b2853b6c8689c15efd7f04e70ac9b37ee44e91ded5a705da752062
6
+ metadata.gz: d06fa3ebe3216c2aef19f60eb42887f8d4190111ce6f6d2d07010d2e0401965d9a5968e01e1da0915fd4dea468f727b2d05df323dda072351559e590c851cb04
7
+ data.tar.gz: 2ee3ef45ca3635bdf8400ec8b988a7d6ee2fc0bc524a9ee957287f8f59a8713ffcc04b5ec91195fa7f546b261152e395b107d22d25e6b756ca656fff5f5c0c16
data/lib/plucker/base.rb CHANGED
@@ -4,6 +4,7 @@ require_relative 'descriptor'
4
4
  require_relative 'has_many'
5
5
  require_relative 'belongs_to'
6
6
  require_relative 'has_one'
7
+ require "oj"
7
8
  require 'active_support/all'
8
9
 
9
10
  module Plucker
@@ -42,6 +43,10 @@ module Plucker
42
43
  serializable_hash
43
44
  end
44
45
 
46
+ def to_json(options = {})
47
+ Oj.dump(serializable_hash, mode: :rails)
48
+ end
49
+
45
50
  def get_hash
46
51
  attributes_hash.merge! associations_hash
47
52
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  require_relative 'concerns/caching'
3
+ require "oj"
3
4
  require "pluck_all"
4
5
 
5
6
  module Plucker
@@ -7,11 +8,12 @@ module Plucker
7
8
  include Enumerable
8
9
  include Caching
9
10
 
10
- attr_reader :objects, :serializer_class, :options
11
+ attr_reader :objects, :cache_type, :serializer_class, :options
11
12
 
12
13
  def initialize(objects, options = {})
13
14
  @objects = objects
14
15
  @options = options
16
+ @cache_type = options[:cache] == :multi ? :multi : :collection
15
17
  @serializer_class = get_serialized_model(objects)
16
18
  end
17
19
 
@@ -21,7 +23,7 @@ module Plucker
21
23
  serializer_class.new(object).serializable_hash
22
24
  end.compact
23
25
  else
24
- if serializer_class.cache_enabled?
26
+ if @cache_type == :collection && serializer_class.cache_enabled?
25
27
  fetch do
26
28
  get_hash
27
29
  end
@@ -37,6 +39,10 @@ module Plucker
37
39
  serializable_hash
38
40
  end
39
41
 
42
+ def to_json(options = {})
43
+ Oj.dump(serializable_hash, mode: :rails)
44
+ end
45
+
40
46
  def get_hash
41
47
  if serializer_class.is_pluckable?
42
48
  associated_hash
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Plucker
3
- VERSION = "0.3.0"
3
+ VERSION = "0.4.0"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plucker_serializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henry Boisgibault
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-02 00:00:00.000000000 Z
11
+ date: 2022-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: oj
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: pluck_all
29
43
  requirement: !ruby/object:Gem::Requirement