panko_serializer 0.8.2 → 0.8.3
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/dependabot.yml +6 -0
- data/.github/workflows/docs.yml +4 -4
- data/.github/workflows/lint.yml +8 -14
- data/.github/workflows/ruby.yml +11 -7
- data/.gitignore +2 -0
- data/.rubocop.yml +29 -21
- data/Appraisals +20 -8
- data/Gemfile +11 -3
- data/README.md +3 -3
- data/Rakefile +3 -1
- data/benchmarks/allocs.rb +2 -2
- data/benchmarks/benchmarking_support.rb +2 -1
- data/benchmarks/bm_ams_0_10.rb +3 -7
- data/benchmarks/bm_panko_json.rb +2 -6
- data/benchmarks/bm_panko_object.rb +2 -6
- data/benchmarks/bm_plain_object.rb +1 -4
- data/benchmarks/bm_serialization_descriptor.rb +1 -1
- data/benchmarks/bm_to_object.rb +2 -6
- data/benchmarks/profile.rb +2 -2
- data/benchmarks/sanity.rb +2 -6
- data/benchmarks/setup.rb +4 -3
- data/benchmarks/type_casts/support.rb +0 -1
- data/docs/docs/associations.md +19 -6
- data/docs/docs/attributes.md +29 -23
- data/docs/docs/design-choices.md +28 -27
- data/docs/docs/getting-started.md +9 -3
- data/docs/docs/introduction.md +5 -5
- data/docs/docs/performance.md +0 -1
- data/docs/docs/response-bag.md +8 -1
- data/docs/docusaurus.config.js +86 -0
- data/docs/package-lock.json +12607 -18674
- data/docs/package.json +14 -7
- data/docs/src/css/customTheme.css +9 -0
- data/docs/static/CNAME +1 -0
- data/ext/panko_serializer/attributes_writer/active_record.c +103 -72
- data/ext/panko_serializer/attributes_writer/active_record.h +2 -0
- data/gemfiles/7.0.0.gemfile +12 -3
- data/gemfiles/7.0.0.gemfile.lock +62 -50
- data/gemfiles/7.1.0.gemfile +15 -6
- data/gemfiles/7.1.0.gemfile.lock +76 -59
- data/gemfiles/{6.1.0.gemfile → 7.2.0.gemfile} +15 -6
- data/gemfiles/{6.1.0.gemfile.lock → 7.2.0.gemfile.lock} +97 -65
- data/gemfiles/8.0.0.gemfile +39 -0
- data/gemfiles/8.0.0.gemfile.lock +219 -0
- data/lib/panko/version.rb +1 -1
- data/panko_serializer.gemspec +1 -1
- metadata +12 -12
- data/.standard.yml +0 -5
- data/docs/.DS_Store +0 -0
- data/docs/README.md +0 -198
- data/docs/core/Footer.js +0 -80
- data/docs/i18n/en.json +0 -50
- data/docs/siteConfig.js +0 -80
data/docs/package.json
CHANGED
@@ -1,14 +1,21 @@
|
|
1
1
|
{
|
2
2
|
"scripts": {
|
3
3
|
"examples": "docusaurus-examples",
|
4
|
-
"start": "docusaurus
|
5
|
-
"build": "docusaurus
|
6
|
-
"publish-gh-pages": "docusaurus-publish",
|
4
|
+
"start": "docusaurus start",
|
5
|
+
"build": "docusaurus build",
|
7
6
|
"write-translations": "docusaurus-write-translations",
|
8
7
|
"version": "docusaurus-version",
|
9
|
-
"rename-version": "docusaurus-rename-version"
|
8
|
+
"rename-version": "docusaurus-rename-version",
|
9
|
+
"swizzle": "docusaurus swizzle",
|
10
|
+
"deploy": "docusaurus deploy",
|
11
|
+
"docusaurus": "docusaurus"
|
10
12
|
},
|
11
|
-
"devDependencies": {
|
12
|
-
|
13
|
+
"devDependencies": {},
|
14
|
+
"dependencies": {
|
15
|
+
"@docusaurus/core": "3.5.2",
|
16
|
+
"@docusaurus/preset-classic": "3.5.2",
|
17
|
+
"clsx": "^1.1.1",
|
18
|
+
"react": "^17.0.2",
|
19
|
+
"react-dom": "^17.0.2"
|
13
20
|
}
|
14
|
-
}
|
21
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
:root{
|
2
|
+
--ifm-color-primary-lightest: #D34A4B;
|
3
|
+
--ifm-color-primary-lighter: #CA3133;
|
4
|
+
--ifm-color-primary-light: #C22F30;
|
5
|
+
--ifm-color-primary: #B02B2C;
|
6
|
+
--ifm-color-primary-dark: #9E2728;
|
7
|
+
--ifm-color-primary-darker: #962525;
|
8
|
+
--ifm-color-primary-darkest: #7B1E1F;
|
9
|
+
}
|
data/docs/static/CNAME
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
panko.dev
|
@@ -9,79 +9,118 @@ static ID delegate_hash_id;
|
|
9
9
|
static ID value_before_type_cast_id;
|
10
10
|
static ID type_id;
|
11
11
|
|
12
|
-
static
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
VALUE
|
19
|
-
|
20
|
-
|
21
|
-
attributes_set = rb_ivar_get(object, attributes_id);
|
22
|
-
if (NIL_P(attributes_set)) {
|
23
|
-
return Qnil;
|
12
|
+
static ID fetch_id;
|
13
|
+
|
14
|
+
// ActiveRecord::Result::IndexedRow
|
15
|
+
static VALUE ar_result_indexed_row = Qundef;
|
16
|
+
static int fetched_ar_result_indexed_row = 0;
|
17
|
+
|
18
|
+
VALUE fetch_ar_result_indexed_row_type() {
|
19
|
+
if (fetched_ar_result_indexed_row == 1) {
|
20
|
+
return ar_result_indexed_row;
|
24
21
|
}
|
25
22
|
|
26
|
-
|
27
|
-
|
23
|
+
fetched_ar_result_indexed_row = 1;
|
24
|
+
|
25
|
+
VALUE ar, ar_result;
|
26
|
+
|
27
|
+
ar = rb_const_get_at(rb_cObject, rb_intern("ActiveRecord"));
|
28
|
+
|
29
|
+
// ActiveRecord::Result
|
30
|
+
ar_result = rb_const_get_at(ar, rb_intern("Result"));
|
31
|
+
|
32
|
+
if (rb_const_defined_at(ar_result, rb_intern("IndexedRow")) == (int)Qtrue) {
|
33
|
+
ar_result_indexed_row = rb_const_get_at(ar_result, rb_intern("IndexedRow"));
|
28
34
|
}
|
29
35
|
|
30
|
-
|
31
|
-
return lazy_attributes_hash;
|
36
|
+
return ar_result_indexed_row;
|
32
37
|
}
|
33
38
|
|
34
39
|
struct attributes {
|
40
|
+
// Hash
|
35
41
|
VALUE attributes_hash;
|
42
|
+
size_t attributes_hash_size;
|
36
43
|
|
44
|
+
// Hash
|
37
45
|
VALUE types;
|
46
|
+
// Hash
|
38
47
|
VALUE additional_types;
|
48
|
+
// heuristics
|
49
|
+
bool tryToReadFromAdditionalTypes;
|
50
|
+
|
51
|
+
// Rails <8: Hash
|
52
|
+
// Rails >=8: ActiveRecord::Result::IndexedRow
|
39
53
|
VALUE values;
|
40
54
|
|
41
|
-
//
|
42
|
-
|
55
|
+
// Hash
|
56
|
+
VALUE indexed_row_column_indexes;
|
57
|
+
// Array or NIL
|
58
|
+
VALUE indexed_row_row;
|
59
|
+
bool is_indexed_row;
|
43
60
|
};
|
44
61
|
|
45
62
|
struct attributes init_context(VALUE obj) {
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
63
|
+
volatile VALUE attributes_set = rb_ivar_get(obj, attributes_id);
|
64
|
+
volatile VALUE attributes_hash = rb_ivar_get(attributes_set, attributes_id);
|
65
|
+
|
66
|
+
struct attributes attrs = (struct attributes){
|
67
|
+
.attributes_hash =
|
68
|
+
PANKO_EMPTY_HASH(attributes_hash) ? Qnil : attributes_hash,
|
69
|
+
.attributes_hash_size = 0,
|
70
|
+
|
71
|
+
.types = rb_ivar_get(attributes_set, types_id),
|
72
|
+
.additional_types = rb_ivar_get(attributes_set, additional_types_id),
|
73
|
+
.tryToReadFromAdditionalTypes =
|
74
|
+
PANKO_EMPTY_HASH(rb_ivar_get(attributes_set, additional_types_id)) ==
|
75
|
+
false,
|
76
|
+
|
77
|
+
.values = rb_ivar_get(attributes_set, values_id),
|
78
|
+
.is_indexed_row = false,
|
79
|
+
.indexed_row_column_indexes = Qnil,
|
80
|
+
.indexed_row_row = Qnil,
|
81
|
+
};
|
82
|
+
|
83
|
+
if (attrs.attributes_hash != Qnil) {
|
84
|
+
attrs.attributes_hash_size = RHASH_SIZE(attrs.attributes_hash);
|
85
|
+
}
|
51
86
|
|
52
|
-
|
87
|
+
if (CLASS_OF(attrs.values) == fetch_ar_result_indexed_row_type()) {
|
88
|
+
volatile VALUE indexed_row_column_indexes =
|
89
|
+
rb_ivar_get(attrs.values, rb_intern("@column_indexes"));
|
53
90
|
|
54
|
-
|
91
|
+
volatile VALUE indexed_row_row =
|
92
|
+
rb_ivar_get(attrs.values, rb_intern("@row"));
|
55
93
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
volatile VALUE delegate_hash =
|
61
|
-
rb_ivar_get(attributes_container, delegate_hash_id);
|
94
|
+
attrs.indexed_row_column_indexes = indexed_row_column_indexes;
|
95
|
+
attrs.indexed_row_row = indexed_row_row;
|
96
|
+
attrs.is_indexed_row = true;
|
97
|
+
}
|
62
98
|
|
63
|
-
|
64
|
-
|
65
|
-
}
|
66
|
-
} else {
|
67
|
-
volatile VALUE attributes_hash =
|
68
|
-
rb_ivar_get(attributes_container, attributes_id);
|
99
|
+
return attrs;
|
100
|
+
}
|
69
101
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
}
|
102
|
+
VALUE _read_value_from_indexed_row(struct attributes attributes_ctx,
|
103
|
+
volatile VALUE member) {
|
104
|
+
volatile VALUE value = Qnil;
|
74
105
|
|
75
|
-
|
76
|
-
|
106
|
+
if (NIL_P(attributes_ctx.indexed_row_column_indexes) ||
|
107
|
+
NIL_P(attributes_ctx.indexed_row_row)) {
|
108
|
+
return value;
|
109
|
+
}
|
110
|
+
|
111
|
+
volatile VALUE column_index =
|
112
|
+
rb_hash_aref(attributes_ctx.indexed_row_column_indexes, member);
|
113
|
+
|
114
|
+
if (NIL_P(column_index)) {
|
115
|
+
return value;
|
116
|
+
}
|
77
117
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
PANKO_EMPTY_HASH(attributes_ctx.additional_types) == false;
|
118
|
+
volatile VALUE row = attributes_ctx.indexed_row_row;
|
119
|
+
if (NIL_P(row)) {
|
120
|
+
return value;
|
82
121
|
}
|
83
122
|
|
84
|
-
return
|
123
|
+
return RARRAY_AREF(row, NUM2INT(column_index));
|
85
124
|
}
|
86
125
|
|
87
126
|
VALUE read_attribute(struct attributes attributes_ctx, Attribute attribute,
|
@@ -91,7 +130,11 @@ VALUE read_attribute(struct attributes attributes_ctx, Attribute attribute,
|
|
91
130
|
member = attribute->name_str;
|
92
131
|
value = Qnil;
|
93
132
|
|
94
|
-
if (
|
133
|
+
if (
|
134
|
+
// we have attributes_hash
|
135
|
+
!NIL_P(attributes_ctx.attributes_hash)
|
136
|
+
// It's not empty
|
137
|
+
&& (attributes_ctx.attributes_hash_size > 0)) {
|
95
138
|
volatile VALUE attribute_metadata =
|
96
139
|
rb_hash_aref(attributes_ctx.attributes_hash, member);
|
97
140
|
|
@@ -105,7 +148,11 @@ VALUE read_attribute(struct attributes attributes_ctx, Attribute attribute,
|
|
105
148
|
}
|
106
149
|
|
107
150
|
if (NIL_P(value) && !NIL_P(attributes_ctx.values)) {
|
108
|
-
|
151
|
+
if (attributes_ctx.is_indexed_row == true) {
|
152
|
+
value = _read_value_from_indexed_row(attributes_ctx, member);
|
153
|
+
} else {
|
154
|
+
value = rb_hash_aref(attributes_ctx.values, member);
|
155
|
+
}
|
109
156
|
}
|
110
157
|
|
111
158
|
if (NIL_P(attribute->type) && !NIL_P(value)) {
|
@@ -125,31 +172,9 @@ VALUE read_attribute(struct attributes attributes_ctx, Attribute attribute,
|
|
125
172
|
return value;
|
126
173
|
}
|
127
174
|
|
128
|
-
VALUE detect_active_model_changes(VALUE v) {
|
129
|
-
if (type_detection_ran == true) {
|
130
|
-
return Qundef;
|
131
|
-
}
|
132
|
-
|
133
|
-
type_detection_ran = true;
|
134
|
-
|
135
|
-
volatile VALUE active_model_type =
|
136
|
-
rb_const_get_at(rb_cObject, rb_intern("ActiveModel"));
|
137
|
-
|
138
|
-
is_lazy_attributes_set_defined =
|
139
|
-
rb_const_defined(active_model_type, rb_intern("LazyAttributeSet")) > 0;
|
140
|
-
|
141
|
-
return Qundef;
|
142
|
-
}
|
143
|
-
|
144
175
|
void active_record_attributes_writer(VALUE obj, VALUE attributes,
|
145
176
|
EachAttributeFunc write_value,
|
146
177
|
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
|
-
|
153
178
|
long i;
|
154
179
|
struct attributes attributes_ctx = init_context(obj);
|
155
180
|
volatile VALUE record_class = CLASS_OF(obj);
|
@@ -174,4 +199,10 @@ void init_active_record_attributes_writer(VALUE mPanko) {
|
|
174
199
|
additional_types_id = rb_intern("@additional_types");
|
175
200
|
type_id = rb_intern("@type");
|
176
201
|
value_before_type_cast_id = rb_intern("@value_before_type_cast");
|
202
|
+
fetch_id = rb_intern("fetch");
|
177
203
|
}
|
204
|
+
|
205
|
+
void panko_init_active_record(VALUE mPanko) {
|
206
|
+
init_active_record_attributes_writer(mPanko);
|
207
|
+
panko_init_type_cast(mPanko);
|
208
|
+
}
|
data/gemfiles/7.0.0.gemfile
CHANGED
@@ -2,14 +2,15 @@
|
|
2
2
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
|
-
gem "
|
5
|
+
gem "sqlite3", "~> 1.4"
|
6
6
|
gem "activesupport", "~> 7.0.0"
|
7
7
|
gem "activemodel", "~> 7.0.0"
|
8
8
|
gem "activerecord", "~> 7.0.0", group: :test
|
9
9
|
|
10
10
|
group :benchmarks do
|
11
|
-
gem "
|
12
|
-
gem "
|
11
|
+
gem "vernier"
|
12
|
+
gem "stackprof"
|
13
|
+
gem "pg"
|
13
14
|
gem "benchmark-ips"
|
14
15
|
gem "active_model_serializers", "~> 0.10"
|
15
16
|
gem "terminal-table"
|
@@ -27,4 +28,12 @@ group :development do
|
|
27
28
|
gem "rake-compiler"
|
28
29
|
end
|
29
30
|
|
31
|
+
group :development, :test do
|
32
|
+
gem "rubocop"
|
33
|
+
gem "standard"
|
34
|
+
gem "standard-performance"
|
35
|
+
gem "rubocop-performance"
|
36
|
+
gem "rubocop-rspec"
|
37
|
+
end
|
38
|
+
|
30
39
|
gemspec path: "../"
|
data/gemfiles/7.0.0.gemfile.lock
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
panko_serializer (0.8.
|
4
|
+
panko_serializer (0.8.3)
|
5
5
|
activesupport
|
6
6
|
oj (> 3.11.0, < 4.0.0)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
actionpack (7.0.8.
|
12
|
-
actionview (= 7.0.8.
|
13
|
-
activesupport (= 7.0.8.
|
11
|
+
actionpack (7.0.8.5)
|
12
|
+
actionview (= 7.0.8.5)
|
13
|
+
activesupport (= 7.0.8.5)
|
14
14
|
rack (~> 2.0, >= 2.2.4)
|
15
15
|
rack-test (>= 0.6.3)
|
16
16
|
rails-dom-testing (~> 2.0)
|
17
17
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
18
|
-
actionview (7.0.8.
|
19
|
-
activesupport (= 7.0.8.
|
18
|
+
actionview (7.0.8.5)
|
19
|
+
activesupport (= 7.0.8.5)
|
20
20
|
builder (~> 3.1)
|
21
21
|
erubi (~> 1.4)
|
22
22
|
rails-dom-testing (~> 2.0)
|
@@ -26,12 +26,12 @@ GEM
|
|
26
26
|
activemodel (>= 4.1)
|
27
27
|
case_transform (>= 0.2)
|
28
28
|
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
|
29
|
-
activemodel (7.0.8.
|
30
|
-
activesupport (= 7.0.8.
|
31
|
-
activerecord (7.0.8.
|
32
|
-
activemodel (= 7.0.8.
|
33
|
-
activesupport (= 7.0.8.
|
34
|
-
activesupport (7.0.8.
|
29
|
+
activemodel (7.0.8.5)
|
30
|
+
activesupport (= 7.0.8.5)
|
31
|
+
activerecord (7.0.8.5)
|
32
|
+
activemodel (= 7.0.8.5)
|
33
|
+
activesupport (= 7.0.8.5)
|
34
|
+
activesupport (7.0.8.5)
|
35
35
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
36
36
|
i18n (>= 1.6, < 2)
|
37
37
|
minitest (>= 5.1)
|
@@ -41,38 +41,42 @@ GEM
|
|
41
41
|
rake
|
42
42
|
thor (>= 0.14.0)
|
43
43
|
ast (2.4.2)
|
44
|
-
benchmark-ips (2.
|
45
|
-
|
44
|
+
benchmark-ips (2.14.0)
|
45
|
+
bigdecimal (3.1.8)
|
46
|
+
builder (3.3.0)
|
46
47
|
byebug (11.1.3)
|
47
48
|
case_transform (0.2)
|
48
49
|
activesupport
|
49
|
-
concurrent-ruby (1.
|
50
|
+
concurrent-ruby (1.3.4)
|
50
51
|
crass (1.0.6)
|
51
52
|
diff-lcs (1.5.1)
|
52
|
-
erubi (1.
|
53
|
-
faker (3.
|
53
|
+
erubi (1.13.0)
|
54
|
+
faker (3.5.1)
|
54
55
|
i18n (>= 1.8.11, < 2)
|
55
|
-
i18n (1.14.
|
56
|
+
i18n (1.14.6)
|
56
57
|
concurrent-ruby (~> 1.0)
|
57
|
-
json (2.7.
|
58
|
+
json (2.7.5)
|
58
59
|
jsonapi-renderer (0.2.2)
|
59
60
|
language_server-protocol (3.17.0.3)
|
60
61
|
lint_roller (1.1.0)
|
61
62
|
loofah (2.22.0)
|
62
63
|
crass (~> 1.0.2)
|
63
64
|
nokogiri (>= 1.12.0)
|
64
|
-
memory_profiler (1.0
|
65
|
-
minitest (5.
|
66
|
-
nokogiri (1.16.
|
65
|
+
memory_profiler (1.1.0)
|
66
|
+
minitest (5.25.4)
|
67
|
+
nokogiri (1.16.7-arm64-darwin)
|
67
68
|
racc (~> 1.4)
|
68
|
-
oj (3.16.
|
69
|
-
|
70
|
-
|
69
|
+
oj (3.16.7)
|
70
|
+
bigdecimal (>= 3.0)
|
71
|
+
ostruct (>= 0.2)
|
72
|
+
ostruct (0.6.0)
|
73
|
+
parallel (1.26.3)
|
74
|
+
parser (3.3.5.1)
|
71
75
|
ast (~> 2.4.1)
|
72
76
|
racc
|
73
|
-
pg (1.5.
|
74
|
-
racc (1.
|
75
|
-
rack (2.2.
|
77
|
+
pg (1.5.9)
|
78
|
+
racc (1.8.1)
|
79
|
+
rack (2.2.10)
|
76
80
|
rack-test (2.1.0)
|
77
81
|
rack (>= 1.3)
|
78
82
|
rails-dom-testing (2.2.0)
|
@@ -84,59 +88,61 @@ GEM
|
|
84
88
|
nokogiri (~> 1.14)
|
85
89
|
rainbow (3.1.1)
|
86
90
|
rake (13.2.1)
|
87
|
-
rake-compiler (1.2.
|
91
|
+
rake-compiler (1.2.8)
|
88
92
|
rake
|
89
|
-
regexp_parser (2.9.
|
90
|
-
rexml (3.2.6)
|
93
|
+
regexp_parser (2.9.2)
|
91
94
|
rspec (3.13.0)
|
92
95
|
rspec-core (~> 3.13.0)
|
93
96
|
rspec-expectations (~> 3.13.0)
|
94
97
|
rspec-mocks (~> 3.13.0)
|
95
|
-
rspec-core (3.13.
|
98
|
+
rspec-core (3.13.2)
|
96
99
|
rspec-support (~> 3.13.0)
|
97
|
-
rspec-expectations (3.13.
|
100
|
+
rspec-expectations (3.13.3)
|
98
101
|
diff-lcs (>= 1.2.0, < 2.0)
|
99
102
|
rspec-support (~> 3.13.0)
|
100
|
-
rspec-mocks (3.13.
|
103
|
+
rspec-mocks (3.13.2)
|
101
104
|
diff-lcs (>= 1.2.0, < 2.0)
|
102
105
|
rspec-support (~> 3.13.0)
|
103
106
|
rspec-support (3.13.1)
|
104
|
-
rubocop (1.
|
107
|
+
rubocop (1.66.1)
|
105
108
|
json (~> 2.3)
|
106
109
|
language_server-protocol (>= 3.17.0)
|
107
110
|
parallel (~> 1.10)
|
108
111
|
parser (>= 3.3.0.2)
|
109
112
|
rainbow (>= 2.2.2, < 4.0)
|
110
|
-
regexp_parser (>=
|
111
|
-
|
112
|
-
rubocop-ast (>= 1.31.1, < 2.0)
|
113
|
+
regexp_parser (>= 2.4, < 3.0)
|
114
|
+
rubocop-ast (>= 1.32.2, < 2.0)
|
113
115
|
ruby-progressbar (~> 1.7)
|
114
116
|
unicode-display_width (>= 2.4.0, < 3.0)
|
115
|
-
rubocop-ast (1.
|
116
|
-
parser (>= 3.3.0
|
117
|
-
rubocop-performance (1.
|
117
|
+
rubocop-ast (1.33.0)
|
118
|
+
parser (>= 3.3.1.0)
|
119
|
+
rubocop-performance (1.22.1)
|
118
120
|
rubocop (>= 1.48.1, < 2.0)
|
119
|
-
rubocop-ast (>= 1.
|
121
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
122
|
+
rubocop-rspec (3.2.0)
|
123
|
+
rubocop (~> 1.61)
|
120
124
|
ruby-progressbar (1.13.0)
|
121
125
|
sqlite3 (1.7.3-arm64-darwin)
|
122
|
-
|
126
|
+
stackprof (0.2.26)
|
127
|
+
standard (1.41.1)
|
123
128
|
language_server-protocol (~> 3.17.0.2)
|
124
129
|
lint_roller (~> 1.0)
|
125
|
-
rubocop (~> 1.
|
130
|
+
rubocop (~> 1.66.0)
|
126
131
|
standard-custom (~> 1.0.0)
|
127
|
-
standard-performance (~> 1.
|
132
|
+
standard-performance (~> 1.5)
|
128
133
|
standard-custom (1.0.2)
|
129
134
|
lint_roller (~> 1.0)
|
130
135
|
rubocop (~> 1.50)
|
131
|
-
standard-performance (1.
|
136
|
+
standard-performance (1.5.0)
|
132
137
|
lint_roller (~> 1.1)
|
133
|
-
rubocop-performance (~> 1.
|
138
|
+
rubocop-performance (~> 1.22.0)
|
134
139
|
terminal-table (3.0.2)
|
135
140
|
unicode-display_width (>= 1.1.1, < 3)
|
136
|
-
thor (1.3.
|
141
|
+
thor (1.3.2)
|
137
142
|
tzinfo (2.0.6)
|
138
143
|
concurrent-ruby (~> 1.0)
|
139
|
-
unicode-display_width (2.
|
144
|
+
unicode-display_width (2.6.0)
|
145
|
+
vernier (1.3.0)
|
140
146
|
|
141
147
|
PLATFORMS
|
142
148
|
arm64-darwin-23
|
@@ -152,13 +158,19 @@ DEPENDENCIES
|
|
152
158
|
faker
|
153
159
|
memory_profiler
|
154
160
|
panko_serializer!
|
155
|
-
pg
|
161
|
+
pg
|
156
162
|
rake
|
157
163
|
rake-compiler
|
158
164
|
rspec (~> 3.0)
|
165
|
+
rubocop
|
166
|
+
rubocop-performance
|
167
|
+
rubocop-rspec
|
159
168
|
sqlite3 (~> 1.4)
|
169
|
+
stackprof
|
160
170
|
standard
|
171
|
+
standard-performance
|
161
172
|
terminal-table
|
173
|
+
vernier
|
162
174
|
|
163
175
|
BUNDLED WITH
|
164
176
|
2.4.6
|
data/gemfiles/7.1.0.gemfile
CHANGED
@@ -2,14 +2,15 @@
|
|
2
2
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
|
-
gem "
|
6
|
-
gem "activesupport", "~> 7.1.
|
7
|
-
gem "activemodel", "~> 7.1.
|
8
|
-
gem "activerecord", "~> 7.1.
|
5
|
+
gem "sqlite3", "~> 1.4"
|
6
|
+
gem "activesupport", "~> 7.1.5"
|
7
|
+
gem "activemodel", "~> 7.1.5"
|
8
|
+
gem "activerecord", "~> 7.1.5", group: :test
|
9
9
|
|
10
10
|
group :benchmarks do
|
11
|
-
gem "
|
12
|
-
gem "
|
11
|
+
gem "vernier"
|
12
|
+
gem "stackprof"
|
13
|
+
gem "pg"
|
13
14
|
gem "benchmark-ips"
|
14
15
|
gem "active_model_serializers", "~> 0.10"
|
15
16
|
gem "terminal-table"
|
@@ -27,4 +28,12 @@ group :development do
|
|
27
28
|
gem "rake-compiler"
|
28
29
|
end
|
29
30
|
|
31
|
+
group :development, :test do
|
32
|
+
gem "rubocop"
|
33
|
+
gem "standard"
|
34
|
+
gem "standard-performance"
|
35
|
+
gem "rubocop-performance"
|
36
|
+
gem "rubocop-rspec"
|
37
|
+
end
|
38
|
+
|
30
39
|
gemspec path: "../"
|