shimmer 0.0.28 → 0.0.29
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +1 -0
- data/.rubocop.yml +7 -0
- data/.ruby-version +1 -1
- data/.vscode/settings.json +7 -4
- data/Gemfile +42 -0
- data/Gemfile.lock +346 -34
- data/Guardfile +12 -0
- data/README.md +24 -0
- data/Rakefile +1 -1
- data/bin/_guard-core +27 -0
- data/bin/dev +2 -0
- data/bin/guard +27 -0
- data/bin/rake +27 -0
- data/bin/rspec +27 -0
- data/bin/setup +3 -0
- data/config/rubocop_base.yml +32 -14
- data/config/rubocop_extensions/graphql.yml +68 -0
- data/config/rubocop_extensions/rails.yml +34 -0
- data/config/rubocop_extensions/rspec.yml +208 -0
- data/gemfiles/Gemfile-rails-7-0 +48 -0
- data/lib/shimmer/auth/apple_provider.rb +1 -1
- data/lib/shimmer/form/builder.rb +1 -1
- data/lib/shimmer/utils/config.rb +9 -3
- data/lib/shimmer/version.rb +1 -1
- metadata +15 -102
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e77dab032d0ec3a48d22321c020868645d0a6d8649821518189decd58ebffb0f
|
4
|
+
data.tar.gz: 1a6957d6dea3f04288166eaf4a7cbb011ebfdd9b26bb2675f0b1faaffa7eda3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a479f55de54862deb63928a2be5f58ccd3b142b059db16e4405c958f527758e348bbd1d82147646705492aa7d28ea2702549075de34522900d1eda83c5d0802
|
7
|
+
data.tar.gz: 6c493df14ce2242f4e735d04a2a5e398ae3cf1cb8c2d7d081a8061be6f08d0d552627d85753f542a97a4075a7acfb58c0bfa64bd5c708c4ca0344793ff047602
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--require spec_helper
|
data/.rubocop.yml
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
inherit_from: config/rubocop_base.yml
|
2
2
|
|
3
|
+
AllCops:
|
4
|
+
Exclude:
|
5
|
+
- "bin/**/*"
|
6
|
+
- "spec/rails_app/bin/**/*"
|
7
|
+
- "spec/rails_app/db/schema.rb"
|
8
|
+
- "vendor/**/*"
|
9
|
+
|
3
10
|
# Allow controllers created in this library to inherit directly from ActionController::Base.
|
4
11
|
Rails/ApplicationController:
|
5
12
|
Enabled: false
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
2.7.7
|
data/.vscode/settings.json
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
{
|
2
|
-
"solargraph.useBundler": false,
|
3
|
-
"solargraph.formatting": true,
|
4
2
|
"[ruby]": {
|
5
3
|
"editor.formatOnSave": false,
|
6
|
-
"editor.defaultFormatter": "
|
4
|
+
"editor.defaultFormatter": "rebornix.ruby"
|
7
5
|
},
|
8
|
-
"
|
6
|
+
"ruby.format": "rubocop",
|
7
|
+
"ruby.lint": {
|
8
|
+
"rubocop": true
|
9
|
+
},
|
10
|
+
"ruby.useLanguageServer": true,
|
11
|
+
"typescript.tsdk": "node_modules/typescript/lib",
|
9
12
|
}
|
data/Gemfile
CHANGED
@@ -4,3 +4,45 @@ source "https://rubygems.org"
|
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in shimmer.gemspec
|
6
6
|
gemspec
|
7
|
+
|
8
|
+
gem "rails"
|
9
|
+
gem "propshaft"
|
10
|
+
gem "sqlite3"
|
11
|
+
gem "puma"
|
12
|
+
gem "jsbundling-rails"
|
13
|
+
gem "turbo-rails"
|
14
|
+
gem "stimulus-rails"
|
15
|
+
gem "cssbundling-rails"
|
16
|
+
gem "jbuilder"
|
17
|
+
gem "bootsnap", require: false
|
18
|
+
gem "dotenv"
|
19
|
+
gem "slim-rails"
|
20
|
+
gem "awesome_print"
|
21
|
+
gem "dotenv-rails"
|
22
|
+
|
23
|
+
group :development, :test do
|
24
|
+
gem "debug", platforms: [:mri, :mingw, :x64_mingw]
|
25
|
+
gem "rake"
|
26
|
+
gem "rspec-rails"
|
27
|
+
gem "rspec-retry"
|
28
|
+
gem "pry"
|
29
|
+
gem "pry-rails"
|
30
|
+
gem "pry-byebug"
|
31
|
+
gem "pry-doc"
|
32
|
+
gem "guard"
|
33
|
+
gem "guard-rspec"
|
34
|
+
gem "capybara"
|
35
|
+
gem "rack_session_access"
|
36
|
+
gem "cuprite"
|
37
|
+
gem "standard"
|
38
|
+
gem "rubocop"
|
39
|
+
gem "rubocop-rails"
|
40
|
+
gem "rubocop-performance"
|
41
|
+
gem "rubocop-rspec"
|
42
|
+
gem "rubocop-rake"
|
43
|
+
end
|
44
|
+
|
45
|
+
group :development do
|
46
|
+
gem "web-console"
|
47
|
+
gem "annotate"
|
48
|
+
end
|
data/Gemfile.lock
CHANGED
@@ -6,69 +6,381 @@ PATH
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
|
9
|
+
actioncable (7.0.4.2)
|
10
|
+
actionpack (= 7.0.4.2)
|
11
|
+
activesupport (= 7.0.4.2)
|
12
|
+
nio4r (~> 2.0)
|
13
|
+
websocket-driver (>= 0.6.1)
|
14
|
+
actionmailbox (7.0.4.2)
|
15
|
+
actionpack (= 7.0.4.2)
|
16
|
+
activejob (= 7.0.4.2)
|
17
|
+
activerecord (= 7.0.4.2)
|
18
|
+
activestorage (= 7.0.4.2)
|
19
|
+
activesupport (= 7.0.4.2)
|
20
|
+
mail (>= 2.7.1)
|
21
|
+
net-imap
|
22
|
+
net-pop
|
23
|
+
net-smtp
|
24
|
+
actionmailer (7.0.4.2)
|
25
|
+
actionpack (= 7.0.4.2)
|
26
|
+
actionview (= 7.0.4.2)
|
27
|
+
activejob (= 7.0.4.2)
|
28
|
+
activesupport (= 7.0.4.2)
|
29
|
+
mail (~> 2.5, >= 2.5.4)
|
30
|
+
net-imap
|
31
|
+
net-pop
|
32
|
+
net-smtp
|
33
|
+
rails-dom-testing (~> 2.0)
|
34
|
+
actionpack (7.0.4.2)
|
35
|
+
actionview (= 7.0.4.2)
|
36
|
+
activesupport (= 7.0.4.2)
|
37
|
+
rack (~> 2.0, >= 2.2.0)
|
38
|
+
rack-test (>= 0.6.3)
|
39
|
+
rails-dom-testing (~> 2.0)
|
40
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
41
|
+
actiontext (7.0.4.2)
|
42
|
+
actionpack (= 7.0.4.2)
|
43
|
+
activerecord (= 7.0.4.2)
|
44
|
+
activestorage (= 7.0.4.2)
|
45
|
+
activesupport (= 7.0.4.2)
|
46
|
+
globalid (>= 0.6.0)
|
47
|
+
nokogiri (>= 1.8.5)
|
48
|
+
actionview (7.0.4.2)
|
49
|
+
activesupport (= 7.0.4.2)
|
50
|
+
builder (~> 3.1)
|
51
|
+
erubi (~> 1.4)
|
52
|
+
rails-dom-testing (~> 2.0)
|
53
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
54
|
+
activejob (7.0.4.2)
|
55
|
+
activesupport (= 7.0.4.2)
|
56
|
+
globalid (>= 0.3.6)
|
57
|
+
activemodel (7.0.4.2)
|
58
|
+
activesupport (= 7.0.4.2)
|
59
|
+
activerecord (7.0.4.2)
|
60
|
+
activemodel (= 7.0.4.2)
|
61
|
+
activesupport (= 7.0.4.2)
|
62
|
+
activestorage (7.0.4.2)
|
63
|
+
actionpack (= 7.0.4.2)
|
64
|
+
activejob (= 7.0.4.2)
|
65
|
+
activerecord (= 7.0.4.2)
|
66
|
+
activesupport (= 7.0.4.2)
|
67
|
+
marcel (~> 1.0)
|
68
|
+
mini_mime (>= 1.1.0)
|
69
|
+
activesupport (7.0.4.2)
|
10
70
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
11
71
|
i18n (>= 1.6, < 2)
|
12
72
|
minitest (>= 5.1)
|
13
73
|
tzinfo (~> 2.0)
|
74
|
+
addressable (2.8.1)
|
75
|
+
public_suffix (>= 2.0.2, < 6.0)
|
76
|
+
annotate (3.2.0)
|
77
|
+
activerecord (>= 3.2, < 8.0)
|
78
|
+
rake (>= 10.4, < 14.0)
|
14
79
|
ast (2.4.2)
|
15
|
-
|
16
|
-
|
80
|
+
awesome_print (1.9.2)
|
81
|
+
bindex (0.8.1)
|
82
|
+
bootsnap (1.16.0)
|
83
|
+
msgpack (~> 1.2)
|
84
|
+
builder (3.2.4)
|
85
|
+
byebug (11.1.3)
|
86
|
+
capybara (3.38.0)
|
87
|
+
addressable
|
88
|
+
matrix
|
89
|
+
mini_mime (>= 0.1.3)
|
90
|
+
nokogiri (~> 1.8)
|
91
|
+
rack (>= 1.6.0)
|
92
|
+
rack-test (>= 0.6.3)
|
93
|
+
regexp_parser (>= 1.5, < 3.0)
|
94
|
+
xpath (~> 3.2)
|
95
|
+
coderay (1.1.3)
|
96
|
+
concurrent-ruby (1.2.0)
|
97
|
+
crass (1.0.6)
|
98
|
+
cssbundling-rails (1.1.2)
|
99
|
+
railties (>= 6.0.0)
|
100
|
+
cuprite (0.14.3)
|
101
|
+
capybara (~> 3.0)
|
102
|
+
ferrum (~> 0.13.0)
|
103
|
+
date (3.3.3)
|
104
|
+
debug (1.7.1)
|
105
|
+
irb (>= 1.5.0)
|
106
|
+
reline (>= 0.3.1)
|
107
|
+
diff-lcs (1.5.0)
|
108
|
+
dotenv (2.8.1)
|
109
|
+
dotenv-rails (2.8.1)
|
110
|
+
dotenv (= 2.8.1)
|
111
|
+
railties (>= 3.2)
|
112
|
+
erubi (1.12.0)
|
113
|
+
ferrum (0.13)
|
114
|
+
addressable (~> 2.5)
|
115
|
+
concurrent-ruby (~> 1.1)
|
116
|
+
webrick (~> 1.7)
|
117
|
+
websocket-driver (>= 0.6, < 0.8)
|
118
|
+
ffi (1.15.5)
|
119
|
+
formatador (1.1.0)
|
120
|
+
globalid (1.1.0)
|
121
|
+
activesupport (>= 5.0)
|
122
|
+
guard (2.18.0)
|
123
|
+
formatador (>= 0.2.4)
|
124
|
+
listen (>= 2.7, < 4.0)
|
125
|
+
lumberjack (>= 1.0.12, < 2.0)
|
126
|
+
nenv (~> 0.1)
|
127
|
+
notiffany (~> 0.0)
|
128
|
+
pry (>= 0.13.0)
|
129
|
+
shellany (~> 0.0)
|
130
|
+
thor (>= 0.18.1)
|
131
|
+
guard-compat (1.2.1)
|
132
|
+
guard-rspec (4.7.3)
|
133
|
+
guard (~> 2.1)
|
134
|
+
guard-compat (~> 1.1)
|
135
|
+
rspec (>= 2.99.0, < 4.0)
|
136
|
+
i18n (1.12.0)
|
17
137
|
concurrent-ruby (~> 1.0)
|
18
|
-
|
19
|
-
|
20
|
-
|
138
|
+
io-console (0.6.0)
|
139
|
+
irb (1.6.2)
|
140
|
+
reline (>= 0.3.0)
|
141
|
+
jbuilder (2.11.5)
|
142
|
+
actionview (>= 5.0.0)
|
143
|
+
activesupport (>= 5.0.0)
|
144
|
+
jsbundling-rails (1.1.1)
|
145
|
+
railties (>= 6.0.0)
|
146
|
+
json (2.6.3)
|
147
|
+
language_server-protocol (3.17.0.3)
|
148
|
+
lint_roller (1.0.0)
|
149
|
+
listen (3.8.0)
|
150
|
+
rb-fsevent (~> 0.10, >= 0.10.3)
|
151
|
+
rb-inotify (~> 0.9, >= 0.9.10)
|
152
|
+
loofah (2.19.1)
|
153
|
+
crass (~> 1.0.2)
|
154
|
+
nokogiri (>= 1.5.9)
|
155
|
+
lumberjack (1.2.8)
|
156
|
+
mail (2.8.1)
|
157
|
+
mini_mime (>= 0.1.1)
|
158
|
+
net-imap
|
159
|
+
net-pop
|
160
|
+
net-smtp
|
161
|
+
marcel (1.0.2)
|
162
|
+
matrix (0.4.2)
|
163
|
+
method_source (1.0.0)
|
164
|
+
mini_mime (1.1.2)
|
165
|
+
minitest (5.17.0)
|
166
|
+
msgpack (1.6.0)
|
167
|
+
nenv (0.3.0)
|
168
|
+
net-imap (0.3.4)
|
169
|
+
date
|
170
|
+
net-protocol
|
171
|
+
net-pop (0.1.2)
|
172
|
+
net-protocol
|
173
|
+
net-protocol (0.2.1)
|
174
|
+
timeout
|
175
|
+
net-smtp (0.3.3)
|
176
|
+
net-protocol
|
177
|
+
nio4r (2.5.8)
|
178
|
+
nokogiri (1.14.1-x86_64-darwin)
|
179
|
+
racc (~> 1.4)
|
180
|
+
notiffany (0.1.3)
|
181
|
+
nenv (~> 0.1)
|
182
|
+
shellany (~> 0.0)
|
183
|
+
parallel (1.23.0)
|
184
|
+
parser (3.2.2.1)
|
21
185
|
ast (~> 2.4.1)
|
22
|
-
|
23
|
-
|
186
|
+
propshaft (0.6.4)
|
187
|
+
actionpack (>= 7.0.0)
|
188
|
+
activesupport (>= 7.0.0)
|
189
|
+
rack
|
190
|
+
railties (>= 7.0.0)
|
191
|
+
pry (0.14.2)
|
192
|
+
coderay (~> 1.1)
|
193
|
+
method_source (~> 1.0)
|
194
|
+
pry-byebug (3.10.1)
|
195
|
+
byebug (~> 11.0)
|
196
|
+
pry (>= 0.13, < 0.15)
|
197
|
+
pry-doc (1.4.0)
|
198
|
+
pry (~> 0.11)
|
199
|
+
yard (~> 0.9.11)
|
200
|
+
pry-rails (0.3.9)
|
201
|
+
pry (>= 0.10.4)
|
202
|
+
public_suffix (5.0.1)
|
203
|
+
puma (6.0.2)
|
204
|
+
nio4r (~> 2.0)
|
205
|
+
racc (1.6.2)
|
206
|
+
rack (2.2.6.2)
|
207
|
+
rack-test (2.0.2)
|
208
|
+
rack (>= 1.3)
|
209
|
+
rack_session_access (0.2.0)
|
210
|
+
builder (>= 2.0.0)
|
211
|
+
rack (>= 1.0.0)
|
212
|
+
rails (7.0.4.2)
|
213
|
+
actioncable (= 7.0.4.2)
|
214
|
+
actionmailbox (= 7.0.4.2)
|
215
|
+
actionmailer (= 7.0.4.2)
|
216
|
+
actionpack (= 7.0.4.2)
|
217
|
+
actiontext (= 7.0.4.2)
|
218
|
+
actionview (= 7.0.4.2)
|
219
|
+
activejob (= 7.0.4.2)
|
220
|
+
activemodel (= 7.0.4.2)
|
221
|
+
activerecord (= 7.0.4.2)
|
222
|
+
activestorage (= 7.0.4.2)
|
223
|
+
activesupport (= 7.0.4.2)
|
224
|
+
bundler (>= 1.15.0)
|
225
|
+
railties (= 7.0.4.2)
|
226
|
+
rails-dom-testing (2.0.3)
|
227
|
+
activesupport (>= 4.2.0)
|
228
|
+
nokogiri (>= 1.6)
|
229
|
+
rails-html-sanitizer (1.5.0)
|
230
|
+
loofah (~> 2.19, >= 2.19.1)
|
231
|
+
railties (7.0.4.2)
|
232
|
+
actionpack (= 7.0.4.2)
|
233
|
+
activesupport (= 7.0.4.2)
|
234
|
+
method_source
|
235
|
+
rake (>= 12.2)
|
236
|
+
thor (~> 1.0)
|
237
|
+
zeitwerk (~> 2.5)
|
238
|
+
rainbow (3.1.1)
|
24
239
|
rake (13.0.6)
|
25
|
-
|
240
|
+
rb-fsevent (0.11.2)
|
241
|
+
rb-inotify (0.10.1)
|
242
|
+
ffi (~> 1.0)
|
243
|
+
regexp_parser (2.8.0)
|
244
|
+
reline (0.3.2)
|
245
|
+
io-console (~> 0.5)
|
26
246
|
rexml (3.2.5)
|
27
|
-
|
247
|
+
rspec (3.12.0)
|
248
|
+
rspec-core (~> 3.12.0)
|
249
|
+
rspec-expectations (~> 3.12.0)
|
250
|
+
rspec-mocks (~> 3.12.0)
|
251
|
+
rspec-core (3.12.1)
|
252
|
+
rspec-support (~> 3.12.0)
|
253
|
+
rspec-expectations (3.12.2)
|
254
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
255
|
+
rspec-support (~> 3.12.0)
|
256
|
+
rspec-mocks (3.12.3)
|
257
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
258
|
+
rspec-support (~> 3.12.0)
|
259
|
+
rspec-rails (6.0.1)
|
260
|
+
actionpack (>= 6.1)
|
261
|
+
activesupport (>= 6.1)
|
262
|
+
railties (>= 6.1)
|
263
|
+
rspec-core (~> 3.11)
|
264
|
+
rspec-expectations (~> 3.11)
|
265
|
+
rspec-mocks (~> 3.11)
|
266
|
+
rspec-support (~> 3.11)
|
267
|
+
rspec-retry (0.6.2)
|
268
|
+
rspec-core (> 3.3)
|
269
|
+
rspec-support (3.12.0)
|
270
|
+
rubocop (1.50.2)
|
271
|
+
json (~> 2.3)
|
28
272
|
parallel (~> 1.10)
|
29
|
-
parser (>= 3.
|
273
|
+
parser (>= 3.2.0.0)
|
30
274
|
rainbow (>= 2.2.2, < 4.0)
|
31
275
|
regexp_parser (>= 1.8, < 3.0)
|
32
|
-
rexml
|
33
|
-
rubocop-ast (>= 1.
|
276
|
+
rexml (>= 3.2.5, < 4.0)
|
277
|
+
rubocop-ast (>= 1.28.0, < 2.0)
|
34
278
|
ruby-progressbar (~> 1.7)
|
35
|
-
unicode-display_width (>=
|
36
|
-
rubocop-ast (1.
|
37
|
-
parser (>= 3.
|
38
|
-
rubocop-
|
279
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
280
|
+
rubocop-ast (1.28.0)
|
281
|
+
parser (>= 3.2.1.0)
|
282
|
+
rubocop-capybara (2.18.0)
|
283
|
+
rubocop (~> 1.41)
|
284
|
+
rubocop-performance (1.16.0)
|
39
285
|
rubocop (>= 1.7.0, < 2.0)
|
40
286
|
rubocop-ast (>= 0.4.0)
|
41
|
-
rubocop-rails (2.
|
287
|
+
rubocop-rails (2.17.4)
|
42
288
|
activesupport (>= 4.2.0)
|
43
289
|
rack (>= 1.1)
|
44
|
-
rubocop (>= 1.
|
290
|
+
rubocop (>= 1.33.0, < 2.0)
|
45
291
|
rubocop-rake (0.6.0)
|
46
292
|
rubocop (~> 1.0)
|
47
|
-
rubocop-rspec (2.
|
48
|
-
rubocop (~> 1.
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
293
|
+
rubocop-rspec (2.20.0)
|
294
|
+
rubocop (~> 1.33)
|
295
|
+
rubocop-capybara (~> 2.17)
|
296
|
+
ruby-progressbar (1.13.0)
|
297
|
+
shellany (0.0.1)
|
298
|
+
slim (4.1.0)
|
299
|
+
temple (>= 0.7.6, < 0.9)
|
300
|
+
tilt (>= 2.0.6, < 2.1)
|
301
|
+
slim-rails (3.5.1)
|
302
|
+
actionpack (>= 3.1)
|
303
|
+
railties (>= 3.1)
|
304
|
+
slim (>= 3.0, < 5.0)
|
305
|
+
sqlite3 (1.6.0-x86_64-darwin)
|
306
|
+
standard (1.28.0)
|
307
|
+
language_server-protocol (~> 3.17.0.2)
|
308
|
+
lint_roller (~> 1.0)
|
309
|
+
rubocop (~> 1.50.2)
|
310
|
+
standard-custom (~> 1.0.0)
|
311
|
+
standard-performance (~> 1.0.1)
|
312
|
+
standard-custom (1.0.0)
|
313
|
+
lint_roller (~> 1.0)
|
314
|
+
standard-performance (1.0.1)
|
315
|
+
lint_roller (~> 1.0)
|
316
|
+
rubocop-performance (~> 1.16.0)
|
317
|
+
stimulus-rails (1.2.1)
|
318
|
+
railties (>= 6.0.0)
|
319
|
+
temple (0.8.2)
|
320
|
+
thor (1.2.1)
|
321
|
+
tilt (2.0.11)
|
322
|
+
timeout (0.3.1)
|
323
|
+
turbo-rails (1.3.3)
|
324
|
+
actionpack (>= 6.0.0)
|
325
|
+
activejob (>= 6.0.0)
|
326
|
+
railties (>= 6.0.0)
|
327
|
+
tzinfo (2.0.6)
|
56
328
|
concurrent-ruby (~> 1.0)
|
57
|
-
unicode-display_width (2.
|
329
|
+
unicode-display_width (2.4.2)
|
330
|
+
web-console (4.2.0)
|
331
|
+
actionview (>= 6.0.0)
|
332
|
+
activemodel (>= 6.0.0)
|
333
|
+
bindex (>= 0.4.0)
|
334
|
+
railties (>= 6.0.0)
|
335
|
+
webrick (1.8.1)
|
336
|
+
websocket-driver (0.7.5)
|
337
|
+
websocket-extensions (>= 0.1.0)
|
338
|
+
websocket-extensions (0.1.5)
|
339
|
+
xpath (3.2.0)
|
340
|
+
nokogiri (~> 1.8)
|
341
|
+
yard (0.9.26)
|
342
|
+
zeitwerk (2.6.6)
|
58
343
|
|
59
344
|
PLATFORMS
|
60
|
-
x86_64-darwin-
|
61
|
-
x86_64-linux
|
345
|
+
x86_64-darwin-22
|
62
346
|
|
63
347
|
DEPENDENCIES
|
64
|
-
|
348
|
+
annotate
|
349
|
+
awesome_print
|
350
|
+
bootsnap
|
351
|
+
capybara
|
352
|
+
cssbundling-rails
|
353
|
+
cuprite
|
354
|
+
debug
|
355
|
+
dotenv
|
356
|
+
dotenv-rails
|
357
|
+
guard
|
358
|
+
guard-rspec
|
359
|
+
jbuilder
|
360
|
+
jsbundling-rails
|
361
|
+
propshaft
|
362
|
+
pry
|
363
|
+
pry-byebug
|
364
|
+
pry-doc
|
365
|
+
pry-rails
|
366
|
+
puma
|
367
|
+
rack_session_access
|
368
|
+
rails
|
369
|
+
rake
|
370
|
+
rspec-rails
|
371
|
+
rspec-retry
|
65
372
|
rubocop
|
66
373
|
rubocop-performance
|
67
374
|
rubocop-rails
|
68
375
|
rubocop-rake
|
69
376
|
rubocop-rspec
|
70
377
|
shimmer!
|
71
|
-
|
378
|
+
slim-rails
|
379
|
+
sqlite3
|
380
|
+
standard
|
381
|
+
stimulus-rails
|
382
|
+
turbo-rails
|
383
|
+
web-console
|
72
384
|
|
73
385
|
BUNDLED WITH
|
74
|
-
2.
|
386
|
+
2.3.26
|
data/Guardfile
ADDED
data/README.md
CHANGED
@@ -203,6 +203,30 @@ import { application } from "controllers/application";
|
|
203
203
|
start({ application });
|
204
204
|
```
|
205
205
|
|
206
|
+
## Testing & Demo
|
207
|
+
|
208
|
+
This library is tested using _RSpec_.
|
209
|
+
|
210
|
+
```bash
|
211
|
+
bin/rspec
|
212
|
+
```
|
213
|
+
|
214
|
+
A **system test** suite is included and is performed against a demo _Rails_ application in `spec/rails_app`. This
|
215
|
+
application can be started in development mode for "playing around" with _Shimmer_ during its development and add
|
216
|
+
more system tests. The `bin/dev` script starts that demo application.
|
217
|
+
|
218
|
+
The first time, you want to initialize the database and seed it some data.
|
219
|
+
|
220
|
+
```bash
|
221
|
+
bin/setup
|
222
|
+
```
|
223
|
+
|
224
|
+
Then you can start the development server.
|
225
|
+
|
226
|
+
```bash
|
227
|
+
bin/dev
|
228
|
+
```
|
229
|
+
|
206
230
|
## Contributing
|
207
231
|
|
208
232
|
Bug reports and pull requests are welcome on GitHub at https://github.com/nerdgeschoss/shimmer. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/nerdgeschoss/shimmer/blob/master/CODE_OF_CONDUCT.md).
|
data/Rakefile
CHANGED
data/bin/_guard-core
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application '_guard-core' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
12
|
+
|
13
|
+
bundle_binstub = File.expand_path("bundle", __dir__)
|
14
|
+
|
15
|
+
if File.file?(bundle_binstub)
|
16
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
17
|
+
load(bundle_binstub)
|
18
|
+
else
|
19
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
20
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
require "rubygems"
|
25
|
+
require "bundler/setup"
|
26
|
+
|
27
|
+
load Gem.bin_path("guard", "_guard-core")
|
data/bin/dev
ADDED
data/bin/guard
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'guard' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
12
|
+
|
13
|
+
bundle_binstub = File.expand_path("bundle", __dir__)
|
14
|
+
|
15
|
+
if File.file?(bundle_binstub)
|
16
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
17
|
+
load(bundle_binstub)
|
18
|
+
else
|
19
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
20
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
require "rubygems"
|
25
|
+
require "bundler/setup"
|
26
|
+
|
27
|
+
load Gem.bin_path("guard", "guard")
|
data/bin/rake
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rake' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
12
|
+
|
13
|
+
bundle_binstub = File.expand_path("bundle", __dir__)
|
14
|
+
|
15
|
+
if File.file?(bundle_binstub)
|
16
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
17
|
+
load(bundle_binstub)
|
18
|
+
else
|
19
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
20
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
require "rubygems"
|
25
|
+
require "bundler/setup"
|
26
|
+
|
27
|
+
load Gem.bin_path("rake", "rake")
|
data/bin/rspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rspec' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
12
|
+
|
13
|
+
bundle_binstub = File.expand_path("bundle", __dir__)
|
14
|
+
|
15
|
+
if File.file?(bundle_binstub)
|
16
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
17
|
+
load(bundle_binstub)
|
18
|
+
else
|
19
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
20
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
require "rubygems"
|
25
|
+
require "bundler/setup"
|
26
|
+
|
27
|
+
load Gem.bin_path("rspec-core", "rspec")
|
data/bin/setup
CHANGED
data/config/rubocop_base.yml
CHANGED
@@ -1,15 +1,11 @@
|
|
1
|
+
# Most of those cops are documented here:
|
2
|
+
# https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Style
|
3
|
+
#
|
1
4
|
AllCops:
|
2
5
|
NewCops: disable
|
3
|
-
Exclude:
|
4
|
-
- '**/vendor/bundle/**/*'
|
5
|
-
- '**/bin/**/*'
|
6
|
-
- '**/db/schema.rb'
|
7
|
-
- '**/node_modules/**/*'
|
8
6
|
|
9
7
|
require:
|
10
|
-
- standard
|
11
|
-
- rubocop-rails
|
12
|
-
- rubocop-rake
|
8
|
+
- standard # https://github.com/standardrb/standard
|
13
9
|
|
14
10
|
inherit_gem:
|
15
11
|
standard: config/base.yml
|
@@ -23,10 +19,32 @@ Style/MutableConstant:
|
|
23
19
|
Enabled: true
|
24
20
|
EnforcedStyle: strict
|
25
21
|
|
26
|
-
#
|
27
|
-
|
28
|
-
Enabled:
|
22
|
+
# Pass &:method_name as an argument to index_by instead of a block.
|
23
|
+
Style/SymbolProc:
|
24
|
+
Enabled: true
|
25
|
+
|
26
|
+
# Prefer `[:foo, :bar]` to `%i[foo bar]`.
|
27
|
+
Style/SymbolArray:
|
28
|
+
Enabled: true
|
29
|
+
EnforcedStyle: brackets
|
30
|
+
|
31
|
+
# Prefer `["foo", "bar"]` to `%w[foo bar]`.
|
32
|
+
Style/WordArray:
|
33
|
+
Enabled: true
|
34
|
+
EnforcedStyle: brackets
|
35
|
+
|
36
|
+
# <% if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.1") %>
|
37
|
+
Style/HashSyntax:
|
38
|
+
Enabled: true
|
39
|
+
EnforcedShorthandSyntax: always
|
40
|
+
# <% end %>
|
29
41
|
|
30
|
-
#
|
31
|
-
|
32
|
-
|
42
|
+
# Keep at the end of the file (after the individual cops configuration),
|
43
|
+
# otherwise, those cops are not configured properly.
|
44
|
+
inherit_from:
|
45
|
+
# <% Dir["#{File.expand_path(__dir__)}/rubocop_extensions/*.yml"].each do |filename| %>
|
46
|
+
# <% gem_name = filename.delete_suffix(".yml").delete_prefix("#{File.expand_path(__dir__)}/rubocop_extensions/") %>
|
47
|
+
# <% if Gem.loaded_specs.key?(gem_name) %>
|
48
|
+
- rubocop_extensions/<%= gem_name %>.yml
|
49
|
+
# <% end # if Gem.loaded_specs.key? %>
|
50
|
+
# <% end # Dir.foreach %>
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# Documentation on the rules can be found here:
|
2
|
+
# https://github.com/DmitryTsepelev/rubocop-graphql/tree/master/lib/rubocop/cop/graphql
|
3
|
+
#
|
4
|
+
require:
|
5
|
+
- rubocop-graphql
|
6
|
+
|
7
|
+
GraphQL:
|
8
|
+
Enabled: false
|
9
|
+
|
10
|
+
# Keep mutation file ordered.
|
11
|
+
GraphQL/OrderedFields:
|
12
|
+
Enabled: true
|
13
|
+
Exclude:
|
14
|
+
- "*"
|
15
|
+
Include:
|
16
|
+
- '**/mutation_type.rb'
|
17
|
+
|
18
|
+
# Ensures snake case of argument name.
|
19
|
+
GraphQL/ArgumentName:
|
20
|
+
Enabled: true
|
21
|
+
|
22
|
+
# Detects duplicate argument definitions.
|
23
|
+
GraphQL/ArgumentUniqueness:
|
24
|
+
Enabled: true
|
25
|
+
|
26
|
+
# Prevents defining unnecessary resolver methods in cases when `:hash_key` option can be used.
|
27
|
+
GraphQL/FieldHashKey:
|
28
|
+
Enabled: true
|
29
|
+
|
30
|
+
# Prevents defining unnecessary resolver methods in cases when `:method option` can be used.
|
31
|
+
GraphQL/FieldMethod:
|
32
|
+
Enabled: true
|
33
|
+
|
34
|
+
# Ensures snake case of field name.
|
35
|
+
GraphQL/FieldName:
|
36
|
+
Enabled: true
|
37
|
+
|
38
|
+
# Detects duplicate field definitions within the same type.
|
39
|
+
GraphQL/FieldUniqueness:
|
40
|
+
Enabled: true
|
41
|
+
|
42
|
+
# Ensures type definitions are class-based (no longer legacy).
|
43
|
+
GraphQL/LegacyDsl:
|
44
|
+
Enabled: true
|
45
|
+
|
46
|
+
# Ensures fields with multiple definitions are grouped together
|
47
|
+
GraphQL/MultipleFieldDefinitions:
|
48
|
+
Enabled: true
|
49
|
+
|
50
|
+
# Forces `Relay::Node` implementations to expose an `authorized?` method.
|
51
|
+
GraphQL/NotAuthorizedNodeType:
|
52
|
+
Enabled: true
|
53
|
+
|
54
|
+
# Checks for has an unnecessary argument camelize.
|
55
|
+
GraphQL/UnnecessaryArgumentCamelize:
|
56
|
+
Enabled: true
|
57
|
+
|
58
|
+
# Prevents defining an unnecessary `alias`, `method`, or `resolver_method` arguements to fields.
|
59
|
+
GraphQL/UnnecessaryFieldAlias:
|
60
|
+
Enabled: true
|
61
|
+
|
62
|
+
# Checks for has an unnecessary field camelize.
|
63
|
+
GraphQL/UnnecessaryFieldCamelize:
|
64
|
+
Enabled: true
|
65
|
+
|
66
|
+
# Arguments should either be listed explicitly or `**rest` should be in the resolve signature.
|
67
|
+
GraphQL/UnusedArgument:
|
68
|
+
Enabled: true
|
@@ -0,0 +1,34 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- '**/vendor/bundle/**/*'
|
4
|
+
- '**/db/schema.rb'
|
5
|
+
|
6
|
+
require:
|
7
|
+
- rubocop-rails
|
8
|
+
|
9
|
+
Rails:
|
10
|
+
Enabled: false
|
11
|
+
|
12
|
+
# Prefer :bad_request over 400 to define HTTP status code.
|
13
|
+
Rails/HttpStatus:
|
14
|
+
Enabled: true
|
15
|
+
|
16
|
+
# Prefer index_by over map { ... }.to_h.
|
17
|
+
Rails/IndexBy:
|
18
|
+
Enabled: true
|
19
|
+
|
20
|
+
# Prefer index_with over each_with_object.
|
21
|
+
Rails/IndexWith:
|
22
|
+
Enabled: true
|
23
|
+
|
24
|
+
# Specify a :dependent option. (https://rails.rubystyle.guide#has_many-has_one-dependent-option)
|
25
|
+
Rails/HasManyOrHasOneDependent:
|
26
|
+
Enabled: true
|
27
|
+
|
28
|
+
# Specify an :inverse_of option.
|
29
|
+
Rails/InverseOf:
|
30
|
+
Enabled: true
|
31
|
+
|
32
|
+
# Specifying the default value for foreign_key is redundant.
|
33
|
+
Rails/RedundantForeignKey:
|
34
|
+
Enabled: true
|
@@ -0,0 +1,208 @@
|
|
1
|
+
require:
|
2
|
+
- rubocop-rspec
|
3
|
+
|
4
|
+
RSpec:
|
5
|
+
Enabled: false
|
6
|
+
|
7
|
+
# Check that instances are not being stubbed globally.
|
8
|
+
# Prefer instance doubles over stubbing any instance of a class.
|
9
|
+
RSpec/AnyInstance:
|
10
|
+
Enabled: true
|
11
|
+
|
12
|
+
# Checks that around blocks actually run the test.
|
13
|
+
# Would be a shame if the test would be green simply because it is not called.
|
14
|
+
RSpec/AroundBlock:
|
15
|
+
Enabled: true
|
16
|
+
|
17
|
+
# Be what? Not nil? Present? Truthy?
|
18
|
+
RSpec/Be:
|
19
|
+
Enabled: true
|
20
|
+
|
21
|
+
# The be matcher compares by identity while the eq matcher compares using ==.
|
22
|
+
# Booleans and nil can be compared by identity and therefore the be matcher is
|
23
|
+
# preferable as it is a more strict test.
|
24
|
+
RSpec/BeEq:
|
25
|
+
Enabled: true
|
26
|
+
|
27
|
+
# The be matcher compares by identity while the eq matcher compares using ==.
|
28
|
+
# Booleans and nil can be compared by identity and therefore the be matcher is
|
29
|
+
# preferable as it is a more strict test.
|
30
|
+
RSpec/BeEql:
|
31
|
+
Enabled: true
|
32
|
+
|
33
|
+
# Prefer `.to be_nil` to `.to be(nil)`.
|
34
|
+
RSpec/BeNil:
|
35
|
+
Enabled: true
|
36
|
+
|
37
|
+
# Avoid `before(:all)`, prefer `before(:each)` within a group.
|
38
|
+
RSpec/BeforeAfterAll:
|
39
|
+
Enabled: true
|
40
|
+
|
41
|
+
# Avoid `.to change(...).by(0)`, prefer `not_to change` and `.to not_change` (for composite).
|
42
|
+
RSpec/ChangeByZero:
|
43
|
+
Enabled: true
|
44
|
+
|
45
|
+
# Expect expectations in all tests.
|
46
|
+
# If it's just expecting it to not raise, wrap it in `expect do ... end.not_to raise`.
|
47
|
+
RSpec/EmptyExampleGroup:
|
48
|
+
Enabled: true
|
49
|
+
|
50
|
+
# Don't allow empty hooks.
|
51
|
+
RSpec/EmptyHook:
|
52
|
+
Enabled: true
|
53
|
+
|
54
|
+
# Separate groups.
|
55
|
+
RSpec/EmptyLineAfterExampleGroup:
|
56
|
+
Enabled: true
|
57
|
+
|
58
|
+
# Separate `let`s from tests.
|
59
|
+
RSpec/EmptyLineAfterFinalLet:
|
60
|
+
Enabled: true
|
61
|
+
|
62
|
+
# Separate hooks from tests.
|
63
|
+
RSpec/EmptyLineAfterHook:
|
64
|
+
Enabled: true
|
65
|
+
|
66
|
+
# Don't allow specs without description.
|
67
|
+
RSpec/ExampleWithoutDescription:
|
68
|
+
Enabled: true
|
69
|
+
|
70
|
+
# Checks for common mistakes in example descriptions.
|
71
|
+
RSpec/ExampleWording:
|
72
|
+
Enabled: true
|
73
|
+
|
74
|
+
# Trim descriptions.
|
75
|
+
RSpec/ExcessiveDocstringSpacing:
|
76
|
+
Enabled: true
|
77
|
+
|
78
|
+
# Do stdout expectations right.
|
79
|
+
RSpec/ExpectOutput:
|
80
|
+
Enabled: true
|
81
|
+
|
82
|
+
# Enforces spec file naming convention.
|
83
|
+
RSpec/FilePath:
|
84
|
+
Enabled: true
|
85
|
+
|
86
|
+
# Don't forget focussed tests (expecially useful for the CI to fail).
|
87
|
+
RSpec/Focus:
|
88
|
+
Enabled: true
|
89
|
+
AutoCorrect: false
|
90
|
+
|
91
|
+
# Checks for before/around/after hooks that come after an example.
|
92
|
+
RSpec/HooksBeforeExamples:
|
93
|
+
Enabled: true
|
94
|
+
|
95
|
+
# Don't expect something to be itself.
|
96
|
+
RSpec/IdenticalEqualityAssertion:
|
97
|
+
Enabled: true
|
98
|
+
|
99
|
+
# Explicitly declare `it` blocks.
|
100
|
+
RSpec/ImplicitBlockExpectation:
|
101
|
+
Enabled: true
|
102
|
+
|
103
|
+
# Prevent instance variable usage in specs.
|
104
|
+
RSpec/InstanceVariable:
|
105
|
+
Enabled: true
|
106
|
+
|
107
|
+
# Check that all matcher is used instead of iterating over an array.
|
108
|
+
RSpec/IteratedExpectation:
|
109
|
+
Enabled: true
|
110
|
+
|
111
|
+
# Checks that no class, module, or constant is declared.
|
112
|
+
# Constants, including classes and modules, when declared in a block scope,
|
113
|
+
# are defined in global namespace, and leak between examples.
|
114
|
+
# Prevents class re-opening, leading to unpredictable side effects.
|
115
|
+
RSpec/LeakyConstantDeclaration:
|
116
|
+
Enabled: true
|
117
|
+
|
118
|
+
# Force `let`s to be before tests.
|
119
|
+
RSpec/LetBeforeExamples:
|
120
|
+
Enabled: true
|
121
|
+
|
122
|
+
# Force groups to have descriptions or symbol.
|
123
|
+
RSpec/MissingExampleGroupArgument:
|
124
|
+
Enabled: true
|
125
|
+
|
126
|
+
# Files should have only one root `describe` block.
|
127
|
+
RSpec/MultipleDescribes:
|
128
|
+
Enabled: true
|
129
|
+
|
130
|
+
# Checks if an example group defines subject multiple times.
|
131
|
+
RSpec/MultipleSubjects:
|
132
|
+
Enabled: true
|
133
|
+
|
134
|
+
# Checks if an example contains any expectation.
|
135
|
+
RSpec/NoExpectationExample:
|
136
|
+
Enabled: false # considered, but gives false positives when expectations are inside of a re-used function
|
137
|
+
|
138
|
+
# Prefer `expect(...).not_to` to `expect(...).to_not`.
|
139
|
+
RSpec/NotToNot:
|
140
|
+
Enabled: true
|
141
|
+
|
142
|
+
# Prevent setting the same `let` block more than once.
|
143
|
+
RSpec/OverwritingSetup:
|
144
|
+
Enabled: true
|
145
|
+
|
146
|
+
# Prevent useless `around` hooks.
|
147
|
+
RSpec/RedundantAround:
|
148
|
+
Enabled: true
|
149
|
+
|
150
|
+
# Prevent duplicate description.
|
151
|
+
RSpec/RepeatedDescription:
|
152
|
+
Enabled: true
|
153
|
+
|
154
|
+
# Prevent duplicate example (test).
|
155
|
+
RSpec/RepeatedExample:
|
156
|
+
Enabled: true
|
157
|
+
|
158
|
+
# Detects duplicate in example group body.
|
159
|
+
RSpec/RepeatedExampleGroupBody:
|
160
|
+
Enabled: true
|
161
|
+
|
162
|
+
# Detects duplicate in example group description.
|
163
|
+
RSpec/RepeatedExampleGroupDescription:
|
164
|
+
Enabled: true
|
165
|
+
|
166
|
+
# Check for repeated include of shared examples.
|
167
|
+
RSpec/RepeatedIncludeExample:
|
168
|
+
Enabled: true
|
169
|
+
|
170
|
+
# Keep `let` blocks together.
|
171
|
+
RSpec/ScatteredLet:
|
172
|
+
Enabled: true
|
173
|
+
|
174
|
+
# Keep `setup` blocks (ex: group `before`) together.
|
175
|
+
RSpec/ScatteredSetup:
|
176
|
+
Enabled: true
|
177
|
+
|
178
|
+
# Checks for proper shared_context and shared_examples usage.
|
179
|
+
RSpec/SharedContext:
|
180
|
+
Enabled: true
|
181
|
+
|
182
|
+
# Enforces use of string to titleize shared examples.
|
183
|
+
RSpec/SharedExamples:
|
184
|
+
Enabled: true
|
185
|
+
|
186
|
+
# Checks that chains of messages contain more than one element.
|
187
|
+
RSpec/SingleArgumentMessageChain:
|
188
|
+
Enabled: true
|
189
|
+
|
190
|
+
# Skip either the whole example of not at all.
|
191
|
+
RSpec/SkipBlockInsideExample:
|
192
|
+
Enabled: true
|
193
|
+
|
194
|
+
# Be specific about what exception/error is expected.
|
195
|
+
RSpec/UnspecifiedException:
|
196
|
+
Enabled: true
|
197
|
+
|
198
|
+
# Use symbols for `let` and `subject` names.
|
199
|
+
RSpec/VariableDefinition:
|
200
|
+
Enabled: true
|
201
|
+
|
202
|
+
# Avoid empty expectation.
|
203
|
+
RSpec/VoidExpect:
|
204
|
+
Enabled: true
|
205
|
+
|
206
|
+
# Use proper `yield` stub syntax.
|
207
|
+
RSpec/Yield:
|
208
|
+
Enabled: true
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
# Specify your gem's dependencies in shimmer.gemspec
|
6
|
+
gemspec path: ".."
|
7
|
+
|
8
|
+
gem "rails", "~> 7.0.0"
|
9
|
+
gem "propshaft"
|
10
|
+
gem "sqlite3"
|
11
|
+
gem "puma"
|
12
|
+
gem "jsbundling-rails"
|
13
|
+
gem "turbo-rails"
|
14
|
+
gem "stimulus-rails"
|
15
|
+
gem "cssbundling-rails"
|
16
|
+
gem "jbuilder"
|
17
|
+
gem "bootsnap", require: false
|
18
|
+
gem "dotenv"
|
19
|
+
gem "slim-rails"
|
20
|
+
gem "awesome_print"
|
21
|
+
gem "dotenv-rails"
|
22
|
+
|
23
|
+
group :development, :test do
|
24
|
+
gem "debug", platforms: %i[mri mingw x64_mingw]
|
25
|
+
gem "rake"
|
26
|
+
gem "rspec-rails"
|
27
|
+
gem "rspec-retry"
|
28
|
+
gem "pry"
|
29
|
+
gem "pry-rails"
|
30
|
+
gem "pry-byebug"
|
31
|
+
gem "pry-doc"
|
32
|
+
gem "guard"
|
33
|
+
gem "guard-rspec"
|
34
|
+
gem "capybara"
|
35
|
+
gem "rack_session_access"
|
36
|
+
gem "cuprite"
|
37
|
+
gem "standard"
|
38
|
+
gem "rubocop"
|
39
|
+
gem "rubocop-rails"
|
40
|
+
gem "rubocop-performance"
|
41
|
+
gem "rubocop-rspec"
|
42
|
+
gem "rubocop-rake"
|
43
|
+
end
|
44
|
+
|
45
|
+
group :development do
|
46
|
+
gem "web-console"
|
47
|
+
gem "annotate"
|
48
|
+
end
|
@@ -10,7 +10,7 @@ module Shimmer
|
|
10
10
|
def request_details(params)
|
11
11
|
name = params[:user] ? JSON.parse(params[:user])["name"] : {}
|
12
12
|
headers = {
|
13
|
-
|
13
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
14
14
|
}
|
15
15
|
form = {
|
16
16
|
grant_type: "authorization_code",
|
data/lib/shimmer/form/builder.rb
CHANGED
@@ -72,7 +72,7 @@ module Shimmer
|
|
72
72
|
classes << "input--error"
|
73
73
|
errors = safe_join(object.errors[method].map { |e| content_tag :div, e, class: "input__error" })
|
74
74
|
end
|
75
|
-
label = label == false ? nil : self.label(label_method || method, label, class: "input__label")
|
75
|
+
label = (label == false) ? nil : self.label(label_method || method, label, class: "input__label")
|
76
76
|
description = description.presence ? content_tag(:div, description, class: "input__description") : nil
|
77
77
|
content_tag(:div, safe_join([label, content, description, errors, extra].compact), class: ["input"] + classes, **options)
|
78
78
|
end
|
data/lib/shimmer/utils/config.rb
CHANGED
@@ -3,16 +3,22 @@
|
|
3
3
|
module Shimmer
|
4
4
|
class Config
|
5
5
|
include Singleton
|
6
|
+
|
6
7
|
class MissingConfigError < StandardError; end
|
7
8
|
|
8
|
-
def method_missing(method_name)
|
9
|
+
def method_missing(method_name, **options)
|
10
|
+
default_provided = options.key?(:default)
|
11
|
+
default_value = options.delete(:default) if default_provided
|
12
|
+
raise ArgumentError, "unknown option#{"s" if options.length > 1}: #{options.keys.join(", ")}." if options.any?
|
13
|
+
|
9
14
|
method_name = method_name.to_s
|
10
15
|
type = :string
|
11
16
|
key = method_name.delete_suffix("!").delete_suffix("?")
|
12
17
|
required = method_name.end_with?("!")
|
13
18
|
type = :bool if method_name.end_with?("?")
|
14
19
|
value = ENV[key.upcase].presence
|
15
|
-
value ||= Rails.application.credentials.
|
20
|
+
value ||= Rails.application.credentials.public_send(key)
|
21
|
+
value = default_value if value.nil?
|
16
22
|
raise MissingConfigError, "#{key.upcase} environment value is missing" if required && value.blank?
|
17
23
|
|
18
24
|
coerce value, type
|
@@ -25,7 +31,7 @@ module Shimmer
|
|
25
31
|
private
|
26
32
|
|
27
33
|
def coerce(value, type)
|
28
|
-
return !value.in?(["n", "0", "no", "false"]) if type == :bool && value.is_a?(String)
|
34
|
+
return !value.downcase.in?(["n", "0", "no", "false"]) if type == :bool && value.is_a?(String)
|
29
35
|
|
30
36
|
value
|
31
37
|
end
|
data/lib/shimmer/version.rb
CHANGED
metadata
CHANGED
@@ -1,113 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shimmer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.29
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jens Ravens
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rake
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '13.0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '13.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: standardrb
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rubocop
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rubocop-rails
|
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
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rubocop-performance
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rubocop-rspec
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: rubocop-rake
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
11
|
+
date: 2023-05-08 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
111
13
|
description:
|
112
14
|
email:
|
113
15
|
- jens@nerdgeschoss.de
|
@@ -118,6 +20,7 @@ files:
|
|
118
20
|
- ".editorconfig"
|
119
21
|
- ".eslintrc.js"
|
120
22
|
- ".prettierrc"
|
23
|
+
- ".rspec"
|
121
24
|
- ".rubocop.yml"
|
122
25
|
- ".ruby-version"
|
123
26
|
- ".solargraph.yml"
|
@@ -126,14 +29,24 @@ files:
|
|
126
29
|
- CODE_OF_CONDUCT.md
|
127
30
|
- Gemfile
|
128
31
|
- Gemfile.lock
|
32
|
+
- Guardfile
|
129
33
|
- LICENSE.txt
|
130
34
|
- README.md
|
131
35
|
- Rakefile
|
36
|
+
- bin/_guard-core
|
132
37
|
- bin/console
|
38
|
+
- bin/dev
|
39
|
+
- bin/guard
|
40
|
+
- bin/rake
|
41
|
+
- bin/rspec
|
133
42
|
- bin/rubocop
|
134
43
|
- bin/setup
|
135
44
|
- bin/solargraph
|
136
45
|
- config/rubocop_base.yml
|
46
|
+
- config/rubocop_extensions/graphql.yml
|
47
|
+
- config/rubocop_extensions/rails.yml
|
48
|
+
- config/rubocop_extensions/rspec.yml
|
49
|
+
- gemfiles/Gemfile-rails-7-0
|
137
50
|
- lib/shimmer.rb
|
138
51
|
- lib/shimmer/auth.rb
|
139
52
|
- lib/shimmer/auth/apple_provider.rb
|
@@ -217,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
130
|
- !ruby/object:Gem::Version
|
218
131
|
version: '0'
|
219
132
|
requirements: []
|
220
|
-
rubygems_version: 3.
|
133
|
+
rubygems_version: 3.1.6
|
221
134
|
signing_key:
|
222
135
|
specification_version: 4
|
223
136
|
summary: Shimmer brings all the bells and whistles of a hotwired application, right
|