plucker_serializer 0.3.0 → 0.4.0

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