super 0.0.7 → 0.0.12

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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +0 -6
  3. data/CONTRIBUTING.md +56 -0
  4. data/README.md +49 -61
  5. data/Rakefile +16 -14
  6. data/app/assets/javascripts/super/application.js +297 -97
  7. data/app/assets/stylesheets/super/application.css +5600 -0
  8. data/app/controllers/super/application_controller.rb +20 -14
  9. data/app/helpers/super/form_builder_helper.rb +25 -0
  10. data/app/views/layouts/super/application.html.erb +23 -9
  11. data/app/views/super/application/{_super_schema_display_actions.html.erb → _display_actions.html.erb} +0 -0
  12. data/app/views/super/application/{_super_schema_display_index.html.erb → _display_index.html.erb} +6 -6
  13. data/app/views/super/application/_display_rich_text.html.erb +1 -0
  14. data/app/views/super/application/_display_show.html.erb +8 -0
  15. data/app/views/super/application/_filter.html.erb +5 -13
  16. data/app/views/super/application/_filter_type_select.html.erb +9 -19
  17. data/app/views/super/application/_filter_type_text.html.erb +7 -11
  18. data/app/views/super/application/_filter_type_timestamp.html.erb +6 -17
  19. data/app/views/super/application/_form.html.erb +15 -0
  20. data/app/views/super/application/_form_field__destroy.html.erb +1 -9
  21. data/app/views/super/application/_form_field_checkbox.html.erb +1 -0
  22. data/app/views/super/application/_form_field_rich_text_area.html.erb +1 -0
  23. data/app/views/super/application/_form_field_select.html.erb +1 -23
  24. data/app/views/super/application/_form_field_text.html.erb +1 -13
  25. data/app/views/super/application/{_super_layout.html.erb → _layout.html.erb} +7 -7
  26. data/app/views/super/application/{_super_pagination.html.erb → _pagination.html.erb} +1 -1
  27. data/app/views/super/application/{_super_panel.html.erb → _panel.html.erb} +2 -2
  28. data/app/views/super/application/_query.html.erb +18 -0
  29. data/app/views/super/application/_sort.html.erb +18 -0
  30. data/app/views/super/application/_sort_expression.html.erb +25 -0
  31. data/app/views/super/application/edit.html.erb +1 -0
  32. data/app/views/super/application/index.html.erb +1 -0
  33. data/app/views/super/application/new.html.erb +1 -0
  34. data/app/views/super/application/show.html.erb +1 -0
  35. data/app/views/super/feather/README.md +1 -0
  36. data/app/views/super/feather/_x.html +15 -0
  37. data/config/routes.rb +2 -0
  38. data/docs/cheat.md +8 -8
  39. data/frontend/super-frontend/dist/application.css +5600 -0
  40. data/frontend/super-frontend/dist/application.js +297 -97
  41. data/lib/generators/super/action_text/USAGE +23 -0
  42. data/lib/generators/super/action_text/action_text_generator.rb +32 -0
  43. data/lib/generators/super/action_text/templates/pack_super_action_text.css +23 -0
  44. data/lib/generators/super/action_text/templates/pack_super_action_text.js +4 -0
  45. data/lib/generators/super/install/install_generator.rb +18 -7
  46. data/lib/generators/super/install/templates/base_controller.rb.tt +9 -1
  47. data/lib/generators/super/install/templates/initializer.rb.tt +9 -2
  48. data/lib/generators/super/resource/resource_generator.rb +107 -30
  49. data/lib/generators/super/resource/templates/resources_controller.rb.tt +3 -39
  50. data/lib/generators/super/webpacker/USAGE +5 -4
  51. data/lib/generators/super/webpacker/webpacker_generator.rb +5 -2
  52. data/lib/super.rb +17 -0
  53. data/lib/super/action_inquirer.rb +2 -0
  54. data/lib/super/assets.rb +114 -38
  55. data/lib/super/client_error.rb +2 -0
  56. data/lib/super/compatibility.rb +2 -0
  57. data/lib/super/configuration.rb +16 -79
  58. data/lib/super/controls.rb +11 -25
  59. data/lib/super/controls/optional.rb +75 -16
  60. data/lib/super/controls/steps.rb +36 -58
  61. data/lib/super/controls/view.rb +55 -0
  62. data/lib/super/display.rb +88 -0
  63. data/lib/super/display/guesser.rb +36 -0
  64. data/lib/super/display/schema_types.rb +80 -78
  65. data/lib/super/engine.rb +5 -1
  66. data/lib/super/error.rb +21 -0
  67. data/lib/super/filter.rb +7 -130
  68. data/lib/super/filter/form_object.rb +94 -0
  69. data/lib/super/filter/guesser.rb +32 -0
  70. data/lib/super/filter/operator.rb +2 -0
  71. data/lib/super/filter/schema_types.rb +3 -7
  72. data/lib/super/form.rb +29 -40
  73. data/lib/super/form/builder.rb +206 -0
  74. data/lib/super/form/guesser.rb +29 -0
  75. data/lib/super/form/inline_errors.rb +28 -0
  76. data/lib/super/form/schema_types.rb +31 -29
  77. data/lib/super/form/strong_params.rb +31 -0
  78. data/lib/super/layout.rb +3 -1
  79. data/lib/super/link.rb +7 -0
  80. data/lib/super/navigation/automatic.rb +4 -2
  81. data/lib/super/pagination.rb +13 -17
  82. data/lib/super/panel.rb +3 -1
  83. data/lib/super/partial.rb +2 -0
  84. data/lib/super/partial/resolving.rb +2 -0
  85. data/lib/super/plugin.rb +2 -0
  86. data/lib/super/query/form_object.rb +48 -0
  87. data/lib/super/schema.rb +2 -25
  88. data/lib/super/schema/common.rb +27 -0
  89. data/lib/super/schema/guesser.rb +79 -0
  90. data/lib/super/sort.rb +110 -0
  91. data/lib/super/useful/builder.rb +25 -0
  92. data/lib/super/useful/enum.rb +63 -0
  93. data/lib/super/version.rb +3 -1
  94. data/lib/super/view_helper.rb +2 -19
  95. metadata +63 -34
  96. data/app/views/super/application/_form_inline_errors.html.erb +0 -10
  97. data/app/views/super/application/_super_schema_display_show.html.erb +0 -8
  98. data/app/views/super/application/_super_schema_form.html.erb +0 -15
  99. data/docs/README.md +0 -6
  100. data/docs/faq.md +0 -44
  101. data/docs/quick_start.md +0 -45
  102. data/docs/webpacker.md +0 -17
  103. data/docs/yard_customizations.rb +0 -41
  104. data/frontend/super-frontend/build.js +0 -36
  105. data/frontend/super-frontend/package.json +0 -21
  106. data/frontend/super-frontend/postcss.config.js +0 -6
  107. data/frontend/super-frontend/src/javascripts/super/application.ts +0 -18
  108. data/frontend/super-frontend/src/javascripts/super/apply_template_controller.ts +0 -19
  109. data/frontend/super-frontend/src/javascripts/super/rails__ujs.d.ts +0 -1
  110. data/frontend/super-frontend/src/javascripts/super/toggle_pending_destruction_controller.ts +0 -15
  111. data/frontend/super-frontend/src/stylesheets/super/application.css +0 -77
  112. data/frontend/super-frontend/tailwind.config.js +0 -15
  113. data/frontend/super-frontend/tsconfig.json +0 -13
  114. data/frontend/super-frontend/yarn.lock +0 -5448
  115. data/lib/super/controls/required.rb +0 -41
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Super
4
+ class Schema
5
+ class Guesser
6
+ def initialize(model:, fields:, type:)
7
+ @model = model
8
+ @fields = fields
9
+ @type = type
10
+ @rejects = []
11
+ end
12
+
13
+ def limit
14
+ @limit = yield
15
+ self
16
+ end
17
+
18
+ def reject(&block)
19
+ @rejects.push(block)
20
+ self
21
+ end
22
+
23
+ def ignore_foreign_keys
24
+ @rejects.push(-> (attribute_name) { is_foreign_key[attribute_name] })
25
+ self
26
+ end
27
+
28
+ def assign_type(&block)
29
+ @assign_type = block
30
+ self
31
+ end
32
+
33
+ def call
34
+ result = sorted_attribute_names
35
+ result = @rejects.reduce(result) do |intermediary_result, rejection_proc|
36
+ intermediary_result.reject(&rejection_proc)
37
+ end
38
+
39
+ result = result.first(@limit) if @limit && @limit != Float::INFINITY
40
+
41
+ result.each do |name|
42
+ @fields[name] = @assign_type.call(name)
43
+ end
44
+ end
45
+
46
+ private
47
+
48
+ def sorted_attribute_names
49
+ @model
50
+ .attribute_names
51
+ .sort_by { |name| sort_weight[name] }
52
+ end
53
+
54
+ def sort_weight
55
+ @sort_weight ||= Hash.new do |hash, name|
56
+ hash[name] =
57
+ case name
58
+ when "id" then 0
59
+ when "title" then 1000
60
+ when "name" then 1300
61
+ when "created_at" then 9500
62
+ when "updated_at" then 9750
63
+ else
64
+ 2000 + hash.size
65
+ end
66
+ end
67
+ end
68
+
69
+ def is_foreign_key
70
+ @is_foreign_key ||=
71
+ @model
72
+ .reflect_on_all_associations
73
+ .select { |a| a.macro == :belongs_to }
74
+ .map { |a| [a.foreign_key, true] }
75
+ .to_h
76
+ end
77
+ end
78
+ end
79
+ end
data/lib/super/sort.rb ADDED
@@ -0,0 +1,110 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Super
4
+ module Sort
5
+ class FormObject
6
+ DIRECTIONS = ["asc", "desc"]
7
+
8
+ def initialize(model:, params:, default:, sortable_columns:)
9
+ @model = model
10
+ @params = params.dup
11
+ @default = default
12
+ @sortable_columns = sortable_columns.map(&:to_s)
13
+
14
+ @params.permit!
15
+ end
16
+
17
+ attr_reader :sortable_columns
18
+
19
+ def to_partial_path
20
+ "sort"
21
+ end
22
+
23
+ def exprs
24
+ sanitized_expr_params.map { |ordering| Expression.new(**ordering) }
25
+ end
26
+
27
+ def new_expr
28
+ Expression.new(a: nil, d: :desc)
29
+ end
30
+
31
+ class Expression
32
+ attr_accessor :a # attribute
33
+ attr_accessor :d # direction
34
+
35
+ def initialize(a:, d:)
36
+ @a = a
37
+ @d = d.to_s
38
+ end
39
+
40
+ def with_index(index)
41
+ @index = index
42
+ self
43
+ end
44
+
45
+ # This is for `fields_for` to work
46
+ def id
47
+ @index
48
+ end
49
+
50
+ def persisted?
51
+ false
52
+ end
53
+ end
54
+
55
+ def persisted?
56
+ false
57
+ end
58
+
59
+ def apply_changes(query)
60
+ exprs.each do |expr|
61
+ query = query.order(expr.a => expr.d)
62
+ end
63
+
64
+ query
65
+ end
66
+
67
+ private
68
+
69
+ # Stringifies the values
70
+ def sanitized_expr_params
71
+ seen = {}
72
+ normalized_expr_params
73
+ .each do |p|
74
+ p[:a] = p[:a].presence&.to_s&.strip
75
+ p[:d] = p[:d].presence&.to_s&.strip
76
+ end
77
+ .select { |p| p[:a].present? && DIRECTIONS.include?(p[:d]) }
78
+ .select { |p| @sortable_columns.include?(p[:a]) }
79
+ .select do |p|
80
+ next false if seen.key?(p[:a])
81
+
82
+ seen[p[:a]] = true
83
+ true
84
+ end
85
+ end
86
+
87
+ # Symbolizes the keys
88
+ def normalized_expr_params
89
+ from_params = @params[:exprs]
90
+
91
+ return default_as_query if from_params.nil?
92
+
93
+ if from_params.is_a?(Array)
94
+ return from_params.map(&:to_h).map(&:symbolize_keys)
95
+ end
96
+
97
+ from_params.to_h.values.map(&:symbolize_keys)
98
+ end
99
+
100
+ def default_as_query
101
+ @default.map do |attribute_name, direction|
102
+ {
103
+ a: attribute_name,
104
+ d: direction,
105
+ }
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Super
4
+ module Useful
5
+ module Builder
6
+ def builder(method_name)
7
+ alias_method("original_#{method_name}", method_name)
8
+
9
+ define_method(method_name) do
10
+ send("original_#{method_name}")
11
+ self
12
+ end
13
+ end
14
+
15
+ def builder_with_block(method_name)
16
+ alias_method("original_#{method_name}", method_name)
17
+
18
+ define_method(method_name) do |&block|
19
+ send("original_#{method_name}", &block)
20
+ self
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Super
4
+ module Useful
5
+ class Enum
6
+ def initialize(*choices)
7
+ @choices = choices.flatten.map { |choice| [choice, nil] }.to_h
8
+ end
9
+
10
+ def case(chosen)
11
+ Case.new(@choices, chosen)
12
+ end
13
+
14
+ class Case
15
+ def initialize(choices, chosen)
16
+ if !choices.key?(chosen)
17
+ raise Error::Enum::ImpossibleValue,
18
+ "`#{chosen}` isn't in: #{choices.keys.map(&:inspect).join(", ")}"
19
+ end
20
+
21
+ @choices = choices
22
+ @chosen = chosen
23
+ @whens = {}
24
+ end
25
+
26
+ def when(*keys, &block)
27
+ if !block_given?
28
+ raise Error::ArgumentError, "must receive block"
29
+ end
30
+
31
+ keys.each do |key|
32
+ if !@choices.key?(key)
33
+ raise Error::Enum::ImpossibleValue, "`#{key.inspect}` is not a possibility"
34
+ end
35
+
36
+ @whens[key] = block
37
+ end
38
+
39
+ self
40
+ end
41
+
42
+ def result
43
+ if @choices.size != @whens.size
44
+ missing_keys = @choices.keys - @whens.keys
45
+ raise Error::Enum::UndefinedCase, "Unset cases: #{missing_keys.join(", ")}"
46
+ end
47
+
48
+ @whens[@chosen].call(@value)
49
+ end
50
+
51
+ private
52
+
53
+ def matching_possibilities_and_checks?
54
+ if @whens.size == @choices.size
55
+ return true
56
+ end
57
+
58
+ false
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
data/lib/super/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Super
2
- VERSION = "0.0.7"
4
+ VERSION = "0.0.12"
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Super
2
4
  module ViewHelper
3
5
  module_function
@@ -20,24 +22,5 @@ module Super
20
22
 
21
23
  result.compact.join(" ")
22
24
  end
23
-
24
- def errors_accounting_for_reflections(model_instance, column_or_association)
25
- errable_fields(model_instance, column_or_association)
26
- .flat_map { |field| Compatability.errable_fields(field) }
27
- .flat_map { |field| model_instance.errors.full_messages_for(field) }
28
- .uniq
29
- end
30
-
31
- def errable_fields(model_instance, column_or_association)
32
- column_or_association = column_or_association.to_s
33
- reflection = model_instance.class.reflect_on_association(column_or_association)
34
- reflection ||= model_instance.class.reflections.values.find { |r| r.foreign_key == column_or_association }
35
-
36
- if reflection
37
- [reflection.name.to_s, reflection.foreign_key.to_s]
38
- else
39
- [column_or_association]
40
- end
41
- end
42
25
  end
43
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: super
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zach Ahn
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-16 00:00:00.000000000 Z
11
+ date: 2021-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -198,7 +198,21 @@ dependencies:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
200
  version: '0'
201
- description:
201
+ - !ruby/object:Gem::Dependency
202
+ name: simplecov
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ description:
202
216
  email:
203
217
  - engineering@zachahn.com
204
218
  executables: []
@@ -206,6 +220,7 @@ extensions: []
206
220
  extra_rdoc_files: []
207
221
  files:
208
222
  - ".yardopts"
223
+ - CONTRIBUTING.md
209
224
  - LICENSE
210
225
  - README.md
211
226
  - Rakefile
@@ -213,28 +228,34 @@ files:
213
228
  - app/assets/javascripts/super/application.js
214
229
  - app/assets/stylesheets/super/application.css
215
230
  - app/controllers/super/application_controller.rb
231
+ - app/helpers/super/form_builder_helper.rb
216
232
  - app/views/layouts/super/application.html.erb
217
233
  - app/views/super/application/_collection_header.html.erb
234
+ - app/views/super/application/_display_actions.html.erb
235
+ - app/views/super/application/_display_index.html.erb
236
+ - app/views/super/application/_display_rich_text.html.erb
237
+ - app/views/super/application/_display_show.html.erb
218
238
  - app/views/super/application/_filter.html.erb
219
239
  - app/views/super/application/_filter_type_select.html.erb
220
240
  - app/views/super/application/_filter_type_text.html.erb
221
241
  - app/views/super/application/_filter_type_timestamp.html.erb
222
242
  - app/views/super/application/_flash.html.erb
243
+ - app/views/super/application/_form.html.erb
223
244
  - app/views/super/application/_form_field__destroy.html.erb
245
+ - app/views/super/application/_form_field_checkbox.html.erb
246
+ - app/views/super/application/_form_field_rich_text_area.html.erb
224
247
  - app/views/super/application/_form_field_select.html.erb
225
248
  - app/views/super/application/_form_field_text.html.erb
226
249
  - app/views/super/application/_form_fieldset.html.erb
227
250
  - app/views/super/application/_form_has_many.html.erb
228
251
  - app/views/super/application/_form_has_one.html.erb
229
- - app/views/super/application/_form_inline_errors.html.erb
252
+ - app/views/super/application/_layout.html.erb
230
253
  - app/views/super/application/_member_header.html.erb
231
- - app/views/super/application/_super_layout.html.erb
232
- - app/views/super/application/_super_pagination.html.erb
233
- - app/views/super/application/_super_panel.html.erb
234
- - app/views/super/application/_super_schema_display_actions.html.erb
235
- - app/views/super/application/_super_schema_display_index.html.erb
236
- - app/views/super/application/_super_schema_display_show.html.erb
237
- - app/views/super/application/_super_schema_form.html.erb
254
+ - app/views/super/application/_pagination.html.erb
255
+ - app/views/super/application/_panel.html.erb
256
+ - app/views/super/application/_query.html.erb
257
+ - app/views/super/application/_sort.html.erb
258
+ - app/views/super/application/_sort_expression.html.erb
238
259
  - app/views/super/application/edit.html.erb
239
260
  - app/views/super/application/index.html.erb
240
261
  - app/views/super/application/new.html.erb
@@ -242,27 +263,16 @@ files:
242
263
  - app/views/super/application/show.html.erb
243
264
  - app/views/super/feather/README.md
244
265
  - app/views/super/feather/_chevron_down.html
266
+ - app/views/super/feather/_x.html
245
267
  - config/locales/en.yml
246
268
  - config/routes.rb
247
- - docs/README.md
248
269
  - docs/cheat.md
249
- - docs/faq.md
250
- - docs/quick_start.md
251
- - docs/webpacker.md
252
- - docs/yard_customizations.rb
253
- - frontend/super-frontend/build.js
254
270
  - frontend/super-frontend/dist/application.css
255
271
  - frontend/super-frontend/dist/application.js
256
- - frontend/super-frontend/package.json
257
- - frontend/super-frontend/postcss.config.js
258
- - frontend/super-frontend/src/javascripts/super/application.ts
259
- - frontend/super-frontend/src/javascripts/super/apply_template_controller.ts
260
- - frontend/super-frontend/src/javascripts/super/rails__ujs.d.ts
261
- - frontend/super-frontend/src/javascripts/super/toggle_pending_destruction_controller.ts
262
- - frontend/super-frontend/src/stylesheets/super/application.css
263
- - frontend/super-frontend/tailwind.config.js
264
- - frontend/super-frontend/tsconfig.json
265
- - frontend/super-frontend/yarn.lock
272
+ - lib/generators/super/action_text/USAGE
273
+ - lib/generators/super/action_text/action_text_generator.rb
274
+ - lib/generators/super/action_text/templates/pack_super_action_text.css
275
+ - lib/generators/super/action_text/templates/pack_super_action_text.js
266
276
  - lib/generators/super/install/USAGE
267
277
  - lib/generators/super/install/install_generator.rb
268
278
  - lib/generators/super/install/templates/base_controller.rb.tt
@@ -281,16 +291,24 @@ files:
281
291
  - lib/super/configuration.rb
282
292
  - lib/super/controls.rb
283
293
  - lib/super/controls/optional.rb
284
- - lib/super/controls/required.rb
285
294
  - lib/super/controls/steps.rb
295
+ - lib/super/controls/view.rb
296
+ - lib/super/display.rb
297
+ - lib/super/display/guesser.rb
286
298
  - lib/super/display/schema_types.rb
287
299
  - lib/super/engine.rb
288
300
  - lib/super/error.rb
289
301
  - lib/super/filter.rb
302
+ - lib/super/filter/form_object.rb
303
+ - lib/super/filter/guesser.rb
290
304
  - lib/super/filter/operator.rb
291
305
  - lib/super/filter/schema_types.rb
292
306
  - lib/super/form.rb
307
+ - lib/super/form/builder.rb
308
+ - lib/super/form/guesser.rb
309
+ - lib/super/form/inline_errors.rb
293
310
  - lib/super/form/schema_types.rb
311
+ - lib/super/form/strong_params.rb
294
312
  - lib/super/layout.rb
295
313
  - lib/super/link.rb
296
314
  - lib/super/navigation/automatic.rb
@@ -299,14 +317,25 @@ files:
299
317
  - lib/super/partial.rb
300
318
  - lib/super/partial/resolving.rb
301
319
  - lib/super/plugin.rb
320
+ - lib/super/query/form_object.rb
302
321
  - lib/super/schema.rb
322
+ - lib/super/schema/common.rb
323
+ - lib/super/schema/guesser.rb
324
+ - lib/super/sort.rb
325
+ - lib/super/useful/builder.rb
326
+ - lib/super/useful/enum.rb
303
327
  - lib/super/version.rb
304
328
  - lib/super/view_helper.rb
305
- homepage:
329
+ homepage:
306
330
  licenses:
307
331
  - LGPL-3.0-only
308
- metadata: {}
309
- post_install_message:
332
+ metadata:
333
+ bug_tracker_uri: https://github.com/zachahn/super/issues
334
+ changelog_uri: https://github.com/zachahn/super/blob/main/CHANGELOG.md
335
+ documentation_uri: https://superadministration.github.io/
336
+ homepage_uri: https://github.com/zachahn/super
337
+ source_code_uri: https://github.com/zachahn/super
338
+ post_install_message:
310
339
  rdoc_options: []
311
340
  require_paths:
312
341
  - lib
@@ -321,8 +350,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
321
350
  - !ruby/object:Gem::Version
322
351
  version: '0'
323
352
  requirements: []
324
- rubygems_version: 3.1.4
325
- signing_key:
353
+ rubygems_version: 3.2.4
354
+ signing_key:
326
355
  specification_version: 4
327
356
  summary: A simple, powerful, zero dependency Rails admin framework
328
357
  test_files: []