panko_serializer 0.6.0 → 0.7.4

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +39 -0
  3. data/.github/workflows/ruby.yml +48 -0
  4. data/.gitignore +2 -1
  5. data/Gemfile +2 -2
  6. data/README.md +7 -7
  7. data/benchmarks/app.rb +1 -0
  8. data/benchmarks/bm_panko_json.rb +5 -1
  9. data/benchmarks/setup.rb +3 -1
  10. data/benchmarks/type_casts/bm_panko.rb +2 -2
  11. data/docs/.DS_Store +0 -0
  12. data/docs/README.md +195 -8
  13. data/docs/core/Footer.js +81 -0
  14. data/docs/{associations.md → docs/associations.md} +23 -5
  15. data/docs/{attributes.md → docs/attributes.md} +25 -13
  16. data/docs/{design-choices.md → docs/design-choices.md} +6 -2
  17. data/docs/{getting-started.md → docs/getting-started.md} +19 -2
  18. data/docs/docs/introduction.md +13 -0
  19. data/docs/{performance.md → docs/performance.md} +11 -7
  20. data/docs/{response-bag.md → docs/response-bag.md} +24 -1
  21. data/docs/i18n/en.json +50 -0
  22. data/docs/package-lock.json +9636 -0
  23. data/docs/package.json +14 -0
  24. data/docs/sidebars.json +15 -0
  25. data/docs/siteConfig.js +80 -0
  26. data/docs/static/.DS_Store +0 -0
  27. data/docs/static/css/custom.css +51 -0
  28. data/docs/static/img/favicon.ico +0 -0
  29. data/docs/static/img/oss_logo.png +0 -0
  30. data/docs/static/img/undraw_code_review.svg +1 -0
  31. data/docs/static/img/undraw_monitor.svg +1 -0
  32. data/docs/static/img/undraw_note_list.svg +1 -0
  33. data/docs/static/img/undraw_online.svg +1 -0
  34. data/docs/static/img/undraw_open_source.svg +1 -0
  35. data/docs/static/img/undraw_operating_system.svg +1 -0
  36. data/docs/static/img/undraw_react.svg +1 -0
  37. data/docs/static/img/undraw_tweetstorm.svg +1 -0
  38. data/docs/static/img/undraw_youtube_tutorial.svg +1 -0
  39. data/docs/static/index.html +14 -0
  40. data/ext/panko_serializer/attributes_writer/active_record.c +58 -16
  41. data/ext/panko_serializer/attributes_writer/attributes_writer.c +15 -3
  42. data/ext/panko_serializer/attributes_writer/attributes_writer.h +2 -1
  43. data/ext/panko_serializer/attributes_writer/common.h +1 -1
  44. data/ext/panko_serializer/attributes_writer/hash.c +12 -0
  45. data/ext/panko_serializer/attributes_writer/hash.h +9 -0
  46. data/ext/panko_serializer/attributes_writer/plain.c +2 -3
  47. data/ext/panko_serializer/attributes_writer/type_cast/type_cast.c +54 -21
  48. data/ext/panko_serializer/attributes_writer/type_cast/type_cast.h +1 -2
  49. data/ext/panko_serializer/panko_serializer.c +15 -7
  50. data/ext/panko_serializer/serialization_descriptor/serialization_descriptor.c +7 -10
  51. data/lib/panko/association.rb +1 -1
  52. data/lib/panko/object_writer.rb +8 -0
  53. data/lib/panko/response.rb +5 -4
  54. data/lib/panko/serializer.rb +5 -0
  55. data/lib/panko/version.rb +1 -1
  56. data/panko_serializer.gemspec +7 -7
  57. metadata +47 -23
  58. data/.travis.yml +0 -33
  59. data/docs/docpress.json +0 -4
@@ -7,7 +7,7 @@ ID to_i_id = 0;
7
7
 
8
8
  static VALUE oj_type = Qundef;
9
9
  static VALUE oj_parseerror_type = Qundef;
10
- ID load_id = 0;
10
+ ID oj_sc_parse_id = 0;
11
11
 
12
12
  // Caching ActiveRecord Types
13
13
  static VALUE ar_string_type = Qundef;
@@ -212,19 +212,6 @@ bool is_json_type(VALUE type_klass) {
212
212
  (ar_json_type != Qundef && type_klass == ar_json_type));
213
213
  }
214
214
 
215
- VALUE rescue_func() { return Qnil; }
216
-
217
- VALUE parse_json(VALUE value) { return rb_funcall(oj_type, load_id, 1, value); }
218
-
219
- VALUE cast_json_type(VALUE value) {
220
- if (!RB_TYPE_P(value, T_STRING)) {
221
- return value;
222
- }
223
-
224
- volatile VALUE result =
225
- rb_rescue2(parse_json, value, rescue_func, Qundef, oj_parseerror_type, 0);
226
- return result;
227
- }
228
215
 
229
216
  bool is_boolean_type(VALUE type_klass) { return type_klass == ar_boolean_type; }
230
217
 
@@ -287,7 +274,36 @@ VALUE cast_date_time_type(VALUE value) {
287
274
  return Qundef;
288
275
  }
289
276
 
290
- VALUE type_cast(VALUE type_metadata, VALUE value) {
277
+ VALUE rescue_func() { return Qfalse; }
278
+
279
+ VALUE parse_json(VALUE value) { return rb_funcall(oj_type, oj_sc_parse_id, 2, rb_cObject, value); }
280
+
281
+ VALUE is_json_value(VALUE value) {
282
+ if (!RB_TYPE_P(value, T_STRING)) {
283
+ return value;
284
+ }
285
+
286
+
287
+ if(RSTRING_LEN(value) == 0) {
288
+ return Qfalse;
289
+ }
290
+
291
+ volatile VALUE result =
292
+ rb_rescue2(parse_json, value, rescue_func, Qundef, oj_parseerror_type, 0);
293
+
294
+ if(NIL_P(result)) {
295
+ return Qtrue;
296
+ }
297
+
298
+ if(result == Qfalse) {
299
+ return Qfalse;
300
+ }
301
+
302
+ // TODO: fix me!
303
+ return Qfalse;
304
+ }
305
+
306
+ VALUE type_cast(VALUE type_metadata, VALUE value, VALUE* isJson) {
291
307
  if (value == Qnil || value == Qundef) {
292
308
  return value;
293
309
  }
@@ -307,6 +323,14 @@ VALUE type_cast(VALUE type_metadata, VALUE value) {
307
323
  }
308
324
  }
309
325
 
326
+ if(is_json_type(type_klass)) {
327
+ if(is_json_value(value) == Qfalse) {
328
+ return Qnil;
329
+ }
330
+ *isJson = Qtrue;
331
+ return value;
332
+ }
333
+
310
334
  if (typeCastedValue == Qundef) {
311
335
  return rb_funcall(type_metadata, deserialize_from_db_id, 1, value);
312
336
  }
@@ -314,19 +338,28 @@ VALUE type_cast(VALUE type_metadata, VALUE value) {
314
338
  return typeCastedValue;
315
339
  }
316
340
 
317
- VALUE public_type_cast(VALUE module, VALUE type_metadata, VALUE value) {
318
- return type_cast(type_metadata, value);
341
+ VALUE public_type_cast(int argc, VALUE* argv, VALUE self) {
342
+ VALUE type_metadata, value, isJson;
343
+ rb_scan_args(argc, argv, "21", &type_metadata, &value, &isJson);
344
+
345
+ if (isJson == Qnil || isJson == Qundef) {
346
+ isJson = Qfalse;
347
+ }
348
+
349
+ return type_cast(type_metadata, value, &isJson);
319
350
  }
320
351
 
321
352
  void panko_init_type_cast(VALUE mPanko) {
322
- to_s_id = rb_intern_const("to_s");
323
- to_i_id = rb_intern_const("to_i");
353
+ to_s_id = rb_intern("to_s");
354
+ to_i_id = rb_intern("to_i");
324
355
 
325
356
  oj_type = rb_const_get_at(rb_cObject, rb_intern("Oj"));
326
357
  oj_parseerror_type = rb_const_get_at(oj_type, rb_intern("ParseError"));
327
- load_id = rb_intern_const("load");
358
+ oj_sc_parse_id = rb_intern("sc_parse");
359
+
328
360
 
329
- rb_define_singleton_method(mPanko, "_type_cast", public_type_cast, 2);
361
+ // TODO: pass 3 arguments here
362
+ rb_define_singleton_method(mPanko, "_type_cast", public_type_cast, -1);
330
363
 
331
364
  panko_init_time(mPanko);
332
365
  }
@@ -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,12 @@ static ID to_a_id;
12
13
  static ID object_id;
13
14
  static ID serialization_context_id;
14
15
 
15
- void write_value(VALUE str_writer, VALUE key, VALUE value) {
16
- rb_funcall(str_writer, push_value_id, 2, value, key);
16
+ void write_value(VALUE str_writer, VALUE key, VALUE value, VALUE isJson) {
17
+ if(isJson == Qtrue) {
18
+ rb_funcall(str_writer, push_json_id, 2, value, key);
19
+ } else {
20
+ rb_funcall(str_writer, push_value_id, 2, value, key);
21
+ }
17
22
  }
18
23
 
19
24
  void serialize_method_fields(VALUE object, VALUE str_writer,
@@ -36,7 +41,7 @@ void serialize_method_fields(VALUE object, VALUE str_writer,
36
41
 
37
42
  volatile VALUE result = rb_funcall(serializer, attribute->name_id, 0);
38
43
 
39
- write_value(str_writer, attribute->name_str, result);
44
+ write_value(str_writer, attribute->name_str, result, Qfalse);
40
45
  }
41
46
 
42
47
  rb_ivar_set(serializer, object_id, Qnil);
@@ -44,8 +49,10 @@ void serialize_method_fields(VALUE object, VALUE str_writer,
44
49
 
45
50
  void serialize_fields(VALUE object, VALUE str_writer,
46
51
  SerializationDescriptor descriptor) {
47
- descriptor->attributes_writer.write_attributes(object, descriptor->attributes,
48
- write_value, str_writer);
52
+ descriptor->attributes_writer.write_attributes(object,
53
+ descriptor->attributes,
54
+ write_value,
55
+ str_writer);
49
56
 
50
57
  serialize_method_fields(object, str_writer, descriptor);
51
58
  }
@@ -60,7 +67,7 @@ void serialize_has_one_associations(VALUE object, VALUE str_writer,
60
67
  volatile VALUE value = rb_funcall(object, association->name_id, 0);
61
68
 
62
69
  if (NIL_P(value)) {
63
- write_value(str_writer, association->name_str, value);
70
+ write_value(str_writer, association->name_str, value, Qfalse);
64
71
  } else {
65
72
  serialize_object(association->name_str, value, str_writer,
66
73
  association->descriptor);
@@ -78,7 +85,7 @@ void serialize_has_many_associations(VALUE object, VALUE str_writer,
78
85
  volatile VALUE value = rb_funcall(object, association->name_id, 0);
79
86
 
80
87
  if (NIL_P(value)) {
81
- write_value(str_writer, association->name_str, value);
88
+ write_value(str_writer, association->name_str, value, Qfalse);
82
89
  } else {
83
90
  serialize_objects(association->name_str, value, str_writer,
84
91
  association->descriptor);
@@ -146,6 +153,7 @@ void Init_panko_serializer() {
146
153
  push_value_id = rb_intern("push_value");
147
154
  push_array_id = rb_intern("push_array");
148
155
  push_object_id = rb_intern("push_object");
156
+ push_json_id = rb_intern("push_json");
149
157
  pop_id = rb_intern("pop");
150
158
  to_a_id = rb_intern("to_a");
151
159
  object_id = rb_intern("@object");
@@ -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 sd_new(int argc, VALUE* argv, VALUE self) {
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(cSerializationDescriptor, sd_mark, sd_free, sd);
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, VALUE type) {
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
- rb_define_module_function(cSerializationDescriptor, "new", sd_new, -1);
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,
@@ -11,7 +11,7 @@ module Panko
11
11
  end
12
12
 
13
13
  def inspect
14
- "<Panko::Attribute name=#{name_str.inspect}>"
14
+ "<Panko::Association name=#{name_str.inspect}>"
15
15
  end
16
16
  end
17
17
  end
@@ -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
 
@@ -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
- Panko::ArraySerializer.new(data, each_serializer: serializer)
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
 
@@ -63,6 +63,8 @@ module Panko
63
63
  end
64
64
 
65
65
  def method_added(method)
66
+ super(method)
67
+
66
68
  return if @_descriptor.nil?
67
69
 
68
70
  deleted_attr = @_descriptor.attributes.delete(method)
@@ -102,6 +104,7 @@ module Panko
102
104
 
103
105
  @serialization_context = SerializationContext.create(options)
104
106
  @descriptor = Panko::SerializationDescriptor.build(self.class, options, @serialization_context)
107
+ @used = false
105
108
  end
106
109
 
107
110
  def context
@@ -126,7 +129,9 @@ module Panko
126
129
  private
127
130
 
128
131
  def serialize_with_writer(object, writer)
132
+ raise ArgumentError.new("Panko::Serializer instances are single-use") if @used
129
133
  Panko.serialize_object(object, writer, @descriptor)
134
+ @used = true
130
135
  writer
131
136
  end
132
137
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Panko
4
- VERSION = "0.6.0"
4
+ VERSION = "0.7.4"
5
5
  end
@@ -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://yosiat.github.io/panko_serializer/"
14
+ spec.homepage = "https://panko.dev"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.metadata = {
18
- "bug_tracker_uri" => "https://github.com/yosiat/panko_serializer/issues",
19
- "source_code_uri" => "https://github.com/yosiat/panko_serializer",
20
- "documentation_uri" => "https://yosiat.github.io/panko_serializer/",
21
- "changelog_uri" => "https://github.com/yosiat/panko_serializer/releases"
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.3.7"
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,5 @@ Gem::Specification.new do |spec|
30
30
 
31
31
  spec.extensions << "ext/panko_serializer/extconf.rb"
32
32
 
33
- spec.add_dependency "oj", "~> 3.7.0"
33
+ spec.add_dependency "oj", "~> 3.10.0"
34
34
  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.6.0
4
+ version: 0.7.4
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: 2019-06-01 00:00:00.000000000 Z
11
+ date: 2020-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj
@@ -16,15 +16,15 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 3.7.0
19
+ version: 3.10.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.7.0
27
- description:
26
+ version: 3.10.0
27
+ description:
28
28
  email:
29
29
  - yosy101@gmail.com
30
30
  executables: []
@@ -33,10 +33,11 @@ extensions:
33
33
  extra_rdoc_files: []
34
34
  files:
35
35
  - ".clang-format"
36
+ - ".github/workflows/docs.yml"
37
+ - ".github/workflows/ruby.yml"
36
38
  - ".gitignore"
37
39
  - ".rspec"
38
40
  - ".rubocop.yml"
39
- - ".travis.yml"
40
41
  - Gemfile
41
42
  - LICENSE.txt
42
43
  - README.md
@@ -59,20 +60,43 @@ files:
59
60
  - benchmarks/type_casts/bm_active_record.rb
60
61
  - benchmarks/type_casts/bm_panko.rb
61
62
  - benchmarks/type_casts/support.rb
63
+ - docs/.DS_Store
62
64
  - docs/README.md
63
- - docs/associations.md
64
- - docs/attributes.md
65
- - docs/design-choices.md
66
- - docs/docpress.json
67
- - docs/getting-started.md
68
- - docs/performance.md
69
- - docs/response-bag.md
65
+ - docs/core/Footer.js
66
+ - docs/docs/associations.md
67
+ - docs/docs/attributes.md
68
+ - docs/docs/design-choices.md
69
+ - docs/docs/getting-started.md
70
+ - docs/docs/introduction.md
71
+ - docs/docs/performance.md
72
+ - docs/docs/response-bag.md
73
+ - docs/i18n/en.json
74
+ - docs/package-lock.json
75
+ - docs/package.json
76
+ - docs/sidebars.json
77
+ - docs/siteConfig.js
78
+ - docs/static/.DS_Store
79
+ - docs/static/css/custom.css
80
+ - docs/static/img/favicon.ico
81
+ - docs/static/img/oss_logo.png
82
+ - docs/static/img/undraw_code_review.svg
83
+ - docs/static/img/undraw_monitor.svg
84
+ - docs/static/img/undraw_note_list.svg
85
+ - docs/static/img/undraw_online.svg
86
+ - docs/static/img/undraw_open_source.svg
87
+ - docs/static/img/undraw_operating_system.svg
88
+ - docs/static/img/undraw_react.svg
89
+ - docs/static/img/undraw_tweetstorm.svg
90
+ - docs/static/img/undraw_youtube_tutorial.svg
91
+ - docs/static/index.html
70
92
  - ext/panko_serializer/attributes_writer/active_record.c
71
93
  - ext/panko_serializer/attributes_writer/active_record.h
72
94
  - ext/panko_serializer/attributes_writer/attributes_writer.c
73
95
  - ext/panko_serializer/attributes_writer/attributes_writer.h
74
96
  - ext/panko_serializer/attributes_writer/common.c
75
97
  - ext/panko_serializer/attributes_writer/common.h
98
+ - ext/panko_serializer/attributes_writer/hash.c
99
+ - ext/panko_serializer/attributes_writer/hash.h
76
100
  - ext/panko_serializer/attributes_writer/plain.c
77
101
  - ext/panko_serializer/attributes_writer/plain.h
78
102
  - ext/panko_serializer/attributes_writer/type_cast/time_conversion.c
@@ -100,15 +124,15 @@ files:
100
124
  - lib/panko/version.rb
101
125
  - lib/panko_serializer.rb
102
126
  - panko_serializer.gemspec
103
- homepage: https://yosiat.github.io/panko_serializer/
127
+ homepage: https://panko.dev
104
128
  licenses:
105
129
  - MIT
106
130
  metadata:
107
- bug_tracker_uri: https://github.com/yosiat/panko_serializer/issues
108
- source_code_uri: https://github.com/yosiat/panko_serializer
109
- documentation_uri: https://yosiat.github.io/panko_serializer/
110
- changelog_uri: https://github.com/yosiat/panko_serializer/releases
111
- post_install_message:
131
+ bug_tracker_uri: https://github.com/panko-serializer/panko_serializer/issues
132
+ source_code_uri: https://github.com/panko-serializer/panko_serializer
133
+ documentation_uri: https://panko-serializer.github.io/panko_serializer/
134
+ changelog_uri: https://github.com/panko-serializer/panko_serializer/releases
135
+ post_install_message:
112
136
  rdoc_options: []
113
137
  require_paths:
114
138
  - lib
@@ -116,15 +140,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
116
140
  requirements:
117
141
  - - ">="
118
142
  - !ruby/object:Gem::Version
119
- version: 2.3.7
143
+ version: 2.5.0
120
144
  required_rubygems_version: !ruby/object:Gem::Requirement
121
145
  requirements:
122
146
  - - ">="
123
147
  - !ruby/object:Gem::Version
124
148
  version: '0'
125
149
  requirements: []
126
- rubygems_version: 3.0.3
127
- signing_key:
150
+ rubygems_version: 3.1.4
151
+ signing_key:
128
152
  specification_version: 4
129
153
  summary: High Performance JSON Serialization for ActiveRecord & Ruby Objects
130
154
  test_files: []