pg_serializable 2.0.0 → 3.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: 63d160c9c9813d6cd0cfb694af1d3f3b16f542cad5d0ced046d6b12ba52f4857
4
- data.tar.gz: 1d1d71c4935b37e899f2e13514df90aa468f9d29c69b398cf4fe710cf94a3c68
3
+ metadata.gz: 181c689aa09605b1f74bbffdb786891117b964e594cab8eb9937407d6d05e9d0
4
+ data.tar.gz: 3abdee223e868fa8f569df557a624aa5d9181e87ca5c536c3e1223273bb80c91
5
5
  SHA512:
6
- metadata.gz: 1b8307eecd420d164389ca4e04556c131e2e13d478023b0d38e70ae68498306559659a8370ea59234719d9e931c3a19a95c6ace42f2c686c99bcf5535b298bbf
7
- data.tar.gz: 75d931172e41d8fb860744d4582df3b18f1aa6c868bcd5d8167ff38c720b814533e92824dc28ae7b25d493df19e5a378ce730a16cec5270f0fe6bb7cd8c2ccd3
6
+ metadata.gz: 9976896c041b29e6f56026e9198ef89c6840821c4dd3926f6a26c4b78b8154a382879e51b73d40ab47a901adcd12d2434a70bfea80c8e17e564bb3a4ee355c56
7
+ data.tar.gz: a0d234f3602ee53002036a5a3fc9b2bb89e6920339a55fe9551029551fc6e027dd4e6c5160da04e833a93e327f8cc7cd3a8cd6f6658830ef6d0ecf1eb3ed3ee4
@@ -1,50 +1,47 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pg_serializable (2.0.0)
5
- activerecord (~> 5.2)
6
- activesupport (~> 5.2)
7
- oj (~> 3.6)
4
+ pg_serializable (3.0.2)
5
+ activerecord (>= 5.2, < 7.0)
6
+ activesupport (>= 5.2, < 7.0)
8
7
  pg (>= 1.1)
9
8
 
10
9
  GEM
11
10
  remote: https://rubygems.org/
12
11
  specs:
13
- activemodel (5.2.3)
14
- activesupport (= 5.2.3)
15
- activerecord (5.2.3)
16
- activemodel (= 5.2.3)
17
- activesupport (= 5.2.3)
18
- arel (>= 9.0)
19
- activesupport (5.2.3)
12
+ activemodel (6.0.3.1)
13
+ activesupport (= 6.0.3.1)
14
+ activerecord (6.0.3.1)
15
+ activemodel (= 6.0.3.1)
16
+ activesupport (= 6.0.3.1)
17
+ activesupport (6.0.3.1)
20
18
  concurrent-ruby (~> 1.0, >= 1.0.2)
21
19
  i18n (>= 0.7, < 2)
22
20
  minitest (~> 5.1)
23
21
  tzinfo (~> 1.1)
24
- arel (9.0.0)
22
+ zeitwerk (~> 2.2, >= 2.2.2)
25
23
  codecov (0.1.14)
26
24
  json
27
25
  simplecov
28
26
  url
29
27
  coderay (1.1.2)
30
- concurrent-ruby (1.1.5)
28
+ concurrent-ruby (1.1.6)
31
29
  database_cleaner (1.7.0)
32
30
  diff-lcs (1.3)
33
31
  docile (1.3.1)
34
32
  factory_bot (5.0.2)
35
33
  activesupport (>= 4.2.0)
36
34
  ffaker (2.11.0)
37
- i18n (1.6.0)
35
+ i18n (1.8.2)
38
36
  concurrent-ruby (~> 1.0)
39
37
  json (2.2.0)
40
38
  method_source (0.9.2)
41
- minitest (5.11.3)
42
- oj (3.7.12)
43
- pg (1.1.4)
39
+ minitest (5.14.1)
40
+ pg (1.2.3)
44
41
  pry (0.12.2)
45
42
  coderay (~> 1.1.0)
46
43
  method_source (~> 0.9.0)
47
- rake (10.5.0)
44
+ rake (13.0.1)
48
45
  rspec (3.8.0)
49
46
  rspec-core (~> 3.8.0)
50
47
  rspec-expectations (~> 3.8.0)
@@ -64,23 +61,23 @@ GEM
64
61
  simplecov-html (~> 0.10.0)
65
62
  simplecov-html (0.10.2)
66
63
  thread_safe (0.3.6)
67
- tzinfo (1.2.5)
64
+ tzinfo (1.2.7)
68
65
  thread_safe (~> 0.1)
69
66
  url (0.3.2)
67
+ zeitwerk (2.3.0)
70
68
 
71
69
  PLATFORMS
72
70
  ruby
73
71
 
74
72
  DEPENDENCIES
75
- bundler (~> 1.16)
76
73
  codecov
77
74
  database_cleaner
78
75
  factory_bot
79
76
  ffaker
80
77
  pg_serializable!
81
78
  pry
82
- rake (~> 10.0)
79
+ rake (~> 13.0)
83
80
  rspec (~> 3.0)
84
81
 
85
82
  BUNDLED WITH
86
- 1.16.5
83
+ 2.1.4
data/README.md CHANGED
@@ -7,6 +7,23 @@
7
7
 
8
8
  Serialize json directly from postgres (9.4+).
9
9
 
10
+ ## Upgrading from version 2.x.x to 3.x.x
11
+
12
+ Serialization returns a PORO instead of a json string. If you have code like:
13
+ ```ruby
14
+ OJ.load(Product.where(id: ids).json)
15
+ ```
16
+
17
+ You can replace it with:
18
+ ```ruby
19
+ Product.where(id: ids).json
20
+ ```
21
+
22
+ To automatically use OJ to serialize your POROs to json strings, add this code to your initialization:
23
+ ```ruby
24
+ Oj.optimize_rails()
25
+ ```
26
+
10
27
  ## Motivation
11
28
  Models:
12
29
  ```ruby
@@ -533,7 +550,7 @@ class Variation < ApplicationRecord
533
550
  serializable do
534
551
  default do
535
552
  attributes :id
536
- belongs_to: :color
553
+ belongs_to :color
537
554
  end
538
555
 
539
556
  trait :for_products do
@@ -1,4 +1,3 @@
1
- require 'oj'
2
1
  require 'active_support/concern'
3
2
  require 'active_support/core_ext/module/delegation'
4
3
  require 'pg_serializable/errors'
@@ -57,7 +56,7 @@ module PgSerializable
57
56
 
58
57
  def to_pg_json(scope)
59
58
  res = scope.as_json.first
60
- ::Oj.dump(res['coalesce'] || res['json_build_object'])
59
+ res['coalesce'] || res['json_build_object']
61
60
  end
62
61
 
63
62
  private
@@ -1,3 +1,3 @@
1
1
  module PgSerializable
2
- VERSION = "2.0.0"
2
+ VERSION = "3.0.2"
3
3
  end
@@ -56,8 +56,8 @@ module PgSerializable
56
56
  key = "\'#{subject.label}\'"
57
57
  enum_hash = subject.klass.defined_enums[subject.column_name.to_s]
58
58
  val = "CASE \"#{table_alias}\".\"#{subject.column_name}\" " +
59
- enum_hash.map do |val, int|
60
- "WHEN #{int} THEN \'#{subject.prc ? subject.prc.call(val) : val}\'"
59
+ enum_hash.map do |enum_key, enum_value|
60
+ "WHEN #{enum_value.is_a?(String) ? "'#{enum_value}'" : enum_value} THEN \'#{subject.prc ? subject.prc.call(enum_key) : enum_key}\'"
61
61
  end.join(' ') + " ELSE NULL END"
62
62
  "#{key}, #{val}"
63
63
  end
@@ -21,17 +21,15 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.16"
25
24
  spec.add_development_dependency "codecov"
26
25
  spec.add_development_dependency "database_cleaner"
27
26
  spec.add_development_dependency "factory_bot"
28
27
  spec.add_development_dependency "ffaker"
29
28
  spec.add_development_dependency "pry"
30
- spec.add_development_dependency "rake", "~> 10.0"
29
+ spec.add_development_dependency "rake", "~> 13.0"
31
30
  spec.add_development_dependency "rspec", "~> 3.0"
32
31
 
33
- spec.add_runtime_dependency "activesupport", "~> 5.2"
34
- spec.add_runtime_dependency "activerecord", "~> 5.2"
32
+ spec.add_runtime_dependency "activesupport", ">= 5.2", "< 7.0"
33
+ spec.add_runtime_dependency "activerecord", ">= 5.2", "< 7.0"
35
34
  spec.add_runtime_dependency "pg", ">= 1.1"
36
- spec.add_runtime_dependency "oj", "~> 3.6"
37
35
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_serializable
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - matthewjf
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-07 00:00:00.000000000 Z
11
+ date: 2020-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.16'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.16'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: codecov
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +86,14 @@ dependencies:
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '10.0'
89
+ version: '13.0'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '10.0'
96
+ version: '13.0'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: rspec
113
99
  requirement: !ruby/object:Gem::Requirement
@@ -126,30 +112,42 @@ dependencies:
126
112
  name: activesupport
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
- - - "~>"
115
+ - - ">="
130
116
  - !ruby/object:Gem::Version
131
117
  version: '5.2'
118
+ - - "<"
119
+ - !ruby/object:Gem::Version
120
+ version: '7.0'
132
121
  type: :runtime
133
122
  prerelease: false
134
123
  version_requirements: !ruby/object:Gem::Requirement
135
124
  requirements:
136
- - - "~>"
125
+ - - ">="
137
126
  - !ruby/object:Gem::Version
138
127
  version: '5.2'
128
+ - - "<"
129
+ - !ruby/object:Gem::Version
130
+ version: '7.0'
139
131
  - !ruby/object:Gem::Dependency
140
132
  name: activerecord
141
133
  requirement: !ruby/object:Gem::Requirement
142
134
  requirements:
143
- - - "~>"
135
+ - - ">="
144
136
  - !ruby/object:Gem::Version
145
137
  version: '5.2'
138
+ - - "<"
139
+ - !ruby/object:Gem::Version
140
+ version: '7.0'
146
141
  type: :runtime
147
142
  prerelease: false
148
143
  version_requirements: !ruby/object:Gem::Requirement
149
144
  requirements:
150
- - - "~>"
145
+ - - ">="
151
146
  - !ruby/object:Gem::Version
152
147
  version: '5.2'
148
+ - - "<"
149
+ - !ruby/object:Gem::Version
150
+ version: '7.0'
153
151
  - !ruby/object:Gem::Dependency
154
152
  name: pg
155
153
  requirement: !ruby/object:Gem::Requirement
@@ -164,20 +162,6 @@ dependencies:
164
162
  - - ">="
165
163
  - !ruby/object:Gem::Version
166
164
  version: '1.1'
167
- - !ruby/object:Gem::Dependency
168
- name: oj
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '3.6'
174
- type: :runtime
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '3.6'
181
165
  description: serializes rails models from postgres (9.5+)
182
166
  email:
183
167
  - matthewjf@gmail.com
@@ -236,8 +220,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
220
  - !ruby/object:Gem::Version
237
221
  version: '0'
238
222
  requirements: []
239
- rubyforge_project:
240
- rubygems_version: 2.7.6
223
+ rubygems_version: 3.1.2
241
224
  signing_key:
242
225
  specification_version: 4
243
226
  summary: serializes rails models from postgres (9.5+)