panko_serializer 0.7.0 → 0.7.5
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/.github/workflows/docs.yml +39 -0
- data/.github/workflows/ruby.yml +51 -0
- data/.gitignore +2 -1
- data/Gemfile +2 -2
- data/README.md +7 -7
- data/benchmarks/bm_panko_json.rb +5 -1
- data/benchmarks/setup.rb +3 -1
- data/benchmarks/type_casts/bm_panko.rb +2 -2
- data/docs/.DS_Store +0 -0
- data/docs/README.md +195 -8
- data/docs/core/Footer.js +81 -0
- data/docs/{associations.md → docs/associations.md} +8 -4
- data/docs/{attributes.md → docs/attributes.md} +25 -13
- data/docs/{design-choices.md → docs/design-choices.md} +6 -2
- data/docs/{getting-started.md → docs/getting-started.md} +19 -2
- data/docs/docs/introduction.md +13 -0
- data/docs/{performance.md → docs/performance.md} +11 -7
- data/docs/{response-bag.md → docs/response-bag.md} +24 -1
- data/docs/i18n/en.json +50 -0
- data/docs/package-lock.json +9636 -0
- data/docs/package.json +14 -0
- data/docs/sidebars.json +15 -0
- data/docs/siteConfig.js +80 -0
- data/docs/static/.DS_Store +0 -0
- data/docs/static/css/custom.css +51 -0
- data/docs/static/img/favicon.ico +0 -0
- data/docs/static/img/oss_logo.png +0 -0
- data/docs/static/img/undraw_code_review.svg +1 -0
- data/docs/static/img/undraw_monitor.svg +1 -0
- data/docs/static/img/undraw_note_list.svg +1 -0
- data/docs/static/img/undraw_online.svg +1 -0
- data/docs/static/img/undraw_open_source.svg +1 -0
- data/docs/static/img/undraw_operating_system.svg +1 -0
- data/docs/static/img/undraw_react.svg +1 -0
- data/docs/static/img/undraw_tweetstorm.svg +1 -0
- data/docs/static/img/undraw_youtube_tutorial.svg +1 -0
- data/docs/static/index.html +14 -0
- data/ext/panko_serializer/attributes_writer/active_record.c +58 -16
- data/ext/panko_serializer/attributes_writer/attributes_writer.c +8 -7
- data/ext/panko_serializer/attributes_writer/common.h +1 -1
- data/ext/panko_serializer/attributes_writer/hash.c +2 -4
- data/ext/panko_serializer/attributes_writer/plain.c +2 -3
- data/ext/panko_serializer/attributes_writer/type_cast/type_cast.c +70 -21
- data/ext/panko_serializer/attributes_writer/type_cast/type_cast.h +1 -2
- data/ext/panko_serializer/panko_serializer.c +23 -8
- data/ext/panko_serializer/serialization_descriptor/association.c +1 -0
- data/ext/panko_serializer/serialization_descriptor/attribute.c +1 -0
- data/ext/panko_serializer/serialization_descriptor/serialization_descriptor.c +7 -10
- data/lib/panko/association.rb +1 -1
- data/lib/panko/object_writer.rb +8 -0
- data/lib/panko/response.rb +5 -4
- data/lib/panko/serializer.rb +6 -2
- data/lib/panko/serializer_resolver.rb +28 -15
- data/lib/panko/version.rb +1 -1
- data/panko_serializer.gemspec +8 -7
- metadata +59 -23
- data/.travis.yml +0 -29
- data/docs/docpress.json +0 -4
@@ -68,11 +68,10 @@ static struct _TypeCast type_casts[] = {
|
|
68
68
|
{is_boolean_type, cast_boolean_type},
|
69
69
|
{is_date_time_type, cast_date_time_type},
|
70
70
|
{is_float_type, cast_float_type},
|
71
|
-
{is_json_type, cast_json_type},
|
72
71
|
|
73
72
|
{NULL, NULL}};
|
74
73
|
|
75
|
-
extern VALUE type_cast(VALUE type_metadata, VALUE value);
|
74
|
+
extern VALUE type_cast(VALUE type_metadata, VALUE value, VALUE* isJson);
|
76
75
|
void panko_init_type_cast(VALUE mPanko);
|
77
76
|
|
78
77
|
// Introduced in ruby 2.4
|
@@ -5,6 +5,7 @@
|
|
5
5
|
static ID push_value_id;
|
6
6
|
static ID push_array_id;
|
7
7
|
static ID push_object_id;
|
8
|
+
static ID push_json_id;
|
8
9
|
static ID pop_id;
|
9
10
|
|
10
11
|
static ID to_a_id;
|
@@ -12,8 +13,14 @@ static ID to_a_id;
|
|
12
13
|
static ID object_id;
|
13
14
|
static ID serialization_context_id;
|
14
15
|
|
15
|
-
|
16
|
-
|
16
|
+
static VALUE SKIP = Qundef;
|
17
|
+
|
18
|
+
void write_value(VALUE str_writer, VALUE key, VALUE value, VALUE isJson) {
|
19
|
+
if(isJson == Qtrue) {
|
20
|
+
rb_funcall(str_writer, push_json_id, 2, value, key);
|
21
|
+
} else {
|
22
|
+
rb_funcall(str_writer, push_value_id, 2, value, key);
|
23
|
+
}
|
17
24
|
}
|
18
25
|
|
19
26
|
void serialize_method_fields(VALUE object, VALUE str_writer,
|
@@ -35,8 +42,9 @@ void serialize_method_fields(VALUE object, VALUE str_writer,
|
|
35
42
|
Attribute attribute = PANKO_ATTRIBUTE_READ(raw_attribute);
|
36
43
|
|
37
44
|
volatile VALUE result = rb_funcall(serializer, attribute->name_id, 0);
|
38
|
-
|
39
|
-
|
45
|
+
if (result != SKIP) {
|
46
|
+
write_value(str_writer, attribute->name_str, result, Qfalse);
|
47
|
+
}
|
40
48
|
}
|
41
49
|
|
42
50
|
rb_ivar_set(serializer, object_id, Qnil);
|
@@ -44,8 +52,10 @@ void serialize_method_fields(VALUE object, VALUE str_writer,
|
|
44
52
|
|
45
53
|
void serialize_fields(VALUE object, VALUE str_writer,
|
46
54
|
SerializationDescriptor descriptor) {
|
47
|
-
descriptor->attributes_writer.write_attributes(object,
|
48
|
-
|
55
|
+
descriptor->attributes_writer.write_attributes(object,
|
56
|
+
descriptor->attributes,
|
57
|
+
write_value,
|
58
|
+
str_writer);
|
49
59
|
|
50
60
|
serialize_method_fields(object, str_writer, descriptor);
|
51
61
|
}
|
@@ -60,7 +70,7 @@ void serialize_has_one_associations(VALUE object, VALUE str_writer,
|
|
60
70
|
volatile VALUE value = rb_funcall(object, association->name_id, 0);
|
61
71
|
|
62
72
|
if (NIL_P(value)) {
|
63
|
-
write_value(str_writer, association->name_str, value);
|
73
|
+
write_value(str_writer, association->name_str, value, Qfalse);
|
64
74
|
} else {
|
65
75
|
serialize_object(association->name_str, value, str_writer,
|
66
76
|
association->descriptor);
|
@@ -78,7 +88,7 @@ void serialize_has_many_associations(VALUE object, VALUE str_writer,
|
|
78
88
|
volatile VALUE value = rb_funcall(object, association->name_id, 0);
|
79
89
|
|
80
90
|
if (NIL_P(value)) {
|
81
|
-
write_value(str_writer, association->name_str, value);
|
91
|
+
write_value(str_writer, association->name_str, value, Qfalse);
|
82
92
|
} else {
|
83
93
|
serialize_objects(association->name_str, value, str_writer,
|
84
94
|
association->descriptor);
|
@@ -146,6 +156,7 @@ void Init_panko_serializer() {
|
|
146
156
|
push_value_id = rb_intern("push_value");
|
147
157
|
push_array_id = rb_intern("push_array");
|
148
158
|
push_object_id = rb_intern("push_object");
|
159
|
+
push_json_id = rb_intern("push_json");
|
149
160
|
pop_id = rb_intern("pop");
|
150
161
|
to_a_id = rb_intern("to_a");
|
151
162
|
object_id = rb_intern("@object");
|
@@ -159,6 +170,10 @@ void Init_panko_serializer() {
|
|
159
170
|
rb_define_singleton_method(mPanko, "serialize_objects", serialize_objects_api,
|
160
171
|
3);
|
161
172
|
|
173
|
+
VALUE mPankoSerializer = rb_const_get(mPanko, rb_intern("Serializer"));
|
174
|
+
SKIP = rb_const_get(mPankoSerializer, rb_intern("SKIP"));
|
175
|
+
rb_global_variable(&SKIP);
|
176
|
+
|
162
177
|
panko_init_serialization_descriptor(mPanko);
|
163
178
|
init_attributes_writer(mPanko);
|
164
179
|
panko_init_type_cast(mPanko);
|
@@ -77,6 +77,7 @@ VALUE association_decriptor_aset(VALUE self, VALUE descriptor) {
|
|
77
77
|
|
78
78
|
void panko_init_association(VALUE mPanko) {
|
79
79
|
cAssociation = rb_define_class_under(mPanko, "Association", rb_cObject);
|
80
|
+
rb_global_variable(&cAssociation);
|
80
81
|
|
81
82
|
rb_define_module_function(cAssociation, "new", association_new, -1);
|
82
83
|
|
@@ -85,6 +85,7 @@ void panko_init_attribute(VALUE mPanko) {
|
|
85
85
|
attribute_aliases_id = rb_intern("attribute_aliases");
|
86
86
|
|
87
87
|
cAttribute = rb_define_class_under(mPanko, "Attribute", rb_cObject);
|
88
|
+
rb_global_variable(&cAttribute);
|
88
89
|
|
89
90
|
rb_define_module_function(cAttribute, "new", attribute_new, -1);
|
90
91
|
|
@@ -1,7 +1,5 @@
|
|
1
1
|
#include "serialization_descriptor.h"
|
2
2
|
|
3
|
-
VALUE cSerializationDescriptor;
|
4
|
-
|
5
3
|
static ID object_id;
|
6
4
|
static ID sc_id;
|
7
5
|
|
@@ -10,8 +8,8 @@ static void sd_free(SerializationDescriptor sd) {
|
|
10
8
|
return;
|
11
9
|
}
|
12
10
|
|
13
|
-
sd->serializer_type = Qnil;
|
14
11
|
sd->serializer = Qnil;
|
12
|
+
sd->serializer_type = Qnil;
|
15
13
|
sd->attributes = Qnil;
|
16
14
|
sd->method_fields = Qnil;
|
17
15
|
sd->has_one_associations = Qnil;
|
@@ -21,8 +19,8 @@ static void sd_free(SerializationDescriptor sd) {
|
|
21
19
|
}
|
22
20
|
|
23
21
|
void sd_mark(SerializationDescriptor data) {
|
24
|
-
rb_gc_mark(data->serializer_type);
|
25
22
|
rb_gc_mark(data->serializer);
|
23
|
+
rb_gc_mark(data->serializer_type);
|
26
24
|
rb_gc_mark(data->attributes);
|
27
25
|
rb_gc_mark(data->method_fields);
|
28
26
|
rb_gc_mark(data->has_one_associations);
|
@@ -30,7 +28,7 @@ void sd_mark(SerializationDescriptor data) {
|
|
30
28
|
rb_gc_mark(data->aliases);
|
31
29
|
}
|
32
30
|
|
33
|
-
static VALUE
|
31
|
+
static VALUE sd_alloc(VALUE klass) {
|
34
32
|
SerializationDescriptor sd = ALLOC(struct _SerializationDescriptor);
|
35
33
|
|
36
34
|
sd->serializer = Qnil;
|
@@ -43,7 +41,7 @@ static VALUE sd_new(int argc, VALUE* argv, VALUE self) {
|
|
43
41
|
|
44
42
|
sd->attributes_writer = create_empty_attributes_writer();
|
45
43
|
|
46
|
-
return Data_Wrap_Struct(
|
44
|
+
return Data_Wrap_Struct(klass, sd_mark, sd_free, sd);
|
47
45
|
}
|
48
46
|
|
49
47
|
SerializationDescriptor sd_read(VALUE descriptor) {
|
@@ -122,7 +120,7 @@ VALUE sd_type_set(VALUE self, VALUE type) {
|
|
122
120
|
return Qnil;
|
123
121
|
}
|
124
122
|
|
125
|
-
VALUE sd_type_aref(VALUE self
|
123
|
+
VALUE sd_type_aref(VALUE self) {
|
126
124
|
SerializationDescriptor sd = (SerializationDescriptor)DATA_PTR(self);
|
127
125
|
return sd->serializer_type;
|
128
126
|
}
|
@@ -142,11 +140,10 @@ void panko_init_serialization_descriptor(VALUE mPanko) {
|
|
142
140
|
object_id = rb_intern("@object");
|
143
141
|
sc_id = rb_intern("@sc");
|
144
142
|
|
145
|
-
cSerializationDescriptor =
|
143
|
+
VALUE cSerializationDescriptor =
|
146
144
|
rb_define_class_under(mPanko, "SerializationDescriptor", rb_cObject);
|
147
145
|
|
148
|
-
|
149
|
-
|
146
|
+
rb_define_alloc_func(cSerializationDescriptor, sd_alloc);
|
150
147
|
rb_define_method(cSerializationDescriptor, "serializer=", sd_serializer_set,
|
151
148
|
1);
|
152
149
|
rb_define_method(cSerializationDescriptor, "serializer", sd_serializer_ref,
|
data/lib/panko/association.rb
CHANGED
data/lib/panko/object_writer.rb
CHANGED
@@ -33,6 +33,14 @@ class Panko::ObjectWriter
|
|
33
33
|
@values.last[key] = value.as_json
|
34
34
|
end
|
35
35
|
|
36
|
+
def push_json(value, key = nil)
|
37
|
+
if value.is_a?(String)
|
38
|
+
value = Oj.load(value) rescue nil
|
39
|
+
end
|
40
|
+
|
41
|
+
push_value(value, key)
|
42
|
+
end
|
43
|
+
|
36
44
|
def pop
|
37
45
|
result = @values.pop
|
38
46
|
|
data/lib/panko/response.rb
CHANGED
@@ -22,12 +22,13 @@ module Panko
|
|
22
22
|
Panko::JsonValue.from(value)
|
23
23
|
end
|
24
24
|
|
25
|
-
def self.array_serializer(data, serializer)
|
26
|
-
|
25
|
+
def self.array_serializer(data, serializer, options = {})
|
26
|
+
merged_options = options.merge(each_serializer: serializer)
|
27
|
+
Panko::ArraySerializer.new(data, merged_options)
|
27
28
|
end
|
28
29
|
|
29
|
-
def self.serializer(data, serializer)
|
30
|
-
json serializer.new.serialize_to_json(data)
|
30
|
+
def self.serializer(data, serializer, options = {})
|
31
|
+
json serializer.new(options).serialize_to_json(data)
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
data/lib/panko/serializer.rb
CHANGED
@@ -32,6 +32,8 @@ end
|
|
32
32
|
|
33
33
|
module Panko
|
34
34
|
class Serializer
|
35
|
+
SKIP = Object.new.freeze
|
36
|
+
|
35
37
|
class << self
|
36
38
|
def inherited(base)
|
37
39
|
if _descriptor.nil?
|
@@ -63,6 +65,8 @@ module Panko
|
|
63
65
|
end
|
64
66
|
|
65
67
|
def method_added(method)
|
68
|
+
super(method)
|
69
|
+
|
66
70
|
return if @_descriptor.nil?
|
67
71
|
|
68
72
|
deleted_attr = @_descriptor.attributes.delete(method)
|
@@ -71,7 +75,7 @@ module Panko
|
|
71
75
|
|
72
76
|
def has_one(name, options = {})
|
73
77
|
serializer_const = options[:serializer]
|
74
|
-
serializer_const = Panko::SerializerResolver.resolve(name.to_s) if serializer_const.nil?
|
78
|
+
serializer_const = Panko::SerializerResolver.resolve(name.to_s, self) if serializer_const.nil?
|
75
79
|
|
76
80
|
raise "Can't find serializer for #{self.name}.#{name} has_one relationship." if serializer_const.nil?
|
77
81
|
|
@@ -84,7 +88,7 @@ module Panko
|
|
84
88
|
|
85
89
|
def has_many(name, options = {})
|
86
90
|
serializer_const = options[:serializer] || options[:each_serializer]
|
87
|
-
serializer_const = Panko::SerializerResolver.resolve(name.to_s) if serializer_const.nil?
|
91
|
+
serializer_const = Panko::SerializerResolver.resolve(name.to_s, self) if serializer_const.nil?
|
88
92
|
|
89
93
|
raise "Can't find serializer for #{self.name}.#{name} has_many relationship." if serializer_const.nil?
|
90
94
|
|
@@ -1,25 +1,38 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'active_support/core_ext/string/inflections'
|
4
|
+
require 'active_support/core_ext/module/introspection'
|
5
|
+
|
3
6
|
class Panko::SerializerResolver
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
+
class << self
|
8
|
+
def resolve(name, from)
|
9
|
+
serializer_const = nil
|
7
10
|
|
8
|
-
|
9
|
-
|
11
|
+
if namespace = namespace_for(from)
|
12
|
+
serializer_const = safe_serializer_get("#{namespace}::#{name.singularize.camelize}Serializer")
|
13
|
+
end
|
10
14
|
|
11
|
-
|
12
|
-
|
15
|
+
serializer_const ||= safe_serializer_get("#{name.singularize.camelize}Serializer")
|
16
|
+
serializer_const
|
17
|
+
end
|
13
18
|
|
14
|
-
|
19
|
+
private
|
15
20
|
|
16
|
-
|
17
|
-
|
18
|
-
|
21
|
+
if Module.method_defined?(:module_parent_name)
|
22
|
+
def namespace_for(from)
|
23
|
+
from.module_parent_name
|
24
|
+
end
|
25
|
+
else
|
26
|
+
def namespace_for(from)
|
27
|
+
from.parent_name
|
28
|
+
end
|
29
|
+
end
|
19
30
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
31
|
+
def safe_serializer_get(name)
|
32
|
+
const = Object.const_get(name)
|
33
|
+
const < Panko::Serializer ? const : nil
|
34
|
+
rescue NameError
|
35
|
+
nil
|
36
|
+
end
|
24
37
|
end
|
25
38
|
end
|
data/lib/panko/version.rb
CHANGED
data/panko_serializer.gemspec
CHANGED
@@ -11,17 +11,17 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.email = ["yosy101@gmail.com"]
|
12
12
|
|
13
13
|
spec.summary = "High Performance JSON Serialization for ActiveRecord & Ruby Objects"
|
14
|
-
spec.homepage = "https://
|
14
|
+
spec.homepage = "https://panko.dev"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
17
|
spec.metadata = {
|
18
|
-
"bug_tracker_uri" => "https://github.com/
|
19
|
-
"source_code_uri" => "https://github.com/
|
20
|
-
"documentation_uri" => "https://
|
21
|
-
"changelog_uri" => "https://github.com/
|
18
|
+
"bug_tracker_uri" => "https://github.com/panko-serializer/panko_serializer/issues",
|
19
|
+
"source_code_uri" => "https://github.com/panko-serializer/panko_serializer",
|
20
|
+
"documentation_uri" => "https://panko-serializer.github.io/panko_serializer/",
|
21
|
+
"changelog_uri" => "https://github.com/panko-serializer/panko_serializer/releases"
|
22
22
|
}
|
23
23
|
|
24
|
-
spec.required_ruby_version = ">= 2.
|
24
|
+
spec.required_ruby_version = ">= 2.5.0"
|
25
25
|
|
26
26
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
27
27
|
f.match(%r{^(test|spec|features)/})
|
@@ -30,5 +30,6 @@ Gem::Specification.new do |spec|
|
|
30
30
|
|
31
31
|
spec.extensions << "ext/panko_serializer/extconf.rb"
|
32
32
|
|
33
|
-
spec.add_dependency "oj", "~> 3.
|
33
|
+
spec.add_dependency "oj", "~> 3.11.0"
|
34
|
+
spec.add_dependency "activesupport"
|
34
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: panko_serializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yosi Attias
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oj
|
@@ -16,15 +16,29 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.
|
19
|
+
version: 3.11.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.
|
27
|
-
|
26
|
+
version: 3.11.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
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'
|
41
|
+
description:
|
28
42
|
email:
|
29
43
|
- yosy101@gmail.com
|
30
44
|
executables: []
|
@@ -33,10 +47,11 @@ extensions:
|
|
33
47
|
extra_rdoc_files: []
|
34
48
|
files:
|
35
49
|
- ".clang-format"
|
50
|
+
- ".github/workflows/docs.yml"
|
51
|
+
- ".github/workflows/ruby.yml"
|
36
52
|
- ".gitignore"
|
37
53
|
- ".rspec"
|
38
54
|
- ".rubocop.yml"
|
39
|
-
- ".travis.yml"
|
40
55
|
- Gemfile
|
41
56
|
- LICENSE.txt
|
42
57
|
- README.md
|
@@ -59,14 +74,35 @@ files:
|
|
59
74
|
- benchmarks/type_casts/bm_active_record.rb
|
60
75
|
- benchmarks/type_casts/bm_panko.rb
|
61
76
|
- benchmarks/type_casts/support.rb
|
77
|
+
- docs/.DS_Store
|
62
78
|
- docs/README.md
|
63
|
-
- docs/
|
64
|
-
- docs/
|
65
|
-
- docs/
|
66
|
-
- docs/
|
67
|
-
- docs/getting-started.md
|
68
|
-
- docs/
|
69
|
-
- docs/
|
79
|
+
- docs/core/Footer.js
|
80
|
+
- docs/docs/associations.md
|
81
|
+
- docs/docs/attributes.md
|
82
|
+
- docs/docs/design-choices.md
|
83
|
+
- docs/docs/getting-started.md
|
84
|
+
- docs/docs/introduction.md
|
85
|
+
- docs/docs/performance.md
|
86
|
+
- docs/docs/response-bag.md
|
87
|
+
- docs/i18n/en.json
|
88
|
+
- docs/package-lock.json
|
89
|
+
- docs/package.json
|
90
|
+
- docs/sidebars.json
|
91
|
+
- docs/siteConfig.js
|
92
|
+
- docs/static/.DS_Store
|
93
|
+
- docs/static/css/custom.css
|
94
|
+
- docs/static/img/favicon.ico
|
95
|
+
- docs/static/img/oss_logo.png
|
96
|
+
- docs/static/img/undraw_code_review.svg
|
97
|
+
- docs/static/img/undraw_monitor.svg
|
98
|
+
- docs/static/img/undraw_note_list.svg
|
99
|
+
- docs/static/img/undraw_online.svg
|
100
|
+
- docs/static/img/undraw_open_source.svg
|
101
|
+
- docs/static/img/undraw_operating_system.svg
|
102
|
+
- docs/static/img/undraw_react.svg
|
103
|
+
- docs/static/img/undraw_tweetstorm.svg
|
104
|
+
- docs/static/img/undraw_youtube_tutorial.svg
|
105
|
+
- docs/static/index.html
|
70
106
|
- ext/panko_serializer/attributes_writer/active_record.c
|
71
107
|
- ext/panko_serializer/attributes_writer/active_record.h
|
72
108
|
- ext/panko_serializer/attributes_writer/attributes_writer.c
|
@@ -102,15 +138,15 @@ files:
|
|
102
138
|
- lib/panko/version.rb
|
103
139
|
- lib/panko_serializer.rb
|
104
140
|
- panko_serializer.gemspec
|
105
|
-
homepage: https://
|
141
|
+
homepage: https://panko.dev
|
106
142
|
licenses:
|
107
143
|
- MIT
|
108
144
|
metadata:
|
109
|
-
bug_tracker_uri: https://github.com/
|
110
|
-
source_code_uri: https://github.com/
|
111
|
-
documentation_uri: https://
|
112
|
-
changelog_uri: https://github.com/
|
113
|
-
post_install_message:
|
145
|
+
bug_tracker_uri: https://github.com/panko-serializer/panko_serializer/issues
|
146
|
+
source_code_uri: https://github.com/panko-serializer/panko_serializer
|
147
|
+
documentation_uri: https://panko-serializer.github.io/panko_serializer/
|
148
|
+
changelog_uri: https://github.com/panko-serializer/panko_serializer/releases
|
149
|
+
post_install_message:
|
114
150
|
rdoc_options: []
|
115
151
|
require_paths:
|
116
152
|
- lib
|
@@ -118,15 +154,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
154
|
requirements:
|
119
155
|
- - ">="
|
120
156
|
- !ruby/object:Gem::Version
|
121
|
-
version: 2.
|
157
|
+
version: 2.5.0
|
122
158
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
159
|
requirements:
|
124
160
|
- - ">="
|
125
161
|
- !ruby/object:Gem::Version
|
126
162
|
version: '0'
|
127
163
|
requirements: []
|
128
|
-
rubygems_version: 3.
|
129
|
-
signing_key:
|
164
|
+
rubygems_version: 3.1.4
|
165
|
+
signing_key:
|
130
166
|
specification_version: 4
|
131
167
|
summary: High Performance JSON Serialization for ActiveRecord & Ruby Objects
|
132
168
|
test_files: []
|