super 0.0.0 → 0.0.5

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 (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: []