panko_serializer 0.8.2 → 0.8.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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +6 -0
  3. data/.github/workflows/database_matrix.yml +85 -0
  4. data/.github/workflows/docs.yml +5 -5
  5. data/.github/workflows/lint.yml +10 -16
  6. data/.github/workflows/{ruby.yml → tests.yml} +9 -22
  7. data/.gitignore +2 -0
  8. data/.rubocop.yml +29 -21
  9. data/Appraisals +23 -12
  10. data/Gemfile +12 -3
  11. data/README.md +4 -4
  12. data/Rakefile +3 -1
  13. data/benchmarks/allocs.rb +2 -2
  14. data/benchmarks/benchmarking_support.rb +2 -1
  15. data/benchmarks/bm_ams_0_10.rb +3 -7
  16. data/benchmarks/bm_panko_json.rb +2 -6
  17. data/benchmarks/bm_panko_object.rb +2 -6
  18. data/benchmarks/bm_plain_object.rb +1 -4
  19. data/benchmarks/bm_serialization_descriptor.rb +1 -1
  20. data/benchmarks/bm_to_object.rb +2 -6
  21. data/benchmarks/profile.rb +2 -2
  22. data/benchmarks/sanity.rb +2 -6
  23. data/benchmarks/setup.rb +4 -3
  24. data/benchmarks/type_casts/support.rb +0 -1
  25. data/docs/docs/associations.md +28 -15
  26. data/docs/docs/attributes.md +33 -20
  27. data/docs/docs/design-choices.md +36 -35
  28. data/docs/docs/getting-started.md +13 -7
  29. data/docs/docs/introduction.md +6 -6
  30. data/docs/docs/performance.md +4 -5
  31. data/docs/docs/response-bag.md +13 -6
  32. data/docs/docusaurus.config.js +86 -0
  33. data/docs/package-lock.json +13999 -18188
  34. data/docs/package.json +10 -6
  35. data/docs/src/css/customTheme.css +9 -0
  36. data/docs/static/CNAME +1 -0
  37. data/ext/panko_serializer/attributes_writer/active_record.c +81 -77
  38. data/ext/panko_serializer/attributes_writer/active_record.h +2 -0
  39. data/ext/panko_serializer/attributes_writer/type_cast/type_cast.c +1 -1
  40. data/gemfiles/{6.1.0.gemfile → 7.2.0.gemfile} +17 -6
  41. data/gemfiles/7.2.0.gemfile.lock +221 -0
  42. data/gemfiles/{7.0.0.gemfile → 8.0.0.gemfile} +17 -6
  43. data/gemfiles/8.0.0.gemfile.lock +239 -0
  44. data/gemfiles/{7.1.0.gemfile → 8.1.0.gemfile} +17 -6
  45. data/gemfiles/8.1.0.gemfile.lock +248 -0
  46. data/lib/panko/version.rb +1 -1
  47. data/panko_serializer.gemspec +1 -1
  48. metadata +16 -21
  49. data/.standard.yml +0 -5
  50. data/docs/.DS_Store +0 -0
  51. data/docs/README.md +0 -198
  52. data/docs/core/Footer.js +0 -80
  53. data/docs/i18n/en.json +0 -50
  54. data/docs/siteConfig.js +0 -80
  55. data/gemfiles/6.1.0.gemfile.lock +0 -166
  56. data/gemfiles/7.0.0.gemfile.lock +0 -164
  57. data/gemfiles/7.1.0.gemfile.lock +0 -181
data/docs/README.md DELETED
@@ -1,198 +0,0 @@
1
- This website was created with [Docusaurus](https://docusaurus.io/).
2
-
3
- # What's In This Document
4
-
5
- - [Get Started in 5 Minutes](#get-started-in-5-minutes)
6
- - [Directory Structure](#directory-structure)
7
- - [Editing Content](#editing-content)
8
- - [Adding Content](#adding-content)
9
- - [Full Documentation](#full-documentation)
10
-
11
- # Get Started in 5 Minutes
12
-
13
- 1. Make sure all the dependencies for the website are installed:
14
-
15
- ```sh
16
- # Install dependencies
17
- $ yarn
18
- ```
19
-
20
- 2. Run your dev server:
21
-
22
- ```sh
23
- # Start the site
24
- $ yarn start
25
- ```
26
-
27
- ## Directory Structure
28
-
29
- Your project file structure should look something like this
30
-
31
- ```
32
- my-docusaurus/
33
- docs/
34
- doc-1.md
35
- doc-2.md
36
- doc-3.md
37
- website/
38
- blog/
39
- 2016-3-11-oldest-post.md
40
- 2017-10-24-newest-post.md
41
- core/
42
- node_modules/
43
- pages/
44
- static/
45
- css/
46
- img/
47
- package.json
48
- sidebars.json
49
- siteConfig.js
50
- ```
51
-
52
- # Editing Content
53
-
54
- ## Editing an existing docs page
55
-
56
- Edit docs by navigating to `docs/` and editing the corresponding document:
57
-
58
- `docs/doc-to-be-edited.md`
59
-
60
- ```markdown
61
- ---
62
- id: page-needs-edit
63
- title: This Doc Needs To Be Edited
64
- ---
65
-
66
- Edit me...
67
- ```
68
-
69
- For more information about docs, click [here](https://docusaurus.io/docs/en/navigation)
70
-
71
- ## Editing an existing blog post
72
-
73
- Edit blog posts by navigating to `website/blog` and editing the corresponding post:
74
-
75
- `website/blog/post-to-be-edited.md`
76
-
77
- ```markdown
78
- ---
79
- id: post-needs-edit
80
- title: This Blog Post Needs To Be Edited
81
- ---
82
-
83
- Edit me...
84
- ```
85
-
86
- For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog)
87
-
88
- # Adding Content
89
-
90
- ## Adding a new docs page to an existing sidebar
91
-
92
- 1. Create the doc as a new markdown file in `/docs`, example `docs/newly-created-doc.md`:
93
-
94
- ```md
95
- ---
96
- id: newly-created-doc
97
- title: This Doc Needs To Be Edited
98
- ---
99
-
100
- My new content here..
101
- ```
102
-
103
- 1. Refer to that doc's ID in an existing sidebar in `website/sidebars.json`:
104
-
105
- ```javascript
106
- // Add newly-created-doc to the Getting Started category of docs
107
- {
108
- "docs": {
109
- "Getting Started": [
110
- "quick-start",
111
- "newly-created-doc" // new doc here
112
- ],
113
- ...
114
- },
115
- ...
116
- }
117
- ```
118
-
119
- For more information about adding new docs, click [here](https://docusaurus.io/docs/en/navigation)
120
-
121
- ## Adding a new blog post
122
-
123
- 1. Make sure there is a header link to your blog in `website/siteConfig.js`:
124
-
125
- `website/siteConfig.js`
126
-
127
- ```javascript
128
- headerLinks: [
129
- ...
130
- { blog: true, label: 'Blog' },
131
- ...
132
- ]
133
- ```
134
-
135
- 2. Create the blog post with the format `YYYY-MM-DD-My-Blog-Post-Title.md` in `website/blog`:
136
-
137
- `website/blog/2018-05-21-New-Blog-Post.md`
138
-
139
- ```markdown
140
- ---
141
- author: Frank Li
142
- authorURL: https://twitter.com/foobarbaz
143
- authorFBID: 503283835
144
- title: New Blog Post
145
- ---
146
-
147
- Lorem Ipsum...
148
- ```
149
-
150
- For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog)
151
-
152
- ## Adding items to your site's top navigation bar
153
-
154
- 1. Add links to docs, custom pages or external links by editing the headerLinks field of `website/siteConfig.js`:
155
-
156
- `website/siteConfig.js`
157
-
158
- ```javascript
159
- {
160
- headerLinks: [
161
- ...
162
- /* you can add docs */
163
- { doc: 'my-examples', label: 'Examples' },
164
- /* you can add custom pages */
165
- { page: 'help', label: 'Help' },
166
- /* you can add external links */
167
- { href: 'https://github.com/facebook/docusaurus', label: 'GitHub' },
168
- ...
169
- ],
170
- ...
171
- }
172
- ```
173
-
174
- For more information about the navigation bar, click [here](https://docusaurus.io/docs/en/navigation)
175
-
176
- ## Adding custom pages
177
-
178
- 1. Docusaurus uses React components to build pages. The components are saved as .js files in `website/pages/en`:
179
- 1. If you want your page to show up in your navigation header, you will need to update `website/siteConfig.js` to add to the `headerLinks` element:
180
-
181
- `website/siteConfig.js`
182
-
183
- ```javascript
184
- {
185
- headerLinks: [
186
- ...
187
- { page: 'my-new-custom-page', label: 'My New Custom Page' },
188
- ...
189
- ],
190
- ...
191
- }
192
- ```
193
-
194
- For more information about custom pages, click [here](https://docusaurus.io/docs/en/custom-pages).
195
-
196
- # Full Documentation
197
-
198
- Full documentation can be found on the [website](https://docusaurus.io/).
data/docs/core/Footer.js DELETED
@@ -1,80 +0,0 @@
1
- /**
2
- * Copyright (c) 2017-present, Facebook, Inc.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- const React = require('react');
9
-
10
- class Footer extends React.Component {
11
- docUrl(doc, language) {
12
- const baseUrl = this.props.config.baseUrl;
13
- const docsUrl = this.props.config.docsUrl;
14
- const docsPart = `${docsUrl ? `${docsUrl}/` : ''}`;
15
- return `${baseUrl}${docsPart}${doc}`;
16
- }
17
-
18
- pageUrl(doc, language) {
19
- const baseUrl = this.props.config.baseUrl;
20
- return baseUrl + (language ? `${language}/` : '') + doc;
21
- }
22
-
23
- render() {
24
- return (
25
- <footer className="nav-footer" id="footer">
26
- <section className="sitemap">
27
- <a href={this.props.config.baseUrl} className="nav-home">
28
- {this.props.config.footerIcon && (
29
- <img
30
- src={this.props.config.baseUrl + this.props.config.footerIcon}
31
- alt={this.props.config.title}
32
- width="66"
33
- height="58"
34
- />
35
- )}
36
- </a>
37
- <div>
38
- <h5>Docs</h5>
39
- <a href={this.docUrl('getting-started.html', this.props.language)}>
40
- Getting Started
41
- </a>
42
- <a href={this.docUrl('attributes.html', this.props.language)}>
43
- Guides
44
- </a>
45
- <a href={this.docUrl('performance.html', this.props.language)}>
46
- Performance
47
- </a>
48
- </div>
49
- <div>
50
- <h5>More</h5>
51
- <a href="https://github.com/yosiat/panko_serializer">GitHub</a>
52
- <a
53
- className="github-button"
54
- href={this.props.config.repoUrl}
55
- data-icon="octicon-star"
56
- data-count-href="/yosiat/panko_serializer/stargazers"
57
- data-show-count="true"
58
- data-count-aria-label="# stargazers on GitHub"
59
- aria-label="Star this project on GitHub">
60
- Star
61
- </a>
62
- {this.props.config.twitterUsername && (
63
- <div className="social">
64
- <a
65
- href={`https://twitter.com/${this.props.config.twitterUsername}`}
66
- className="twitter-follow-button">
67
- Follow @{this.props.config.twitterUsername}
68
- </a>
69
- </div>
70
- )}
71
- </div>
72
- </section>
73
-
74
- <section className="copyright">{this.props.config.copyright}</section>
75
- </footer>
76
- );
77
- }
78
- }
79
-
80
- module.exports = Footer;
data/docs/i18n/en.json DELETED
@@ -1,50 +0,0 @@
1
- {
2
- "_comment": "This file is auto-generated by write-translations.js",
3
- "localized-strings": {
4
- "next": "Next",
5
- "previous": "Previous",
6
- "tagline": "High Performance JSON Serialization for ActiveRecord & Ruby Objects",
7
- "docs": {
8
- "associations": {
9
- "title": "Associations",
10
- "sidebar_label": "Associations"
11
- },
12
- "attributes": {
13
- "title": "Attributes",
14
- "sidebar_label": "Attributes"
15
- },
16
- "design-choices": {
17
- "title": "Design Choices",
18
- "sidebar_label": "Design Choices"
19
- },
20
- "getting-started": {
21
- "title": "Getting Started",
22
- "sidebar_label": "Getting Started"
23
- },
24
- "index": {
25
- "title": "Introduction",
26
- "sidebar_label": "Introduction"
27
- },
28
- "performance": {
29
- "title": "Performance",
30
- "sidebar_label": "Performance"
31
- },
32
- "response-bag": {
33
- "title": "Response",
34
- "sidebar_label": "Response"
35
- }
36
- },
37
- "links": {
38
- "Docs": "Docs"
39
- },
40
- "categories": {
41
- "Panko": "Panko",
42
- "Reference": "Reference"
43
- }
44
- },
45
- "pages-strings": {
46
- "Help Translate|recruit community translators for your project": "Help Translate",
47
- "Edit this Doc|recruitment message asking to edit the doc source": "Edit",
48
- "Translate this Doc|recruitment message asking to translate the docs": "Translate"
49
- }
50
- }
data/docs/siteConfig.js DELETED
@@ -1,80 +0,0 @@
1
- /**
2
- * Copyright (c) 2017-present, Facebook, Inc.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- // See https://docusaurus.io/docs/site-config for all the possible
9
- // site configuration options.
10
-
11
-
12
- // List of projects/orgs using your project for the users page.
13
- const users = [
14
- {
15
- caption: 'User1',
16
- // You will need to prepend the image path with your baseUrl
17
- // if it is not '/', like: '/test-site/img/image.jpg'.
18
- image: '/img/undraw_open_source.svg',
19
- infoLink: 'https://www.facebook.com',
20
- pinned: true,
21
- },
22
- ];
23
-
24
- const siteConfig = {
25
- title: 'Panko Serializers',
26
- tagline: 'High Performance JSON Serialization for ActiveRecord & Ruby Objects',
27
- url: 'https://panko.dev',
28
- baseUrl: '/',
29
- repoPath: 'yosiat/panko_serializer',
30
- // For github.io type URLs, you would set the url and baseUrl like:
31
- // url: 'https://facebook.github.io',
32
- // baseUrl: '/test-site/',
33
- customDocsPath: require('path').basename(__dirname) + '/docs',
34
-
35
- repoUrl: 'https://github.com/yosiat/panko_serializer',
36
- projectName: 'panko_serializer',
37
- organizationName: 'yosiat',
38
- cname: 'panko.dev',
39
-
40
- headerLinks: [
41
- {doc: 'index', label: 'Docs'},
42
- ],
43
-
44
- /* Colors for website */
45
- colors: {
46
- //primaryColor: '#3F4C6B',
47
- primaryColor: '#B02B2C',
48
- secondaryColor: '#C3D9FF',
49
- },
50
-
51
- copyright: `Copyright © ${new Date().getFullYear()} Panko Serializer`,
52
-
53
- usePrims: ['ruby'],
54
- highlight: {
55
- // Highlight.js theme to use for syntax highlighting in code blocks.
56
- theme: 'atom-one-dark',
57
- },
58
-
59
- // Add custom scripts here that would be placed in <script> tags.
60
- scripts: ['https://buttons.github.io/buttons.js'],
61
-
62
- // On page navigation for the current documentation page.
63
- onPageNav: 'separate',
64
- // No .html extensions for paths.
65
- cleanUrl: true,
66
-
67
- // Open Graph and Twitter card images.
68
- ogImage: 'img/undraw_online.svg',
69
- twitterImage: 'img/undraw_tweetstorm.svg',
70
-
71
- // Show documentation's last contributor's name.
72
- // enableUpdateBy: true,
73
-
74
- // Show documentation's last update time.
75
- // enableUpdateTime: true,
76
-
77
- // You may provide arbitrary config keys to be used as needed by your
78
- };
79
-
80
- module.exports = siteConfig;
@@ -1,166 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- panko_serializer (0.8.1)
5
- activesupport
6
- oj (> 3.11.0, < 4.0.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- actionpack (6.1.7.7)
12
- actionview (= 6.1.7.7)
13
- activesupport (= 6.1.7.7)
14
- rack (~> 2.0, >= 2.0.9)
15
- rack-test (>= 0.6.3)
16
- rails-dom-testing (~> 2.0)
17
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
18
- actionview (6.1.7.7)
19
- activesupport (= 6.1.7.7)
20
- builder (~> 3.1)
21
- erubi (~> 1.4)
22
- rails-dom-testing (~> 2.0)
23
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
24
- active_model_serializers (0.10.14)
25
- actionpack (>= 4.1)
26
- activemodel (>= 4.1)
27
- case_transform (>= 0.2)
28
- jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
29
- activemodel (6.1.7.7)
30
- activesupport (= 6.1.7.7)
31
- activerecord (6.1.7.7)
32
- activemodel (= 6.1.7.7)
33
- activesupport (= 6.1.7.7)
34
- activesupport (6.1.7.7)
35
- concurrent-ruby (~> 1.0, >= 1.0.2)
36
- i18n (>= 1.6, < 2)
37
- minitest (>= 5.1)
38
- tzinfo (~> 2.0)
39
- zeitwerk (~> 2.3)
40
- appraisal (2.5.0)
41
- bundler
42
- rake
43
- thor (>= 0.14.0)
44
- ast (2.4.2)
45
- benchmark-ips (2.13.0)
46
- builder (3.2.4)
47
- byebug (11.1.3)
48
- case_transform (0.2)
49
- activesupport
50
- concurrent-ruby (1.2.3)
51
- crass (1.0.6)
52
- diff-lcs (1.5.1)
53
- erubi (1.12.0)
54
- faker (3.2.3)
55
- i18n (>= 1.8.11, < 2)
56
- i18n (1.14.4)
57
- concurrent-ruby (~> 1.0)
58
- json (2.7.1)
59
- jsonapi-renderer (0.2.2)
60
- language_server-protocol (3.17.0.3)
61
- lint_roller (1.1.0)
62
- loofah (2.22.0)
63
- crass (~> 1.0.2)
64
- nokogiri (>= 1.12.0)
65
- memory_profiler (1.0.1)
66
- minitest (5.22.3)
67
- nokogiri (1.16.3-arm64-darwin)
68
- racc (~> 1.4)
69
- oj (3.16.1)
70
- parallel (1.24.0)
71
- parser (3.3.0.5)
72
- ast (~> 2.4.1)
73
- racc
74
- pg (1.5.5)
75
- racc (1.7.3)
76
- rack (2.2.8.1)
77
- rack-test (2.1.0)
78
- rack (>= 1.3)
79
- rails-dom-testing (2.2.0)
80
- activesupport (>= 5.0.0)
81
- minitest
82
- nokogiri (>= 1.6)
83
- rails-html-sanitizer (1.6.0)
84
- loofah (~> 2.21)
85
- nokogiri (~> 1.14)
86
- rainbow (3.1.1)
87
- rake (13.2.1)
88
- rake-compiler (1.2.1)
89
- rake
90
- regexp_parser (2.9.0)
91
- rexml (3.2.6)
92
- rspec (3.13.0)
93
- rspec-core (~> 3.13.0)
94
- rspec-expectations (~> 3.13.0)
95
- rspec-mocks (~> 3.13.0)
96
- rspec-core (3.13.0)
97
- rspec-support (~> 3.13.0)
98
- rspec-expectations (3.13.0)
99
- diff-lcs (>= 1.2.0, < 2.0)
100
- rspec-support (~> 3.13.0)
101
- rspec-mocks (3.13.0)
102
- diff-lcs (>= 1.2.0, < 2.0)
103
- rspec-support (~> 3.13.0)
104
- rspec-support (3.13.1)
105
- rubocop (1.62.1)
106
- json (~> 2.3)
107
- language_server-protocol (>= 3.17.0)
108
- parallel (~> 1.10)
109
- parser (>= 3.3.0.2)
110
- rainbow (>= 2.2.2, < 4.0)
111
- regexp_parser (>= 1.8, < 3.0)
112
- rexml (>= 3.2.5, < 4.0)
113
- rubocop-ast (>= 1.31.1, < 2.0)
114
- ruby-progressbar (~> 1.7)
115
- unicode-display_width (>= 2.4.0, < 3.0)
116
- rubocop-ast (1.31.2)
117
- parser (>= 3.3.0.4)
118
- rubocop-performance (1.20.2)
119
- rubocop (>= 1.48.1, < 2.0)
120
- rubocop-ast (>= 1.30.0, < 2.0)
121
- ruby-progressbar (1.13.0)
122
- sqlite3 (1.7.3-arm64-darwin)
123
- standard (1.34.0)
124
- language_server-protocol (~> 3.17.0.2)
125
- lint_roller (~> 1.0)
126
- rubocop (~> 1.60)
127
- standard-custom (~> 1.0.0)
128
- standard-performance (~> 1.3)
129
- standard-custom (1.0.2)
130
- lint_roller (~> 1.0)
131
- rubocop (~> 1.50)
132
- standard-performance (1.3.1)
133
- lint_roller (~> 1.1)
134
- rubocop-performance (~> 1.20.2)
135
- terminal-table (3.0.2)
136
- unicode-display_width (>= 1.1.1, < 3)
137
- thor (1.3.1)
138
- tzinfo (2.0.6)
139
- concurrent-ruby (~> 1.0)
140
- unicode-display_width (2.5.0)
141
- zeitwerk (2.6.13)
142
-
143
- PLATFORMS
144
- arm64-darwin-23
145
-
146
- DEPENDENCIES
147
- active_model_serializers (~> 0.10)
148
- activemodel (~> 6.1.0)
149
- activerecord (~> 6.1.0)
150
- activesupport (~> 6.1.0)
151
- appraisal
152
- benchmark-ips
153
- byebug
154
- faker
155
- memory_profiler
156
- panko_serializer!
157
- pg (>= 0.18, < 2.0)
158
- rake
159
- rake-compiler
160
- rspec (~> 3.0)
161
- sqlite3 (~> 1.4)
162
- standard
163
- terminal-table
164
-
165
- BUNDLED WITH
166
- 2.4.6