panko_serializer 0.7.3 → 0.7.4

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: d5d2ed524b5e6de2f16281cb90c8d6aca2ade9f6ad87429bce588755fb34ed7e
4
- data.tar.gz: 4c7f3cab3e5822242c7afabdd3622cfb9db2fde3c51674ed2a2f6545cf4042c5
3
+ metadata.gz: 1cbaf86b0b95041f6f3387c8d82cc8ef1fa272549e50b5d3fdac2d13989f1a29
4
+ data.tar.gz: 41496c877bee39fa9fe7f136469ea260c1c60feeb25c6f95930b8c13a9055b3c
5
5
  SHA512:
6
- metadata.gz: f3f217bfdf440f325d981bab44854d0ee9715907127982f6aa023acbbd0a65286c977115c89b03f1f0c4ebd4dae61497bec06dd25cd530b5884396cd3c0db7ec
7
- data.tar.gz: a167d0e32b1fe3287208525cee3291ec13a142dc39c484fdb2542dc4f2999a2d1c72cfacf49eaf98def980576361811279e183a1fbae462542baadbf7981d562
6
+ metadata.gz: 2c30cbbde27a0ff4cead7b0763c1a76d0d179053e7d913ac81594eedb50defee858792d0893e19a42bd5b5ea71e6c5e4ed2cc3371a2d48d1dce4d53737a4d584
7
+ data.tar.gz: 0dd1443b07977c1eea6457016f4db43d88fcf857ea607bf9064b72485e4f7d78e0ffcf39fe1f9b83456c0477da3988ee6a392730bfe84565d266816484e01589
@@ -0,0 +1,39 @@
1
+ # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
2
+ # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3
+
4
+ name: Docs Publishing
5
+
6
+ on:
7
+ push:
8
+ branches: [ master ]
9
+
10
+ jobs:
11
+ build:
12
+
13
+ runs-on: ubuntu-latest
14
+ env:
15
+ working_directory: 'docs/'
16
+
17
+ steps:
18
+ - uses: actions/checkout@v2
19
+ - name: Use Node.js ${{ matrix.node-version }}
20
+ uses: actions/setup-node@v1
21
+ with:
22
+ node-version: '12.x'
23
+
24
+ - name: Install Dependencies
25
+ working-directory: ${{ env.working_directory }}
26
+ run: npm install
27
+
28
+ - name: Install SSH Client 🔑
29
+ uses: webfactory/ssh-agent@v0.2.0
30
+ with:
31
+ ssh-private-key: ${{ secrets.DEPLOY_KEY }}
32
+
33
+ - name: Publish
34
+ working-directory: ${{ env.working_directory }}
35
+ run: |
36
+ git config --global user.email "action@github.com"
37
+ git config --global user.name "GitHub Action"
38
+ GIT_USER=panko-serializer CURRENT_BRANCH=master USE_SSH=true npm run publish-gh-pages
39
+
@@ -0,0 +1,48 @@
1
+ name: Panko Serializer CI
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build:
7
+
8
+ runs-on: ubuntu-latest
9
+ strategy:
10
+ fail-fast: false
11
+ matrix:
12
+ ruby: [ '2.5', '2.6', '2.7']
13
+ rails: ['5.2.0', '6.0.0', '6.1.0rc1']
14
+
15
+ steps:
16
+ - uses: actions/checkout@v2
17
+ - name: Set up Ruby ${{ matrix.ruby }}
18
+ uses: actions/setup-ruby@v1
19
+ with:
20
+ ruby-version: ${{ matrix.ruby }}
21
+
22
+ - name: Install deps
23
+ run: |
24
+ sudo apt update -y
25
+ sudo apt install -y libsqlite3-dev
26
+
27
+ - name: Gems Cache
28
+ id: gem-cache
29
+ uses: actions/cache@v1
30
+ with:
31
+ path: vendor/bundle
32
+ key: ${{ runner.os }}-${{ matrix.ruby }}-${{ matrix.rails }}-gem
33
+ restore-keys: |
34
+ ${{ runner.os }}-${{ matrix.ruby }}-${{ matrix.rails }}-gem
35
+
36
+ - name: Install gems
37
+ env:
38
+ RAILS_VERSION: ${{ matrix.rails }}
39
+ run: |
40
+ gem install bundler
41
+ bundle config set path 'vendor/bundle'
42
+ bundle check || bundle install --jobs 4 --retry 3
43
+
44
+ - name: Compile & test
45
+ env:
46
+ RAILS_VERSION: ${{ matrix.rails }}
47
+ run: |
48
+ bundle exec rake
data/Gemfile CHANGED
@@ -25,8 +25,8 @@ group :benchmarks do
25
25
  end
26
26
 
27
27
  gem "memory_profiler"
28
- gem "ruby-prof"
29
- gem "ruby-prof-flamegraph"
28
+ gem "ruby-prof", platforms: [:mri]
29
+ gem "ruby-prof-flamegraph", platforms: [:mri]
30
30
 
31
31
  gem "benchmark-ips"
32
32
  gem "active_model_serializers"
data/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # Panko
2
2
 
3
- [![Build Status](https://api.travis-ci.com/yosiat/panko_serializer.svg?branch=master)](https://travis-ci.com/yosiat/panko_serializer)
3
+ ![Build Status](https://github.com/panko-serializer/panko_serializer/workflows/Panko%20Serializer%20CI/badge.svg?branch=github-actions)
4
4
 
5
5
  Panko is library which is inspired by ActiveModelSerializers 0.9 for serializing ActiveRecord/Ruby objects to JSON strings, fast.
6
6
 
7
7
  To achieve it's [performance](https://panko.dev/docs/performance.html):
8
8
 
9
- * Oj - Panko relies Oj since it's fast and allow to to serialize incrementally using `Oj::StringWriter`
9
+ * Oj - Panko relies Oj since it's fast and allow to serialize incrementally using `Oj::StringWriter`
10
10
  * Serialization Descriptor - Panko computes most of the metadata ahead of time, to save time later in serialization.
11
- * Type casting — Panko does type casting by it's self, instead of relying ActiveRecord.
11
+ * Type casting — Panko does type casting by it's self, instead of relying on ActiveRecord.
12
12
 
13
13
  To dig deeper about the performance choices, read [Design Choices](https://panko.dev/docs/design-choices.html).
14
14
 
@@ -48,13 +48,13 @@ class Footer extends React.Component {
48
48
  </div>
49
49
  <div>
50
50
  <h5>More</h5>
51
- <a href="https://github.com/yosiat/panko_serializer">GitHub</a>
51
+ <a href="https://github.com/panko-serializer/panko_serializer">GitHub</a>
52
52
  <a href="https://pankoserializer.herokuapp.com/">Slack</a>
53
53
  <a
54
54
  className="github-button"
55
55
  href={this.props.config.repoUrl}
56
56
  data-icon="octicon-star"
57
- data-count-href="/yosiat/panko_serializer/stargazers"
57
+ data-count-href="/panko-serializer/panko_serializer/stargazers"
58
58
  data-show-count="true"
59
59
  data-count-aria-label="# stargazers on GitHub"
60
60
  aria-label="Star this project on GitHub">
@@ -70,7 +70,7 @@ Panko::ArraySerializer.new(posts, only: {
70
70
  })
71
71
  ```
72
72
 
73
- Let's disect `only` option we passed -
73
+ Let's dissect `only` option we passed -
74
74
  * `instance` - list of attributes (and associations) we want to serializer for current instance of the serializer, in this case - `PostSerializer`.
75
75
  * `author`, `comments` - here we specify the list of attributes we want to serialize for each association.
76
76
 
@@ -91,4 +91,4 @@ Panko::ArraySerializer.new(posts, only: {
91
91
  })
92
92
  ```
93
93
 
94
- As you see now in `comments` the `instance` have differenet meaning, the `CommentSerializer`.
94
+ As you see now in `comments` the `instance` have different meaning, the `CommentSerializer`.
@@ -88,7 +88,7 @@ UserSerializer.new(except: [:name]).serialize(User.first)
88
88
  > property is not taken into account.
89
89
  > If you have a `has_many :state_transitions, name: :history` association
90
90
  > defined, the key to use in filters is `:state_transitions`
91
- > (e.g. `{ except: [:state_statitions] }`)
91
+ > (e.g. `{ except: [:state_transitions] }`)
92
92
 
93
93
  ## Filters For
94
94
 
@@ -110,7 +110,7 @@ end
110
110
  UserSerializer.serialize(User.first)
111
111
  ```
112
112
 
113
- > See disucssion in: https://github.com/yosiat/panko_serializer/issues/16
113
+ > See discussion in: https://github.com/panko-serializer/panko_serializer/issues/16
114
114
 
115
115
  ## Aliases
116
116
 
@@ -37,7 +37,7 @@ And the usage of this serializer will be:
37
37
  user = User.first
38
38
 
39
39
  # create serializer, with empty options
40
- serializer = UserSerilizer.new
40
+ serializer = UserSerializer.new
41
41
 
42
42
  # serialize to JSON
43
43
  serializer.serialize_to_json(user)
@@ -6,7 +6,7 @@ sidebar_label: Introduction
6
6
 
7
7
  Panko is library which is inspired by ActiveModelSerializers 0.9 for serializing ActiveRecord/Ruby objects to JSON strings, fast.
8
8
 
9
- To achieve it's [performance](https://yosiat.github.io/panko_serializer/performance.html):
9
+ To achieve it's [performance](https://panko-serializer.github.io/panko_serializer/performance.html):
10
10
 
11
11
  * Oj - Panko relies Oj since it's fast and allow to to serialize incrementally using `Oj::StringWriter`
12
12
  * Serialization Descriptor - Panko computes most of the metadata ahead of time, to save time later in serialization.
@@ -37,6 +37,25 @@ end
37
37
 
38
38
  And everything will work as expected!
39
39
 
40
+ For a single object serialization, we need to use a different API (since `Panko::Serializer` don't accept an object in it's constructor):
41
+
42
+ ```ruby
43
+ class PostsController < ApplicationController
44
+ def show
45
+ post = Post.find(params[:id])
46
+
47
+ render(
48
+ json: Panko::Response.create do |r|
49
+ {
50
+ success: true,
51
+ post: r.serializer(post, PostSerializer)
52
+ }
53
+ end
54
+ )
55
+ end
56
+ end
57
+ ```
58
+
40
59
  ## JsonValue
41
60
 
42
61
  Let's take the above example further, we serialized the posts and cached it as JSON string in our Cache.
@@ -7499,9 +7499,9 @@
7499
7499
  "dev": true
7500
7500
  },
7501
7501
  "prismjs": {
7502
- "version": "1.19.0",
7503
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.19.0.tgz",
7504
- "integrity": "sha512-IVFtbW9mCWm9eOIaEkNyo2Vl4NnEifis2GQ7/MLRG5TQe6t+4Sj9J5QWI9i3v+SS43uZBlCAOn+zYTVYQcPXJw==",
7502
+ "version": "1.21.0",
7503
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz",
7504
+ "integrity": "sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw==",
7505
7505
  "dev": true,
7506
7506
  "requires": {
7507
7507
  "clipboard": "^2.0.0"
@@ -9530,9 +9530,9 @@
9530
9530
  }
9531
9531
  },
9532
9532
  "websocket-extensions": {
9533
- "version": "0.1.3",
9534
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
9535
- "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
9533
+ "version": "0.1.4",
9534
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
9535
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
9536
9536
  "dev": true
9537
9537
  },
9538
9538
  "whatwg-url": {
@@ -26,15 +26,16 @@ const siteConfig = {
26
26
  tagline: 'High Performance JSON Serialization for ActiveRecord & Ruby Objects',
27
27
  url: 'https://panko.dev',
28
28
  baseUrl: '/',
29
- repoPath: 'yosiat/panko_serializer',
29
+ repoPath: 'panko-serializer/panko_serializer',
30
30
  // For github.io type URLs, you would set the url and baseUrl like:
31
31
  // url: 'https://facebook.github.io',
32
32
  // baseUrl: '/test-site/',
33
33
  customDocsPath: require('path').basename(__dirname) + '/docs',
34
34
 
35
- repoUrl: 'https://github.com/yosiat/panko_serializer',
35
+ repoUrl: 'https://github.com/panko-serializer/panko_serializer',
36
36
  projectName: 'panko_serializer',
37
- organizationName: 'yosiat',
37
+ organizationName: 'panko-serializer',
38
+ cname: 'panko.dev',
38
39
 
39
40
  headerLinks: [
40
41
  {doc: 'index', label: 'Docs'},
@@ -9,7 +9,13 @@ static ID delegate_hash_id;
9
9
  static ID value_before_type_cast_id;
10
10
  static ID type_id;
11
11
 
12
- VALUE panko_read_lazy_attributes_hash(VALUE object) {
12
+ static bool type_detection_ran = false;
13
+ static bool is_lazy_attributes_set_defined = false;
14
+
15
+ /***
16
+ * Returns ActiveModel::LazyAttributeSet or ActiveModel::LazyAttributesHash
17
+ */
18
+ VALUE panko_read_attributes_container(VALUE object) {
13
19
  volatile VALUE attributes_set, lazy_attributes_hash;
14
20
 
15
21
  attributes_set = rb_ivar_get(object, attributes_id);
@@ -17,6 +23,10 @@ VALUE panko_read_lazy_attributes_hash(VALUE object) {
17
23
  return Qnil;
18
24
  }
19
25
 
26
+ if (is_lazy_attributes_set_defined) {
27
+ return attributes_set;
28
+ }
29
+
20
30
  lazy_attributes_hash = rb_ivar_get(attributes_set, attributes_id);
21
31
  return lazy_attributes_hash;
22
32
  }
@@ -41,23 +51,32 @@ struct attributes init_context(VALUE obj) {
41
51
 
42
52
  attributes_ctx.tryToReadFromAdditionalTypes = false;
43
53
 
44
- volatile VALUE lazy_attributes_hash = panko_read_lazy_attributes_hash(obj);
54
+ volatile VALUE attributes_container = panko_read_attributes_container(obj);
45
55
 
46
- if (RB_TYPE_P(lazy_attributes_hash, T_HASH)) {
47
- attributes_ctx.attributes_hash = lazy_attributes_hash;
56
+ if (RB_TYPE_P(attributes_container, T_HASH)) {
57
+ attributes_ctx.attributes_hash = attributes_container;
48
58
  } else {
49
- volatile VALUE delegate_hash =
50
- rb_ivar_get(lazy_attributes_hash, delegate_hash_id);
59
+ if(is_lazy_attributes_set_defined == false) {
60
+ volatile VALUE delegate_hash =
61
+ rb_ivar_get(attributes_container, delegate_hash_id);
62
+
63
+ if (PANKO_EMPTY_HASH(delegate_hash) == false) {
64
+ attributes_ctx.attributes_hash = delegate_hash;
65
+ }
66
+ } else {
67
+ volatile VALUE attributes_hash =
68
+ rb_ivar_get(attributes_container, attributes_id);
51
69
 
52
- if (PANKO_EMPTY_HASH(delegate_hash) == false) {
53
- attributes_ctx.attributes_hash = delegate_hash;
70
+ if (PANKO_EMPTY_HASH(attributes_hash) == false) {
71
+ attributes_ctx.attributes_hash = attributes_hash;
72
+ }
54
73
  }
55
74
 
56
- attributes_ctx.types = rb_ivar_get(lazy_attributes_hash, types_id);
57
- attributes_ctx.values = rb_ivar_get(lazy_attributes_hash, values_id);
75
+ attributes_ctx.types = rb_ivar_get(attributes_container, types_id);
76
+ attributes_ctx.values = rb_ivar_get(attributes_container, values_id);
58
77
 
59
78
  attributes_ctx.additional_types =
60
- rb_ivar_get(lazy_attributes_hash, additional_types_id);
79
+ rb_ivar_get(attributes_container, additional_types_id);
61
80
  attributes_ctx.tryToReadFromAdditionalTypes =
62
81
  PANKO_EMPTY_HASH(attributes_ctx.additional_types) == false;
63
82
  }
@@ -107,8 +126,30 @@ VALUE read_attribute(struct attributes attributes_ctx, Attribute attribute, VALU
107
126
  return value;
108
127
  }
109
128
 
129
+ VALUE detect_active_model_changes(VALUE v) {
130
+ if (type_detection_ran == true) {
131
+ return Qundef;
132
+ }
133
+
134
+ type_detection_ran = true;
135
+
136
+ volatile VALUE active_model_type =
137
+ rb_const_get_at(rb_cObject, rb_intern("ActiveModel"));
138
+
139
+ is_lazy_attributes_set_defined =
140
+ rb_const_defined(active_model_type, rb_intern("LazyAttributeSet")) > 0;
141
+
142
+ return Qundef;
143
+ }
144
+
110
145
  void active_record_attributes_writer(VALUE obj, VALUE attributes,
111
146
  EachAttributeFunc write_value, VALUE writer) {
147
+ if (type_detection_ran == false) {
148
+ // If ActiveModel can't be found it will throw error
149
+ int isErrored;
150
+ rb_protect(detect_active_model_changes, Qnil, &isErrored);
151
+ }
152
+
112
153
  long i;
113
154
  struct attributes attributes_ctx = init_context(obj);
114
155
  volatile VALUE record_class = CLASS_OF(obj);
@@ -13,6 +13,7 @@ VALUE init_types(VALUE v) {
13
13
 
14
14
  volatile VALUE ar_type =
15
15
  rb_const_get_at(rb_cObject, rb_intern("ActiveRecord"));
16
+
16
17
  ar_base_type = rb_const_get_at(ar_type, rb_intern("Base"));
17
18
 
18
19
  hash_type = rb_const_get_at(rb_cObject, rb_intern("Hash"));
@@ -25,11 +26,13 @@ AttributesWriter create_attributes_writer(VALUE object) {
25
26
  int isErrored;
26
27
  rb_protect(init_types, Qnil, &isErrored);
27
28
 
29
+
28
30
  if (ar_base_type != Qundef &&
29
31
  rb_obj_is_kind_of(object, ar_base_type) == Qtrue) {
30
- return (AttributesWriter){
31
- .object_type = ActiveRecord,
32
- .write_attributes = active_record_attributes_writer};
32
+
33
+ return (AttributesWriter){
34
+ .object_type = ActiveRecord,
35
+ .write_attributes = active_record_attributes_writer};
33
36
  }
34
37
 
35
38
  if (rb_obj_is_kind_of(object, hash_type) == Qtrue) {
@@ -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
@@ -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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Panko
4
- VERSION = "0.7.3"
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)/})
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.3
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: 2020-02-11 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
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.10.0
27
- description:
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
@@ -67,7 +68,6 @@ files:
67
68
  - docs/docs/design-choices.md
68
69
  - docs/docs/getting-started.md
69
70
  - docs/docs/introduction.md
70
- - docs/docs/panko/docpress.json
71
71
  - docs/docs/performance.md
72
72
  - docs/docs/response-bag.md
73
73
  - docs/i18n/en.json
@@ -124,15 +124,15 @@ files:
124
124
  - lib/panko/version.rb
125
125
  - lib/panko_serializer.rb
126
126
  - panko_serializer.gemspec
127
- homepage: https://yosiat.github.io/panko_serializer/
127
+ homepage: https://panko.dev
128
128
  licenses:
129
129
  - MIT
130
130
  metadata:
131
- bug_tracker_uri: https://github.com/yosiat/panko_serializer/issues
132
- source_code_uri: https://github.com/yosiat/panko_serializer
133
- documentation_uri: https://yosiat.github.io/panko_serializer/
134
- changelog_uri: https://github.com/yosiat/panko_serializer/releases
135
- 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:
136
136
  rdoc_options: []
137
137
  require_paths:
138
138
  - lib
@@ -140,15 +140,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
140
  requirements:
141
141
  - - ">="
142
142
  - !ruby/object:Gem::Version
143
- version: 2.3.7
143
+ version: 2.5.0
144
144
  required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  requirements:
146
146
  - - ">="
147
147
  - !ruby/object:Gem::Version
148
148
  version: '0'
149
149
  requirements: []
150
- rubygems_version: 3.0.6
151
- signing_key:
150
+ rubygems_version: 3.1.4
151
+ signing_key:
152
152
  specification_version: 4
153
153
  summary: High Performance JSON Serialization for ActiveRecord & Ruby Objects
154
154
  test_files: []
@@ -1,37 +0,0 @@
1
- sudo: false
2
- cache: bundler
3
- language: ruby
4
- rvm:
5
- - 2.5.7
6
- - 2.6.5
7
- - 2.7.0
8
- - ruby-head
9
-
10
- env:
11
- global:
12
- - GIT_NAME: Travis CI
13
- - GIT_EMAIL: nobody@nobody.org
14
-
15
- matrix:
16
- - "RAILS_VERSION=4.2.0"
17
- - "RAILS_VERSION=5.2.0"
18
- - "RAILS_VERSION=6.0.0"
19
-
20
- install: bundle install --path=vendor/bundle --retry=3
21
-
22
- before_install:
23
- - gem install bundler
24
- - nvm install 12
25
-
26
- after_success:
27
- - cd docs/ && npm install
28
- - if [ -n "$TRAVIS_TAG" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then cd docs/ && npm install && GIT_USER=yosiat CURRENT_BRANCH=news-docs USE_SSH=true npm run publish-gh-pages; fi
29
- - bundle exec rake benchmarks
30
-
31
- matrix:
32
- exclude:
33
- - rvm: 2.7.0
34
- env: RAILS_VERSION=4.2.0
35
- allow_failures:
36
- - rvm: ruby-head
37
- fast_finish: true
@@ -1,4 +0,0 @@
1
- {
2
- "docs": "docs",
3
- "github": "yosiat/panko_serializer"
4
- }