simply_serializable 1.3.0 → 1.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 +4 -4
- data/.coveralls.yml +1 -0
- data/Gemfile.lock +22 -2
- data/README.md +2 -0
- data/lib/simply_serializable/serializer.rb +9 -2
- data/lib/simply_serializable/version.rb +1 -1
- data/simply_serializable.gemspec +2 -0
- metadata +32 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c8d4b8bac053837979a76fd390dd98f9d4d1c979abb46b3f17a2f3094d54113
|
4
|
+
data.tar.gz: f78b56037f33b5484c018128ac0137e40617bc4ee08007620c8b875c341b58d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e758c6b099e9ef620b4917850471d96e1f9dbf834cc7352a294fd67c428c38af55c556713894abe2a91d812c94c9f0fb8c8ca5fd58b5ca7df777405b30c610c
|
7
|
+
data.tar.gz: 112f164154044178c370deb26801fa6a7095e4d3c8fc7d4c39bc4459a66b68ce942daaaf7eb7c942306eb1dcfe595f264055ee746088c57f8cc4a8802b480bb0
|
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
service_name: travis-ci
|
data/Gemfile.lock
CHANGED
@@ -1,18 +1,27 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
simply_serializable (1.
|
4
|
+
simply_serializable (1.4.0)
|
5
5
|
fingerprintable (>= 1.2.1)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
10
|
awesome_print (1.8.0)
|
11
|
+
bump (0.8.0)
|
11
12
|
byebug (11.0.1)
|
12
13
|
colorize (0.8.1)
|
14
|
+
coveralls (0.8.23)
|
15
|
+
json (>= 1.8, < 3)
|
16
|
+
simplecov (~> 0.16.1)
|
17
|
+
term-ansicolor (~> 1.3)
|
18
|
+
thor (>= 0.19.4, < 2.0)
|
19
|
+
tins (~> 1.6)
|
13
20
|
diff-lcs (1.3)
|
21
|
+
docile (1.3.2)
|
14
22
|
fingerprintable (1.2.1)
|
15
23
|
colorize
|
24
|
+
json (2.2.0)
|
16
25
|
rake (10.5.0)
|
17
26
|
rspec (3.8.0)
|
18
27
|
rspec-core (~> 3.8.0)
|
@@ -27,17 +36,28 @@ GEM
|
|
27
36
|
diff-lcs (>= 1.2.0, < 2.0)
|
28
37
|
rspec-support (~> 3.8.0)
|
29
38
|
rspec-support (3.8.0)
|
39
|
+
simplecov (0.16.1)
|
40
|
+
docile (~> 1.1)
|
41
|
+
json (>= 1.8, < 3)
|
42
|
+
simplecov-html (~> 0.10.0)
|
43
|
+
simplecov-html (0.10.2)
|
44
|
+
term-ansicolor (1.7.1)
|
45
|
+
tins (~> 1.0)
|
46
|
+
thor (0.20.3)
|
47
|
+
tins (1.20.3)
|
30
48
|
|
31
49
|
PLATFORMS
|
32
50
|
ruby
|
33
51
|
|
34
52
|
DEPENDENCIES
|
35
53
|
awesome_print
|
54
|
+
bump
|
36
55
|
bundler (~> 2.0)
|
37
56
|
byebug
|
57
|
+
coveralls
|
38
58
|
rake (~> 10.0)
|
39
59
|
rspec (~> 3.0)
|
40
60
|
simply_serializable!
|
41
61
|
|
42
62
|
BUNDLED WITH
|
43
|
-
2.0.
|
63
|
+
2.0.2
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# SimplySerializable
|
2
2
|
|
3
|
+
[](https://travis-ci.org/ryanwjackson/simply_serializable) [](https://coveralls.io/github/ryanwjackson/simply_serializable?branch=master)
|
4
|
+
|
3
5
|
SimplySerializable (SS) is a lightweight gem for serializing objects. It does not follow the JSON API structure, so as to optimizing for cycles and speed.
|
4
6
|
|
5
7
|
## Installation
|
@@ -3,6 +3,7 @@
|
|
3
3
|
module SimplySerializable
|
4
4
|
class Serializer
|
5
5
|
attr_reader :attributes,
|
6
|
+
:do_not_serialize_if_class_is,
|
6
7
|
:except,
|
7
8
|
:object,
|
8
9
|
:only
|
@@ -10,6 +11,7 @@ module SimplySerializable
|
|
10
11
|
def initialize(
|
11
12
|
attributes: [],
|
12
13
|
cache: {},
|
14
|
+
do_not_serialize_if_class_is: [],
|
13
15
|
except: nil,
|
14
16
|
include_readable_instance_variables: true,
|
15
17
|
method_prefix: :serialize,
|
@@ -19,6 +21,8 @@ module SimplySerializable
|
|
19
21
|
@object = object
|
20
22
|
@id = id
|
21
23
|
@attributes = attributes
|
24
|
+
@do_not_serialize_if_class_is = do_not_serialize_if_class_is || []
|
25
|
+
@do_not_serialize_if_class_is = [@do_not_serialize_if_class_is] unless @do_not_serialize_if_class_is.is_a?(Array)
|
22
26
|
@include_readable_instance_variables = include_readable_instance_variables
|
23
27
|
@except = except&.map(&:to_sym)
|
24
28
|
@only = only&.map(&:to_sym)
|
@@ -97,6 +101,8 @@ module SimplySerializable
|
|
97
101
|
|
98
102
|
def deep_serialize(obj)
|
99
103
|
case obj
|
104
|
+
when *do_not_serialize_if_class_is
|
105
|
+
obj
|
100
106
|
when FalseClass, Float, nil, Integer, String, Symbol, TrueClass
|
101
107
|
obj
|
102
108
|
when Array
|
@@ -160,7 +166,8 @@ module SimplySerializable
|
|
160
166
|
@nestable = false
|
161
167
|
return reference_to(use_object_cache_key)
|
162
168
|
end
|
163
|
-
|
169
|
+
|
170
|
+
serializer = if !use_object.respond_to?(:serialize)
|
164
171
|
raise "#{use_object.class.name} does not respond to serialize. Did you mean to include Serializable in this class?" unless @include_readable_instance_variables
|
165
172
|
|
166
173
|
Serializer.new(
|
@@ -170,7 +177,7 @@ module SimplySerializable
|
|
170
177
|
else
|
171
178
|
use_object.serializer(cache: @local_cache)
|
172
179
|
end
|
173
|
-
|
180
|
+
|
174
181
|
@local_cache.merge!(serializer.cache)
|
175
182
|
reference_to(use_object_cache_key)
|
176
183
|
end
|
data/simply_serializable.gemspec
CHANGED
@@ -26,8 +26,10 @@ Gem::Specification.new do |spec|
|
|
26
26
|
|
27
27
|
spec.add_dependency 'fingerprintable', '>= 1.2.1'
|
28
28
|
spec.add_development_dependency 'awesome_print'
|
29
|
+
spec.add_development_dependency 'bump'
|
29
30
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
30
31
|
spec.add_development_dependency 'byebug', '>= 0'
|
32
|
+
spec.add_development_dependency 'coveralls', '>= 0'
|
31
33
|
spec.add_development_dependency 'rake', '~> 10.0'
|
32
34
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
33
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simply_serializable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Jackson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fingerprintable
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bump
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +80,20 @@ dependencies:
|
|
66
80
|
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: coveralls
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: rake
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -103,6 +131,7 @@ executables: []
|
|
103
131
|
extensions: []
|
104
132
|
extra_rdoc_files: []
|
105
133
|
files:
|
134
|
+
- ".coveralls.yml"
|
106
135
|
- ".gitignore"
|
107
136
|
- ".rspec"
|
108
137
|
- ".travis.yml"
|
@@ -140,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
169
|
- !ruby/object:Gem::Version
|
141
170
|
version: '0'
|
142
171
|
requirements: []
|
143
|
-
rubygems_version: 3.0.
|
172
|
+
rubygems_version: 3.0.4
|
144
173
|
signing_key:
|
145
174
|
specification_version: 4
|
146
175
|
summary: Simply Serializable makes it easy to serialize any object.
|