ar_serializer 1.2.0 → 1.2.2
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/test.yml +3 -2
- data/.gitignore +2 -0
- data/Gemfile +1 -0
- data/ar_serializer.gemspec +1 -1
- data/bin/console +2 -2
- data/gemfiles/Gemfile-rails-6 +7 -1
- data/gemfiles/Gemfile-rails-7 +2 -1
- data/gemfiles/Gemfile-rails-8 +9 -0
- data/lib/ar_serializer/graphql/parser.rb +4 -4
- data/lib/ar_serializer/graphql/types.rb +2 -2
- data/lib/ar_serializer/version.rb +1 -1
- metadata +4 -18
- data/Gemfile.lock +0 -56
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de3115e702a13b938be93babf38a51d84da70ed9b69f24f4e785677b8a69c69a
|
4
|
+
data.tar.gz: 640e1bd6f87589be333e2f76885a351081461a95955cb746659dd77dcf1b0ad8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5943c272b4a00c091fc002bec7aaa0c5f4ed4da98f0050da4b19fb7cbc3622e0dc539f9ef2c0f661bc7e0718c24f13f2ee84957392d5ea6f7bb12a4652cd2083
|
7
|
+
data.tar.gz: 39183107e382d5d8dbbfe157feba890e3d4a7b47bbadff80d524fa193db8d812125f44786a6056009b0bae57d52b39dd6f9b4e6aff5c716913bf055467f720ae
|
data/.github/workflows/test.yml
CHANGED
@@ -5,13 +5,14 @@ jobs:
|
|
5
5
|
strategy:
|
6
6
|
fail-fast: false
|
7
7
|
matrix:
|
8
|
-
ruby: [ '2
|
8
|
+
ruby: [ '3.2', '3.3', '3.4' ]
|
9
9
|
gemfiles:
|
10
10
|
- gemfiles/Gemfile-rails-6
|
11
11
|
- gemfiles/Gemfile-rails-7
|
12
|
+
- gemfiles/Gemfile-rails-8
|
12
13
|
runs-on: ubuntu-latest
|
13
14
|
steps:
|
14
|
-
- uses: actions/checkout@
|
15
|
+
- uses: actions/checkout@v4
|
15
16
|
- uses: ruby/setup-ruby@v1
|
16
17
|
with:
|
17
18
|
ruby-version: ${{ matrix.ruby }}
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/ar_serializer.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
|
24
24
|
spec.add_dependency 'activerecord'
|
25
25
|
spec.add_dependency 'top_n_loader'
|
26
|
-
%w[rake
|
26
|
+
%w[rake sqlite3 minitest simplecov].each do |gem_name|
|
27
27
|
spec.add_development_dependency gem_name
|
28
28
|
end
|
29
29
|
end
|
data/bin/console
CHANGED
data/gemfiles/Gemfile-rails-6
CHANGED
@@ -5,4 +5,10 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
|
5
5
|
# Specify your gem's dependencies in ar_serializer.gemspec
|
6
6
|
gemspec path: ".."
|
7
7
|
|
8
|
-
gem "
|
8
|
+
gem "bigdecimal"
|
9
|
+
gem "base64"
|
10
|
+
gem "mutex_m"
|
11
|
+
gem "logger"
|
12
|
+
gem "concurrent-ruby", "1.3.4"
|
13
|
+
gem "sqlite3", "~> 1.4"
|
14
|
+
gem "activerecord", "~> 6.0"
|
data/gemfiles/Gemfile-rails-7
CHANGED
@@ -73,7 +73,7 @@ class ArSerializer::GraphQL::Parser
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def parse_name
|
76
|
-
name = ''
|
76
|
+
name = +''
|
77
77
|
name << chars.shift while chars.first && chars.first =~ /[a-zA-Z0-9_]/
|
78
78
|
name unless name.empty?
|
79
79
|
end
|
@@ -94,7 +94,7 @@ class ArSerializer::GraphQL::Parser
|
|
94
94
|
case chars.first
|
95
95
|
when '"'
|
96
96
|
chars.shift
|
97
|
-
s = ''
|
97
|
+
s = +''
|
98
98
|
loop do
|
99
99
|
if chars.first == '\\'
|
100
100
|
s << chars.shift
|
@@ -132,7 +132,7 @@ class ArSerializer::GraphQL::Parser
|
|
132
132
|
name = parse_name
|
133
133
|
variables[name]
|
134
134
|
when /[0-9+\-]/
|
135
|
-
s = ''
|
135
|
+
s = +''
|
136
136
|
s << chars.shift while chars.first.match?(/[0-9.e+\-]/)
|
137
137
|
s.match?(/\.|e/) ? s.to_f : s.to_i
|
138
138
|
when /[a-zA-Z]/
|
@@ -216,7 +216,7 @@ class ArSerializer::GraphQL::Parser
|
|
216
216
|
def parse_definition
|
217
217
|
type = parse_name
|
218
218
|
consume_blank
|
219
|
-
args_text = ''
|
219
|
+
args_text = +''
|
220
220
|
if type
|
221
221
|
args_text << chars.shift while chars.first && chars.first != '{'
|
222
222
|
end
|
@@ -50,7 +50,7 @@ module ArSerializer::GraphQL
|
|
50
50
|
arg_types = field.arguments.map do |key, type|
|
51
51
|
"#{key}: #{TypeClass.from(type).ts_type}"
|
52
52
|
end
|
53
|
-
"{ #{arg_types.join '; '} }"
|
53
|
+
arg_types.empty? ? 'Record<string, never>' : "{ #{arg_types.join '; '} }"
|
54
54
|
end
|
55
55
|
|
56
56
|
serializer_field :name, :args
|
@@ -164,7 +164,7 @@ module ArSerializer::GraphQL
|
|
164
164
|
if type.size == 1
|
165
165
|
ListTypeClass.new type.first, only, except
|
166
166
|
elsif type.size == 2 && type.last.nil?
|
167
|
-
OptionalTypeClass.new type
|
167
|
+
OptionalTypeClass.new type, only, except
|
168
168
|
else
|
169
169
|
OrTypeClass.new type, only, except
|
170
170
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ar_serializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tompng
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: pry
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: sqlite3
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,7 +105,6 @@ files:
|
|
119
105
|
- ".gitignore"
|
120
106
|
- ".travis.yml"
|
121
107
|
- Gemfile
|
122
|
-
- Gemfile.lock
|
123
108
|
- LICENSE.txt
|
124
109
|
- README.md
|
125
110
|
- Rakefile
|
@@ -128,6 +113,7 @@ files:
|
|
128
113
|
- bin/setup
|
129
114
|
- gemfiles/Gemfile-rails-6
|
130
115
|
- gemfiles/Gemfile-rails-7
|
116
|
+
- gemfiles/Gemfile-rails-8
|
131
117
|
- lib/ar_serializer.rb
|
132
118
|
- lib/ar_serializer/error.rb
|
133
119
|
- lib/ar_serializer/field.rb
|
@@ -156,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
142
|
- !ruby/object:Gem::Version
|
157
143
|
version: '0'
|
158
144
|
requirements: []
|
159
|
-
rubygems_version: 3.
|
145
|
+
rubygems_version: 3.5.9
|
160
146
|
signing_key:
|
161
147
|
specification_version: 4
|
162
148
|
summary: ActiveRecord serializer, avoid N+1
|
data/Gemfile.lock
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
ar_serializer (1.2.0)
|
5
|
-
activerecord
|
6
|
-
top_n_loader
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: https://rubygems.org/
|
10
|
-
specs:
|
11
|
-
activemodel (7.0.2.3)
|
12
|
-
activesupport (= 7.0.2.3)
|
13
|
-
activerecord (7.0.2.3)
|
14
|
-
activemodel (= 7.0.2.3)
|
15
|
-
activesupport (= 7.0.2.3)
|
16
|
-
activesupport (7.0.2.3)
|
17
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
18
|
-
i18n (>= 1.6, < 2)
|
19
|
-
minitest (>= 5.1)
|
20
|
-
tzinfo (~> 2.0)
|
21
|
-
coderay (1.1.3)
|
22
|
-
concurrent-ruby (1.1.10)
|
23
|
-
docile (1.4.0)
|
24
|
-
i18n (1.10.0)
|
25
|
-
concurrent-ruby (~> 1.0)
|
26
|
-
method_source (1.0.0)
|
27
|
-
minitest (5.15.0)
|
28
|
-
pry (0.14.1)
|
29
|
-
coderay (~> 1.1)
|
30
|
-
method_source (~> 1.0)
|
31
|
-
rake (13.0.6)
|
32
|
-
simplecov (0.21.2)
|
33
|
-
docile (~> 1.1)
|
34
|
-
simplecov-html (~> 0.11)
|
35
|
-
simplecov_json_formatter (~> 0.1)
|
36
|
-
simplecov-html (0.12.3)
|
37
|
-
simplecov_json_formatter (0.1.4)
|
38
|
-
sqlite3 (1.4.2)
|
39
|
-
top_n_loader (1.0.2)
|
40
|
-
activerecord
|
41
|
-
tzinfo (2.0.4)
|
42
|
-
concurrent-ruby (~> 1.0)
|
43
|
-
|
44
|
-
PLATFORMS
|
45
|
-
ruby
|
46
|
-
|
47
|
-
DEPENDENCIES
|
48
|
-
ar_serializer!
|
49
|
-
minitest
|
50
|
-
pry
|
51
|
-
rake
|
52
|
-
simplecov
|
53
|
-
sqlite3
|
54
|
-
|
55
|
-
BUNDLED WITH
|
56
|
-
2.3.3
|