pg_serializable 2.0.0 → 3.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: 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+)