super 0.0.0 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +10 -0
  3. data/LICENSE +165 -0
  4. data/README.md +66 -18
  5. data/Rakefile +3 -1
  6. data/app/assets/config/super_manifest.js +2 -0
  7. data/app/assets/javascripts/super/application.js +3618 -0
  8. data/app/assets/stylesheets/super/application.css +98584 -0
  9. data/app/controllers/super/application_controller.rb +103 -0
  10. data/app/helpers/super/application_helper.rb +32 -0
  11. data/app/views/layouts/super/application.html.erb +39 -0
  12. data/app/views/super/application/_flash.html.erb +17 -0
  13. data/app/views/super/application/_form.html.erb +17 -0
  14. data/app/views/super/application/_form_field__destroy.html.erb +9 -0
  15. data/app/views/super/application/_form_field_select.html.erb +23 -0
  16. data/app/views/super/application/_form_field_text.html.erb +13 -0
  17. data/app/views/super/application/_form_fieldset.html.erb +8 -0
  18. data/app/views/super/application/_form_has_many.html.erb +21 -0
  19. data/app/views/super/application/_form_has_one.html.erb +11 -0
  20. data/app/views/super/application/_form_inline_errors.html.erb +10 -0
  21. data/app/views/super/application/_index.html.erb +45 -0
  22. data/app/views/super/application/_resource_header.html.erb +16 -0
  23. data/app/views/super/application/_resources_header.html.erb +16 -0
  24. data/app/views/super/application/_show.html.erb +10 -0
  25. data/app/views/super/application/_super_layout.html.erb +34 -0
  26. data/app/views/super/application/_super_panel.html.erb +11 -0
  27. data/app/views/super/application/edit.html.erb +6 -0
  28. data/app/views/super/application/index.html.erb +6 -0
  29. data/app/views/super/application/new.html.erb +6 -0
  30. data/app/views/super/application/nothing.html.erb +0 -0
  31. data/app/views/super/application/show.html.erb +6 -0
  32. data/app/views/super/feather/README.md +32 -0
  33. data/app/views/super/feather/_chevron_down.svg +1 -0
  34. data/docs/README.md +6 -0
  35. data/docs/controls.md +39 -0
  36. data/docs/faq.md +44 -0
  37. data/docs/quick_start.md +45 -0
  38. data/docs/webpacker.md +17 -0
  39. data/docs/yard_customizations.rb +41 -0
  40. data/frontend/super-frontend/build.js +36 -0
  41. data/frontend/super-frontend/dist/application.css +98584 -0
  42. data/frontend/super-frontend/dist/application.js +3618 -0
  43. data/frontend/super-frontend/package.json +21 -0
  44. data/frontend/super-frontend/postcss.config.js +6 -0
  45. data/frontend/super-frontend/src/javascripts/super/application.ts +18 -0
  46. data/frontend/super-frontend/src/javascripts/super/apply_template_controller.ts +21 -0
  47. data/frontend/super-frontend/src/javascripts/super/rails__ujs.d.ts +1 -0
  48. data/frontend/super-frontend/src/javascripts/super/toggle_pending_destruction_controller.ts +15 -0
  49. data/frontend/super-frontend/src/stylesheets/super/application.css +77 -0
  50. data/frontend/super-frontend/tailwind.config.js +9 -0
  51. data/frontend/super-frontend/tsconfig.json +13 -0
  52. data/frontend/super-frontend/yarn.lock +5540 -0
  53. data/lib/generators/super/install/USAGE +34 -0
  54. data/lib/generators/super/install/install_generator.rb +46 -0
  55. data/lib/generators/super/install/templates/base_controller.rb.tt +2 -0
  56. data/lib/generators/super/install/templates/initializer.rb.tt +5 -0
  57. data/lib/generators/super/resource/USAGE +8 -0
  58. data/lib/generators/super/resource/resource_generator.rb +52 -0
  59. data/lib/generators/super/resource/templates/resources_controller.rb.tt +45 -0
  60. data/lib/generators/super/webpacker/USAGE +14 -0
  61. data/lib/generators/super/webpacker/templates/pack_super_application.js.erb.tt +2 -0
  62. data/lib/generators/super/webpacker/webpacker_generator.rb +25 -0
  63. data/lib/super.rb +22 -4
  64. data/lib/super/action_inquirer.rb +101 -0
  65. data/lib/super/assets.rb +63 -0
  66. data/lib/super/compatibility.rb +13 -0
  67. data/lib/super/configuration.rb +103 -0
  68. data/lib/super/controls.rb +120 -0
  69. data/lib/super/display.rb +9 -0
  70. data/lib/super/display/schema_types.rb +40 -0
  71. data/lib/super/engine.rb +6 -0
  72. data/lib/super/error.rb +18 -0
  73. data/lib/super/form/schema_types.rb +115 -0
  74. data/lib/super/layout.rb +19 -0
  75. data/lib/super/link.rb +87 -0
  76. data/lib/super/navigation/automatic.rb +71 -0
  77. data/lib/super/pagination.rb +70 -0
  78. data/lib/super/panel.rb +17 -0
  79. data/lib/super/partial.rb +11 -0
  80. data/lib/super/plugin.rb +89 -0
  81. data/lib/super/schema.rb +73 -0
  82. data/lib/super/step.rb +36 -0
  83. data/lib/super/version.rb +1 -1
  84. data/lib/super/view_helper.rb +43 -0
  85. metadata +215 -14
  86. data/LICENSE.txt +0 -40
@@ -0,0 +1,71 @@
1
+ module Super
2
+ class Navigation
3
+ # Traverses the defined Rails Routes and attempts to build a list of links.
4
+ # This is used for building the nav bar on each admin page.
5
+ class Automatic
6
+ def initialize(route_namespace:)
7
+ route_namespace = route_namespace.to_s
8
+
9
+ if route_namespace.include?("/")
10
+ raise "Can't be nested namespace"
11
+ end
12
+
13
+ @route_namespace = route_namespace
14
+ end
15
+
16
+ def each
17
+ if !block_given?
18
+ return enum_for(:each)
19
+ end
20
+
21
+ navigable_namespace_routes = Rails.application.routes.routes.select do |route|
22
+ path_spec = route.path.spec
23
+
24
+ next if route.verb != "GET"
25
+ next if !path_spec.respond_to?(:right)
26
+ next if path_spec.right.left.to_s != @route_namespace
27
+ next if route.required_parts.any?
28
+ next if route.defaults.empty?
29
+
30
+ true
31
+ end
32
+
33
+ navigable_defaults = navigable_namespace_routes.map do |route|
34
+ controller_name = route.defaults[:controller] + "_controller"
35
+ _controller =
36
+ begin
37
+ controller_name.camelize.constantize
38
+ rescue NameError
39
+ warn("[super] Couldn't find controller: #{controller_name}")
40
+ next
41
+ end
42
+
43
+ route.defaults
44
+ end
45
+
46
+ grouped_navigable_defaults =
47
+ navigable_defaults.compact.uniq.group_by { |d| d[:controller] }
48
+
49
+ grouped_navigable_defaults.each do |controller, defaults|
50
+ actions = defaults.map { |d| [d[:action], d[:action]] }.to_h
51
+ action = actions["index"] || actions["show"]
52
+
53
+ next if action.nil?
54
+
55
+ path =
56
+ begin
57
+ Rails.application.routes.url_for(
58
+ controller: controller,
59
+ action: action,
60
+ only_path: true
61
+ )
62
+ rescue ActionController::UrlGenerationError
63
+ next
64
+ end
65
+
66
+ yield(controller.split("/").last.humanize, path)
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,70 @@
1
+ module Super
2
+ class Pagination
3
+ include Enumerable
4
+
5
+ attr_reader :current_pageno
6
+ attr_reader :limit
7
+
8
+ def initialize(total_count:, limit:, query_params:, page_query_param:)
9
+ @total_count = total_count.to_i
10
+ @limit = limit.to_i
11
+ @query_params = query_params
12
+ @page_query_param = page_query_param
13
+
14
+ self.current_pageno = query_params[page_query_param]
15
+ end
16
+
17
+ def offset
18
+ limit * (current_pageno - 1)
19
+ end
20
+
21
+ def current_pageno=(pageno)
22
+ pageno = pageno.to_i
23
+
24
+ @current_pageno =
25
+ if pageno.zero?
26
+ 1
27
+ else
28
+ pageno
29
+ end
30
+ end
31
+
32
+ def necessary?
33
+ pages > 1
34
+ end
35
+
36
+ def each
37
+ if !block_given?
38
+ return enum_for(:each)
39
+ end
40
+
41
+ (1..pages).each do |pageno|
42
+ is_current_page = pageno == current_pageno
43
+ display = pageno.to_s
44
+ page_query_params = @query_params.dup
45
+ if pageno == 1
46
+ page_query_params.delete(:page)
47
+ else
48
+ page_query_params[@page_query_param] = pageno
49
+ end
50
+
51
+ yield(page_query_params, is_current_page, display)
52
+ end
53
+ end
54
+
55
+ private
56
+
57
+ def pages
58
+ @pages ||=
59
+ begin
60
+ quotient, remainder = @total_count.divmod(@limit)
61
+
62
+ if remainder.zero?
63
+ quotient
64
+ else
65
+ quotient + 1
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,17 @@
1
+ module Super
2
+ class Panel
3
+ def initialize(*parts)
4
+ if block_given?
5
+ @parts = Array.new(yield)
6
+ end
7
+
8
+ @parts = parts
9
+ end
10
+
11
+ attr_reader :parts
12
+
13
+ def to_partial_path
14
+ "super_panel"
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ module Super
2
+ class Partial
3
+ def initialize(path, locals: {})
4
+ @to_partial_path = path
5
+ @locals = locals
6
+ end
7
+
8
+ attr_reader :to_partial_path
9
+ attr_reader :locals
10
+ end
11
+ end
@@ -0,0 +1,89 @@
1
+ module Super
2
+ class Pluggable < Module
3
+ def initialize(registry_name)
4
+ @registry_name = registry_name
5
+ end
6
+
7
+ def included(base)
8
+ super
9
+
10
+ PluginRegistry.base_set(@registry_name, base)
11
+
12
+ plugins = PluginRegistry.plugins_for(@registry_name)
13
+
14
+ plugins.each do |klass, method_name|
15
+ base.public_send(method_name, klass)
16
+ end
17
+ end
18
+ end
19
+
20
+ class PluginRegistry
21
+ class << self
22
+ def include_to(name, klass)
23
+ plugin_push(name.to_sym, :include, klass)
24
+ end
25
+
26
+ def prepend_to(name, klass)
27
+ plugin_push(name.to_sym, :prepend, klass)
28
+ end
29
+
30
+ def plugins_for(name)
31
+ name = name.to_sym
32
+
33
+ plugins.fetch(name) { {} }
34
+ end
35
+
36
+ def base_set(name, klass)
37
+ name = name.to_sym
38
+
39
+ if !klass.kind_of?(Class)
40
+ raise Error::InvalidPluginArgument,
41
+ "Received `#{klass}` which must be a class"
42
+ end
43
+
44
+ bases[name] = klass
45
+
46
+ true
47
+ end
48
+
49
+ def base_get(name)
50
+ name = name.to_sym
51
+
52
+ bases[name]
53
+ end
54
+
55
+ private
56
+
57
+ def plugin_push(name, method_name, klass)
58
+ if ![:include, :prepend].include?(method_name)
59
+ raise Error::InvalidPluginArgument,
60
+ "Received `#{method_name.inspect}`, must be either :include or :prepend"
61
+ end
62
+
63
+ if !klass.kind_of?(Module)
64
+ raise Error::InvalidPluginArgument,
65
+ "Received `#{klass}` which must be a module"
66
+ end
67
+
68
+ plugins[name] ||= {}
69
+ plugins[name][klass] = method_name
70
+
71
+ base = base_get(name)
72
+
73
+ if base
74
+ base.public_send(method_name, klass)
75
+ end
76
+
77
+ true
78
+ end
79
+
80
+ def plugins
81
+ @plugins ||= {}
82
+ end
83
+
84
+ def bases
85
+ @bases ||= {}
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,73 @@
1
+ module Super
2
+ # The Schema is a general purpose container for describing the "schema"
3
+ # for various purposes. It primarily exists to provide a cohesive user-facing
4
+ # API for defining schemas.
5
+ #
6
+ # The various "schema types" are likely of more interest
7
+ class Schema
8
+ # @param schema_type [Display::SchemaTypes, Form::SchemaTypes]
9
+ def initialize(schema_type)
10
+ @schema_type = schema_type
11
+ @fields = Fields.new
12
+
13
+ if @schema_type.respond_to?(:setup)
14
+ @schema_type.setup(fields: @fields)
15
+ end
16
+
17
+ if block_given?
18
+ yield(@fields, @schema_type)
19
+ end
20
+ end
21
+
22
+ attr_reader :fields
23
+
24
+ def field_keys
25
+ fields.keys
26
+ end
27
+
28
+ class Fields
29
+ include Enumerable
30
+
31
+ def initialize
32
+ @backing = {}
33
+ end
34
+
35
+ def [](key)
36
+ @backing[key]
37
+ end
38
+
39
+ def []=(key, value)
40
+ @backing[key] = value
41
+ end
42
+
43
+ def keys
44
+ @backing.keys
45
+ end
46
+
47
+ def each
48
+ if block_given?
49
+ return @backing.each(&Proc.new)
50
+ end
51
+
52
+ enum_for(:each)
53
+ end
54
+
55
+ def replace(other)
56
+ @backing = other
57
+ end
58
+
59
+ def to_h
60
+ @backing
61
+ end
62
+
63
+ def nested
64
+ outside = @backing
65
+ inside = {}
66
+ @backing = inside
67
+ yield
68
+ @backing = outside
69
+ inside
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,36 @@
1
+ module Super
2
+ module Step
3
+ module_function
4
+
5
+ def load_resources(controls, _params, action_inquirer)
6
+ controls.scope(action: action_inquirer)
7
+ end
8
+
9
+ def initialize_pagination(resources, query_params, limit: Super.configuration.index_resources_per_page)
10
+ Pagination.new(
11
+ total_count: resources.size,
12
+ limit: limit,
13
+ query_params: query_params,
14
+ page_query_param: :page
15
+ )
16
+ end
17
+
18
+ def paginate_resources(resources, pagination)
19
+ resources
20
+ .limit(pagination.limit)
21
+ .offset(pagination.offset)
22
+ end
23
+
24
+ def load_resource(controls, params, action_inquirer)
25
+ controls.scope(action: action_inquirer).find(params[:id])
26
+ end
27
+
28
+ def build_resource(controls, action_inquirer)
29
+ controls.scope(action: action_inquirer).build
30
+ end
31
+
32
+ def build_resource_with_params(controls, action_inquirer, create_permitted_params)
33
+ controls.scope(action: action_inquirer).build(create_permitted_params)
34
+ end
35
+ end
36
+ end
@@ -1,3 +1,3 @@
1
1
  module Super
2
- VERSION = '0.0.0'
2
+ VERSION = "0.0.5"
3
3
  end
@@ -0,0 +1,43 @@
1
+ module Super
2
+ module ViewHelper
3
+ module_function
4
+
5
+ # For example, calling `classes("always", ["sometimes", condition])` would
6
+ # return the string "always sometimes" or "always"
7
+ def classes(*list)
8
+ result = list.map do |c|
9
+ case c
10
+ when String
11
+ c
12
+ when Array
13
+ if c.size != 2
14
+ raise %(Expected exactly two elements (["class", some_condition]), got: #{c.inspect})
15
+ end
16
+
17
+ c if c.last
18
+ end
19
+ end
20
+
21
+ result.compact.join(" ")
22
+ 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.rails_50_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
+ end
43
+ end
metadata CHANGED
@@ -1,43 +1,169 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: super
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zach Ahn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-12 00:00:00.000000000 Z
11
+ date: 2020-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.2
19
+ version: '5.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '5.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: capybara
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.18'
34
+ type: :development
35
+ prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: 5.2.2
40
+ version: '3.18'
27
41
  - !ruby/object:Gem::Dependency
28
- name: sqlite3
42
+ name: selenium-webdriver
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.142'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.142'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webdrivers
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
59
  - - "~>"
32
60
  - !ruby/object:Gem::Version
33
- version: 1.3.6
61
+ version: '4.3'
34
62
  type: :development
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
66
  - - "~>"
39
67
  - !ruby/object:Gem::Version
40
- version: 1.3.6
68
+ version: '4.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: puma
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: sqlite3
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: pry
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'
111
+ - !ruby/object:Gem::Dependency
112
+ name: minitest-ci
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: appraisal
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: yard
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: mocha
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
41
167
  description:
42
168
  email:
43
169
  - engineering@zachahn.com
@@ -45,18 +171,94 @@ executables: []
45
171
  extensions: []
46
172
  extra_rdoc_files: []
47
173
  files:
48
- - LICENSE.txt
174
+ - ".yardopts"
175
+ - LICENSE
49
176
  - README.md
50
177
  - Rakefile
51
178
  - app/assets/config/super_manifest.js
179
+ - app/assets/javascripts/super/application.js
180
+ - app/assets/stylesheets/super/application.css
181
+ - app/controllers/super/application_controller.rb
182
+ - app/helpers/super/application_helper.rb
183
+ - app/views/layouts/super/application.html.erb
184
+ - app/views/super/application/_flash.html.erb
185
+ - app/views/super/application/_form.html.erb
186
+ - app/views/super/application/_form_field__destroy.html.erb
187
+ - app/views/super/application/_form_field_select.html.erb
188
+ - app/views/super/application/_form_field_text.html.erb
189
+ - app/views/super/application/_form_fieldset.html.erb
190
+ - app/views/super/application/_form_has_many.html.erb
191
+ - app/views/super/application/_form_has_one.html.erb
192
+ - app/views/super/application/_form_inline_errors.html.erb
193
+ - app/views/super/application/_index.html.erb
194
+ - app/views/super/application/_resource_header.html.erb
195
+ - app/views/super/application/_resources_header.html.erb
196
+ - app/views/super/application/_show.html.erb
197
+ - app/views/super/application/_super_layout.html.erb
198
+ - app/views/super/application/_super_panel.html.erb
199
+ - app/views/super/application/edit.html.erb
200
+ - app/views/super/application/index.html.erb
201
+ - app/views/super/application/new.html.erb
202
+ - app/views/super/application/nothing.html.erb
203
+ - app/views/super/application/show.html.erb
204
+ - app/views/super/feather/README.md
205
+ - app/views/super/feather/_chevron_down.svg
52
206
  - config/routes.rb
207
+ - docs/README.md
208
+ - docs/controls.md
209
+ - docs/faq.md
210
+ - docs/quick_start.md
211
+ - docs/webpacker.md
212
+ - docs/yard_customizations.rb
213
+ - frontend/super-frontend/build.js
214
+ - frontend/super-frontend/dist/application.css
215
+ - frontend/super-frontend/dist/application.js
216
+ - frontend/super-frontend/package.json
217
+ - frontend/super-frontend/postcss.config.js
218
+ - frontend/super-frontend/src/javascripts/super/application.ts
219
+ - frontend/super-frontend/src/javascripts/super/apply_template_controller.ts
220
+ - frontend/super-frontend/src/javascripts/super/rails__ujs.d.ts
221
+ - frontend/super-frontend/src/javascripts/super/toggle_pending_destruction_controller.ts
222
+ - frontend/super-frontend/src/stylesheets/super/application.css
223
+ - frontend/super-frontend/tailwind.config.js
224
+ - frontend/super-frontend/tsconfig.json
225
+ - frontend/super-frontend/yarn.lock
226
+ - lib/generators/super/install/USAGE
227
+ - lib/generators/super/install/install_generator.rb
228
+ - lib/generators/super/install/templates/base_controller.rb.tt
229
+ - lib/generators/super/install/templates/initializer.rb.tt
230
+ - lib/generators/super/resource/USAGE
231
+ - lib/generators/super/resource/resource_generator.rb
232
+ - lib/generators/super/resource/templates/resources_controller.rb.tt
233
+ - lib/generators/super/webpacker/USAGE
234
+ - lib/generators/super/webpacker/templates/pack_super_application.js.erb.tt
235
+ - lib/generators/super/webpacker/webpacker_generator.rb
53
236
  - lib/super.rb
237
+ - lib/super/action_inquirer.rb
238
+ - lib/super/assets.rb
239
+ - lib/super/compatibility.rb
240
+ - lib/super/configuration.rb
241
+ - lib/super/controls.rb
242
+ - lib/super/display.rb
243
+ - lib/super/display/schema_types.rb
54
244
  - lib/super/engine.rb
245
+ - lib/super/error.rb
246
+ - lib/super/form/schema_types.rb
247
+ - lib/super/layout.rb
248
+ - lib/super/link.rb
249
+ - lib/super/navigation/automatic.rb
250
+ - lib/super/pagination.rb
251
+ - lib/super/panel.rb
252
+ - lib/super/partial.rb
253
+ - lib/super/plugin.rb
254
+ - lib/super/schema.rb
255
+ - lib/super/step.rb
55
256
  - lib/super/version.rb
257
+ - lib/super/view_helper.rb
56
258
  - lib/tasks/super_tasks.rake
57
259
  homepage:
58
260
  licenses:
59
- - Fair Source 5
261
+ - LGPL-3.0-only
60
262
  metadata: {}
61
263
  post_install_message:
62
264
  rdoc_options: []
@@ -66,16 +268,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
66
268
  requirements:
67
269
  - - ">="
68
270
  - !ruby/object:Gem::Version
69
- version: '0'
271
+ version: 2.3.0
70
272
  required_rubygems_version: !ruby/object:Gem::Requirement
71
273
  requirements:
72
274
  - - ">="
73
275
  - !ruby/object:Gem::Version
74
276
  version: '0'
75
277
  requirements: []
76
- rubyforge_project:
77
- rubygems_version: 2.7.6
278
+ rubygems_version: 3.1.3
78
279
  signing_key:
79
280
  specification_version: 4
80
- summary: A simple, powerful, zero* dependency Rails admin framework
281
+ summary: A simple, powerful, zero dependency Rails admin framework
81
282
  test_files: []