super 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/Rakefile +3 -1
- data/app/assets/config/super_manifest.js +2 -1
- data/app/controllers/super/application_controller.rb +43 -10
- data/app/views/layouts/super/application.html.erb +2 -0
- data/app/views/super/application/_flash.html.erb +17 -0
- data/app/views/super/application/_form.html.erb +2 -0
- data/app/views/super/application/_index.html.erb +5 -3
- data/app/views/super/application/_show.html.erb +12 -0
- data/app/views/super/application/edit.html.erb +0 -1
- data/app/views/super/application/index.html.erb +1 -1
- data/app/views/super/application/new.html.erb +0 -1
- data/app/views/super/application/nothing.html.erb +0 -0
- data/app/views/super/application/show.html.erb +1 -10
- data/lib/generators/super/install/USAGE +4 -2
- data/lib/generators/super/install/install_generator.rb +2 -3
- data/lib/generators/super/resource/USAGE +1 -2
- data/lib/generators/super/resource/resource_generator.rb +0 -2
- data/lib/generators/super/resource/templates/resources_controller.rb.tt +38 -2
- data/lib/super.rb +1 -0
- data/lib/super/action_inquirer.rb +88 -0
- data/lib/super/error.rb +8 -0
- data/lib/super/test_support/{templates → copy_app_templates}/20190216224956_create_members.rb +0 -0
- data/lib/super/test_support/{templates → copy_app_templates}/20190803143320_create_ships.rb +0 -0
- data/lib/super/test_support/{templates → copy_app_templates}/20190806014121_add_ship_to_members.rb +0 -0
- data/lib/super/test_support/{templates → copy_app_templates}/member.rb +0 -0
- data/lib/super/test_support/copy_app_templates/members_controller.rb +52 -0
- data/lib/super/test_support/{templates → copy_app_templates}/routes.rb +0 -0
- data/lib/super/test_support/{templates → copy_app_templates}/seeds.rb +0 -0
- data/lib/super/test_support/{templates → copy_app_templates}/ship.rb +0 -0
- data/lib/super/test_support/copy_app_templates/ships_controller.rb +47 -0
- data/lib/super/test_support/generate_copy_app.rb +52 -0
- data/lib/super/test_support/generate_dummy.rb +94 -0
- data/lib/super/version.rb +1 -1
- metadata +49 -20
- data/lib/generators/super/resource/templates/resource_dashboard.rb.tt +0 -65
- data/lib/super/test_support/setup.rb +0 -79
- data/lib/super/test_support/templates/admin/members_controller.rb +0 -9
- data/lib/super/test_support/templates/admin/ships_controller.rb +0 -9
- data/lib/super/test_support/templates/admin_controller.rb +0 -2
- data/lib/super/test_support/templates/member_dashboard.rb +0 -90
- data/lib/super/test_support/templates/ship_dashboard.rb +0 -79
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74ba324687da6f66c601cc930761a2e7c6b7d6372551cac3a6a3f1dd0a1625fb
|
4
|
+
data.tar.gz: f241d0809a63163acbe5f0490bee1adc45c503c3d40285cd5d4fc85bbccc4ae3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df043e99295ce0abd1849843092c6e6ae56a131fdcbccd07174576047853927aade45d3ca9267b2ee7b4ba0cecb346937dfffcc5d5244542c143e32af9cc0ac3
|
7
|
+
data.tar.gz: 4953c826d8eab8fdd6b265a25a5cc598a481e3c32240bcb8ecf2266f4703e30c99960df08c0337b64b89f498645473f1cbe5572a1bf8dd4cd6cdacd406d56d07
|
data/README.md
CHANGED
@@ -59,9 +59,9 @@ notified of its availability or for brief, occasional updates.
|
|
59
59
|
$ bundle exec rails g super:resource Thing # check out the `--help` option!
|
60
60
|
```
|
61
61
|
|
62
|
-
|
63
|
-
|
64
|
-
lives
|
62
|
+
The example above will create the appropriate admin controller. It generates a
|
63
|
+
`Controls` class inside the controller as well; it's where most configuration
|
64
|
+
lives. You generally won't need to edit the controller actions themselves.
|
65
65
|
|
66
66
|
In addition, you'll have to manually update your routes file. It'll probably
|
67
67
|
look something like the following:
|
data/Rakefile
CHANGED
@@ -14,7 +14,9 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
14
14
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
15
|
end
|
16
16
|
|
17
|
-
|
17
|
+
require_relative "dummy_path"
|
18
|
+
|
19
|
+
APP_RAKEFILE = File.expand_path("#{SUPER_DUMMY_PATH}/Rakefile", __dir__)
|
18
20
|
load 'rails/tasks/engine.rake'
|
19
21
|
|
20
22
|
load 'rails/tasks/statistics.rake'
|
@@ -1 +1,2 @@
|
|
1
|
-
//=
|
1
|
+
//= link super/application.css
|
2
|
+
//= link super/application.js
|
@@ -5,16 +5,42 @@ module Super
|
|
5
5
|
|
6
6
|
register_inline_callback(:index_paginate, on: :index, after: :yield)
|
7
7
|
|
8
|
+
helper_method :action_inquirer
|
8
9
|
helper_method :controls
|
9
10
|
|
11
|
+
rescue_from Error::ClientError do |exception|
|
12
|
+
code, default_message =
|
13
|
+
case exception
|
14
|
+
when Error::UnprocessableEntity
|
15
|
+
[422, "Unprocessable entity"]
|
16
|
+
when Error::NotFound
|
17
|
+
[404, "Not found"]
|
18
|
+
when Error::Forbidden
|
19
|
+
[403, "Forbidden"]
|
20
|
+
when Error::Unauthorized
|
21
|
+
[401, "Unauthorized"]
|
22
|
+
when Error::BadRequest, Error::ClientError
|
23
|
+
[400, "Bad request"]
|
24
|
+
end
|
25
|
+
|
26
|
+
flash.now.alert =
|
27
|
+
if exception.message == exception.class.name.to_s
|
28
|
+
default_message
|
29
|
+
else
|
30
|
+
exception.message
|
31
|
+
end
|
32
|
+
|
33
|
+
render "nothing", status: code
|
34
|
+
end
|
35
|
+
|
10
36
|
def index
|
11
37
|
with_inline_callbacks do
|
12
|
-
@resources = controls.
|
38
|
+
@resources = controls.scope(action: action_inquirer)
|
13
39
|
end
|
14
40
|
end
|
15
41
|
|
16
42
|
def create
|
17
|
-
@resource = controls.
|
43
|
+
@resource = controls.scope(action: action_inquirer).build(create_permitted_params)
|
18
44
|
|
19
45
|
if @resource.save
|
20
46
|
redirect_to polymorphic_path(Super.configuration.path_parts(@resource))
|
@@ -24,19 +50,19 @@ module Super
|
|
24
50
|
end
|
25
51
|
|
26
52
|
def new
|
27
|
-
@resource = controls.
|
53
|
+
@resource = controls.scope(action: action_inquirer).build
|
28
54
|
end
|
29
55
|
|
30
56
|
def edit
|
31
|
-
@resource = controls.
|
57
|
+
@resource = controls.scope(action: action_inquirer).find(params[:id])
|
32
58
|
end
|
33
59
|
|
34
60
|
def show
|
35
|
-
@resource = controls.
|
61
|
+
@resource = controls.scope(action: action_inquirer).find(params[:id])
|
36
62
|
end
|
37
63
|
|
38
64
|
def update
|
39
|
-
@resource = controls.
|
65
|
+
@resource = controls.scope(action: action_inquirer).find(params[:id])
|
40
66
|
|
41
67
|
if @resource.update(update_permitted_params)
|
42
68
|
redirect_to polymorphic_path(Super.configuration.path_parts(@resource))
|
@@ -46,7 +72,7 @@ module Super
|
|
46
72
|
end
|
47
73
|
|
48
74
|
def destroy
|
49
|
-
@resource = controls.
|
75
|
+
@resource = controls.scope(action: action_inquirer).find(params[:id])
|
50
76
|
if @resource.destroy
|
51
77
|
redirect_to polymorphic_path(Super.configuration.path_parts(controls.model))
|
52
78
|
else
|
@@ -70,15 +96,22 @@ module Super
|
|
70
96
|
end
|
71
97
|
|
72
98
|
def controls
|
73
|
-
Controls.new(
|
99
|
+
Super::Controls.new(new_controls)
|
74
100
|
end
|
75
101
|
|
76
102
|
def create_permitted_params
|
77
|
-
controls.
|
103
|
+
controls.permitted_params(params, action: action_inquirer)
|
78
104
|
end
|
79
105
|
|
80
106
|
def update_permitted_params
|
81
|
-
controls.
|
107
|
+
controls.permitted_params(params, action: action_inquirer)
|
108
|
+
end
|
109
|
+
|
110
|
+
def action_inquirer
|
111
|
+
@action_inquirer ||= ActionInquirer.new(
|
112
|
+
ActionInquirer.default_resources,
|
113
|
+
params[:action]
|
114
|
+
)
|
82
115
|
end
|
83
116
|
end
|
84
117
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%
|
2
|
+
colors = {
|
3
|
+
"notice" => { bg: "bg-blue-100", fg: "text-blue-400", border: "border-blue-600" },
|
4
|
+
"alert" => { bg: "bg-red-100", fg: "text-red-400", border: "border-red-600" },
|
5
|
+
}
|
6
|
+
%>
|
7
|
+
|
8
|
+
<div data-flash="anchor">
|
9
|
+
<% flash.each do |level, messages| %>
|
10
|
+
<% Array(messages).each do |message| %>
|
11
|
+
<% color = colors[level.to_s] || colors["notice"] %>
|
12
|
+
<div class="<%= "%<bg>s %<fg>s border-l-4 %<border>s p-4 mt-2" % color %>">
|
13
|
+
<%= message %>
|
14
|
+
</div>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
</div>
|
@@ -1,3 +1,5 @@
|
|
1
|
+
<% schema = controls.display_schema(action: action_inquirer) %>
|
2
|
+
|
1
3
|
<% content_for(:header) do %>
|
2
4
|
<header>
|
3
5
|
<h1 class="text-3xl inline-block">
|
@@ -14,7 +16,7 @@
|
|
14
16
|
<table class="w-full leading-loose mt-4">
|
15
17
|
<thead class="border-gray-400 border-solid">
|
16
18
|
<tr>
|
17
|
-
<% (
|
19
|
+
<% (schema.field_keys + ["Actions"]).each do |column| %>
|
18
20
|
<th class="text-left"><%= column.to_s.humanize %></th>
|
19
21
|
<% end %>
|
20
22
|
</tr>
|
@@ -22,8 +24,8 @@
|
|
22
24
|
<tbody>
|
23
25
|
<% @resources.each.with_index do |resource, index| %>
|
24
26
|
<tr id="resource-pk-<%= resource.id %>" class="<%= index.even? ? "bg-gray-100" : "" %>" >
|
25
|
-
<%
|
26
|
-
<td><%= Super::Display.format(
|
27
|
+
<% schema.field_keys.each do |column| %>
|
28
|
+
<td><%= Super::Display.format(schema, resource, column) %></td>
|
27
29
|
<% end %>
|
28
30
|
<td>
|
29
31
|
<%= link_to(
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<% schema = controls.display_schema(action: action_inquirer) %>
|
2
|
+
|
3
|
+
<h1 class="text-3xl"><%= controls.title %></h1>
|
4
|
+
|
5
|
+
<table class="max-w-full leading-loose mt-4">
|
6
|
+
<% schema.field_keys.each do |column| %>
|
7
|
+
<tr>
|
8
|
+
<th class="text-right px-4"><%= column.to_s.humanize %></th>
|
9
|
+
<td><%= Super::Display.format(schema, @resource, column) %></td>
|
10
|
+
</tr>
|
11
|
+
<% end %>
|
12
|
+
</table>
|
@@ -1 +1 @@
|
|
1
|
-
<%= render
|
1
|
+
<%= render("index") %>
|
File without changes
|
@@ -1,10 +1 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<table class="max-w-full leading-loose mt-4">
|
4
|
-
<% controls.show_schema.field_keys.each do |column| %>
|
5
|
-
<tr>
|
6
|
-
<th class="text-right px-4"><%= column.to_s.humanize %></th>
|
7
|
-
<td><%= Super::Display.format(controls.show_schema, @resource, column) %></td>
|
8
|
-
</tr>
|
9
|
-
<% end %>
|
10
|
-
</table>
|
1
|
+
<%= render("show") %>
|
@@ -20,7 +20,8 @@ Example:
|
|
20
20
|
config/initializers/super.rb
|
21
21
|
app/controllers/admin_controller.rb
|
22
22
|
app/controllers/admin/.keep
|
23
|
-
|
23
|
+
|
24
|
+
This will also update your Sprockets manifest as necessary.
|
24
25
|
|
25
26
|
Example:
|
26
27
|
rails generate super:install --controller-namespace badminton
|
@@ -29,4 +30,5 @@ Example:
|
|
29
30
|
config/initializers/super.rb
|
30
31
|
app/controllers/badminton_controller.rb
|
31
32
|
app/controllers/badminton/.keep
|
32
|
-
|
33
|
+
|
34
|
+
This will also update your Sprockets manifest as necessary.
|
@@ -29,9 +29,8 @@ module Super
|
|
29
29
|
create_file("app/controllers/#{controller_namespace}/.keep", "")
|
30
30
|
end
|
31
31
|
|
32
|
-
def
|
33
|
-
|
34
|
-
create_file("app/super/.keep", "")
|
32
|
+
def setup_sprockets4_manifest
|
33
|
+
append_to_file "app/assets/config/manifest.js", "//= link super_manifest.js\n"
|
35
34
|
end
|
36
35
|
|
37
36
|
private
|
@@ -2,8 +2,44 @@
|
|
2
2
|
class <%= class_name.pluralize %>Controller < <%= parent_controller_name %>
|
3
3
|
private
|
4
4
|
|
5
|
-
def
|
6
|
-
|
5
|
+
def new_controls
|
6
|
+
Controls.new
|
7
|
+
end
|
8
|
+
|
9
|
+
class Controls
|
10
|
+
def title
|
11
|
+
<%= class_name %>.name.pluralize
|
12
|
+
end
|
13
|
+
|
14
|
+
def model
|
15
|
+
<%= class_name %>
|
16
|
+
end
|
17
|
+
|
18
|
+
def scope(action:)
|
19
|
+
if action.read?
|
20
|
+
<%= class_name %>.all
|
21
|
+
else
|
22
|
+
<%= class_name %>.all
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def permitted_params(params, action:)
|
27
|
+
if action.create?
|
28
|
+
params.require(:<%= file_name %>).permit()
|
29
|
+
else
|
30
|
+
params.require(:<%= file_name %>).permit()
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def display_schema(action:)
|
35
|
+
Super::Schema.new(Super::Display::SchemaTypes.new) do |fields, type|
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def form_schema(action:)
|
40
|
+
Super::Schema.new(Super::Form::SchemaTypes.new) do |fields, type|
|
41
|
+
end
|
42
|
+
end
|
7
43
|
end
|
8
44
|
end
|
9
45
|
<% end -%>
|
data/lib/super.rb
CHANGED
@@ -0,0 +1,88 @@
|
|
1
|
+
module Super
|
2
|
+
class ActionInquirer
|
3
|
+
attr_reader :action
|
4
|
+
|
5
|
+
def self.default_resources
|
6
|
+
{
|
7
|
+
read: %i[index show new edit],
|
8
|
+
write: %i[create update destroy],
|
9
|
+
delete: %i[destroy]
|
10
|
+
}
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize(categories_and_their_actions, action)
|
14
|
+
@categories = categories_and_their_actions.keys.map(&:to_s)
|
15
|
+
@actions = categories_and_their_actions.values.flatten.uniq.map(&:to_s)
|
16
|
+
@actions_categories = {}
|
17
|
+
|
18
|
+
categories_and_their_actions.each do |c, actions|
|
19
|
+
c = c.to_s
|
20
|
+
|
21
|
+
actions.each do |a|
|
22
|
+
a = a.to_s
|
23
|
+
@actions_categories[a] ||= []
|
24
|
+
@actions_categories[a].push(c)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
intersection = @categories & @actions
|
29
|
+
if intersection.any?
|
30
|
+
raise Error::ActionInquirerError,
|
31
|
+
"Found shared elements between categories and actions: #{intersection.join(", ")}"
|
32
|
+
end
|
33
|
+
|
34
|
+
self.action = action
|
35
|
+
end
|
36
|
+
|
37
|
+
def action=(new_action)
|
38
|
+
new_action = new_action.to_s
|
39
|
+
if !@actions.include?(new_action)
|
40
|
+
raise Error::ActionInquirerError, "Unknown action: #{new_action}"
|
41
|
+
end
|
42
|
+
|
43
|
+
@action = new_action
|
44
|
+
end
|
45
|
+
|
46
|
+
def respond_to_missing?(method_name, *)
|
47
|
+
inquiry = parse_inquiry(method_name)
|
48
|
+
|
49
|
+
return super if !inquiry
|
50
|
+
|
51
|
+
@actions.include?(inquiry) || @categories.include?(inquiry) || super
|
52
|
+
end
|
53
|
+
|
54
|
+
def method_missing(method_name, *)
|
55
|
+
inquiry = parse_inquiry(method_name)
|
56
|
+
|
57
|
+
return super if !inquiry
|
58
|
+
|
59
|
+
if @actions.include?(inquiry)
|
60
|
+
matches_action?(inquiry)
|
61
|
+
elsif @categories.include?(inquiry)
|
62
|
+
matches_category?(inquiry)
|
63
|
+
else
|
64
|
+
super
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
def parse_inquiry(method_name)
|
71
|
+
inquiry = method_name.to_s
|
72
|
+
|
73
|
+
if inquiry[-1] != "?"
|
74
|
+
return nil
|
75
|
+
end
|
76
|
+
|
77
|
+
inquiry.chomp("?")
|
78
|
+
end
|
79
|
+
|
80
|
+
def matches_action?(inquiry)
|
81
|
+
@action == inquiry
|
82
|
+
end
|
83
|
+
|
84
|
+
def matches_category?(inquiry)
|
85
|
+
@actions_categories[@action].include?(inquiry)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
data/lib/super/error.rb
CHANGED
@@ -4,5 +4,13 @@ module Super
|
|
4
4
|
class InvalidConfiguration < Error; end
|
5
5
|
class InvalidStyle < Error; end
|
6
6
|
class InvalidPluginArgument < Error; end
|
7
|
+
class ActionInquirerError < Error; end
|
8
|
+
|
9
|
+
class ClientError < Error; end
|
10
|
+
class BadRequest < ClientError; end
|
11
|
+
class Unauthorized < ClientError; end
|
12
|
+
class Forbidden < ClientError; end
|
13
|
+
class NotFound < ClientError; end
|
14
|
+
class UnprocessableEntity < ClientError; end
|
7
15
|
end
|
8
16
|
end
|
data/lib/super/test_support/{templates → copy_app_templates}/20190216224956_create_members.rb
RENAMED
File without changes
|
File without changes
|
data/lib/super/test_support/{templates → copy_app_templates}/20190806014121_add_ship_to_members.rb
RENAMED
File without changes
|
File without changes
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Admin
|
2
|
+
class MembersController < AdminController
|
3
|
+
private
|
4
|
+
|
5
|
+
def new_controls
|
6
|
+
Controls.new
|
7
|
+
end
|
8
|
+
|
9
|
+
class Controls
|
10
|
+
def title
|
11
|
+
Member.name.pluralize
|
12
|
+
end
|
13
|
+
|
14
|
+
def model
|
15
|
+
Member
|
16
|
+
end
|
17
|
+
|
18
|
+
def scope(action:)
|
19
|
+
Member.all
|
20
|
+
end
|
21
|
+
|
22
|
+
def permitted_params(params, action:)
|
23
|
+
params.require(:member).permit(:name, :rank, :position, :ship_id)
|
24
|
+
end
|
25
|
+
|
26
|
+
def display_schema(action:)
|
27
|
+
Super::Schema.new(Super::Display::SchemaTypes.new) do |fields, type|
|
28
|
+
fields[:name] = type.dynamic(&:itself)
|
29
|
+
fields[:rank] = type.dynamic(&:itself)
|
30
|
+
fields[:position] = type.dynamic(&:itself)
|
31
|
+
fields[:ship] = type.dynamic { |ship| "#{ship.name} (Ship ##{ship.id})" }
|
32
|
+
fields[:created_at] = type.dynamic(&:iso8601)
|
33
|
+
if action.show?
|
34
|
+
fields[:updated_at] = type.dynamic(&:iso8601)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def form_schema(action:)
|
40
|
+
Super::Schema.new(Super::Form::SchemaTypes.new) do |fields, type|
|
41
|
+
fields[:name] = type.generic("form_generic_text")
|
42
|
+
fields[:rank] = type.generic("form_generic_select", collection: Member.ranks.keys)
|
43
|
+
fields[:position] = type.generic("form_generic_text")
|
44
|
+
fields[:ship_id] = type.generic(
|
45
|
+
"form_generic_select",
|
46
|
+
collection: Ship.all.map { |s| ["#{s.name} (Ship ##{s.id})", s.id] },
|
47
|
+
)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Admin
|
2
|
+
class ShipsController < AdminController
|
3
|
+
private
|
4
|
+
|
5
|
+
def new_controls
|
6
|
+
Controls.new
|
7
|
+
end
|
8
|
+
|
9
|
+
class Controls
|
10
|
+
def title
|
11
|
+
Ship.name.pluralize
|
12
|
+
end
|
13
|
+
|
14
|
+
def model
|
15
|
+
Ship
|
16
|
+
end
|
17
|
+
|
18
|
+
def scope(action:)
|
19
|
+
Ship.all
|
20
|
+
end
|
21
|
+
|
22
|
+
def permitted_params(params, action:)
|
23
|
+
params.require(:ship).permit(:name, :registry, :class_name)
|
24
|
+
end
|
25
|
+
|
26
|
+
def display_schema(action:)
|
27
|
+
Super::Schema.new(Super::Display::SchemaTypes.new) do |fields, type|
|
28
|
+
fields[:name] = type.dynamic(&:itself)
|
29
|
+
fields[:registry] = type.dynamic(&:itself)
|
30
|
+
fields[:class_name] = type.dynamic(&:itself)
|
31
|
+
if action.show?
|
32
|
+
fields[:created_at] = type.dynamic(&:iso8601)
|
33
|
+
fields[:updated_at] = type.dynamic(&:iso8601)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def form_schema(action:)
|
39
|
+
Super::Schema.new(Super::Form::SchemaTypes.new) do |fields, type|
|
40
|
+
fields[:name] = type.generic("form_generic_text")
|
41
|
+
fields[:registry] = type.generic("form_generic_text")
|
42
|
+
fields[:class_name] = type.generic("form_generic_text")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "rails/generators"
|
4
|
+
|
5
|
+
class SuperCopyAppGenerator < Rails::Generators::Base
|
6
|
+
source_root(File.expand_path("copy_app_templates", __dir__))
|
7
|
+
|
8
|
+
class_option :destination, required: true
|
9
|
+
|
10
|
+
def set_destination_root
|
11
|
+
self.destination_root = options[:destination]
|
12
|
+
end
|
13
|
+
|
14
|
+
def ensure_reasonable_directory
|
15
|
+
app_path = File.join(destination_root, "app")
|
16
|
+
if !File.directory?(app_path)
|
17
|
+
raise "Can't find dir: #{app_path}"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def install_super
|
22
|
+
Rails::Generators.invoke("super:install", [], destination_root: destination_root)
|
23
|
+
end
|
24
|
+
|
25
|
+
def copy_app
|
26
|
+
copy_file "member.rb", "app/models/member.rb"
|
27
|
+
copy_file "ship.rb", "app/models/ship.rb"
|
28
|
+
|
29
|
+
copy_file "ships_controller.rb", "app/controllers/admin/ships_controller.rb"
|
30
|
+
copy_file "members_controller.rb", "app/controllers/admin/members_controller.rb"
|
31
|
+
end
|
32
|
+
|
33
|
+
def copy_db
|
34
|
+
migrations = [
|
35
|
+
"20190216224956_create_members.rb",
|
36
|
+
"20190803143320_create_ships.rb",
|
37
|
+
"20190806014121_add_ship_to_members.rb",
|
38
|
+
]
|
39
|
+
|
40
|
+
migrations.each do |migration|
|
41
|
+
copy_file migration, "db/migrate/#{migration}"
|
42
|
+
end
|
43
|
+
|
44
|
+
copy_file "seeds.rb", "db/seeds.rb"
|
45
|
+
end
|
46
|
+
|
47
|
+
def copy_config
|
48
|
+
copy_file "routes.rb", "config/routes.rb"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
SuperCopyAppGenerator.start
|
@@ -0,0 +1,94 @@
|
|
1
|
+
require "fileutils"
|
2
|
+
require "tmpdir"
|
3
|
+
|
4
|
+
require "rails"
|
5
|
+
require "rails/generators/rails/app/app_generator"
|
6
|
+
require "rails/generators/rails/plugin/plugin_generator"
|
7
|
+
require "generators/super/install/install_generator"
|
8
|
+
|
9
|
+
module Rails
|
10
|
+
module Generators
|
11
|
+
class AppGenerator
|
12
|
+
def valid_const?
|
13
|
+
true
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class PluginGenerator
|
18
|
+
def valid_const?
|
19
|
+
true
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class SuperDummyGenerator < Rails::Generators::Base
|
26
|
+
source_root(File.expand_path("templates", __dir__))
|
27
|
+
|
28
|
+
class_option :destination, required: true
|
29
|
+
|
30
|
+
def create_new_plugin
|
31
|
+
if plugin_name.blank?
|
32
|
+
warn "Not currently in a plugin directory"
|
33
|
+
exit
|
34
|
+
end
|
35
|
+
|
36
|
+
opts = {
|
37
|
+
force: true,
|
38
|
+
skip_active_storage: true,
|
39
|
+
skip_action_mailer: true,
|
40
|
+
skip_action_mailbox: true,
|
41
|
+
skip_action_text: true,
|
42
|
+
skip_active_storage: true,
|
43
|
+
skip_action_cable: true,
|
44
|
+
skip_puma: true,
|
45
|
+
skip_coffee: true,
|
46
|
+
database: "sqlite3",
|
47
|
+
}
|
48
|
+
|
49
|
+
Dir.mktmpdir do |dir|
|
50
|
+
plugin_path = File.join(dir, plugin_name)
|
51
|
+
generated_dummy_path = File.join(plugin_path, "test/dummy")
|
52
|
+
|
53
|
+
invoke(Rails::Generators::PluginGenerator, [plugin_path], opts)
|
54
|
+
|
55
|
+
inside(generated_dummy_path) do
|
56
|
+
remove_file(".ruby-version")
|
57
|
+
end
|
58
|
+
|
59
|
+
FileUtils.rm_rf(dummy_path)
|
60
|
+
FileUtils.mv(generated_dummy_path, dummy_path)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def delete_unnecessary_files
|
65
|
+
inside(dummy_path) do
|
66
|
+
remove_file("app/assets/javascripts/cable.js")
|
67
|
+
remove_file("app/channels/")
|
68
|
+
remove_file("public/apple-touch-icon-precomposed.png")
|
69
|
+
remove_file("public/apple-touch-icon.png")
|
70
|
+
remove_file("public/favicon.ico")
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
private
|
75
|
+
|
76
|
+
def dummy_path
|
77
|
+
@dummy_path ||= File.expand_path(options[:destination], destination_root)
|
78
|
+
end
|
79
|
+
|
80
|
+
def plugin_name
|
81
|
+
@plugin_name ||=
|
82
|
+
begin
|
83
|
+
filename = Dir.glob("*.gemspec").first
|
84
|
+
|
85
|
+
if filename.present?
|
86
|
+
File.basename(filename, ".gemspec")
|
87
|
+
else
|
88
|
+
""
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
SuperDummyGenerator.start
|
data/lib/super/version.rb
CHANGED
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.
|
4
|
+
version: 0.0.2
|
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-
|
11
|
+
date: 2019-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -42,16 +42,16 @@ dependencies:
|
|
42
42
|
name: sqlite3
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +94,34 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: yard
|
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: mocha
|
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'
|
97
125
|
description:
|
98
126
|
email:
|
99
127
|
- engineering@zachahn.com
|
@@ -109,14 +137,17 @@ files:
|
|
109
137
|
- app/assets/stylesheets/super/application.css
|
110
138
|
- app/controllers/super/application_controller.rb
|
111
139
|
- app/views/layouts/super/application.html.erb
|
140
|
+
- app/views/super/application/_flash.html.erb
|
112
141
|
- app/views/super/application/_form.html.erb
|
113
142
|
- app/views/super/application/_form_field.html.erb
|
114
143
|
- app/views/super/application/_form_generic_select.html.erb
|
115
144
|
- app/views/super/application/_form_generic_text.html.erb
|
116
145
|
- app/views/super/application/_index.html.erb
|
146
|
+
- app/views/super/application/_show.html.erb
|
117
147
|
- app/views/super/application/edit.html.erb
|
118
148
|
- app/views/super/application/index.html.erb
|
119
149
|
- app/views/super/application/new.html.erb
|
150
|
+
- app/views/super/application/nothing.html.erb
|
120
151
|
- app/views/super/application/show.html.erb
|
121
152
|
- app/views/super/feather/README.md
|
122
153
|
- app/views/super/feather/_chevron_down.svg
|
@@ -136,12 +167,12 @@ files:
|
|
136
167
|
- lib/generators/super/install/templates/initializer.rb.tt
|
137
168
|
- lib/generators/super/resource/USAGE
|
138
169
|
- lib/generators/super/resource/resource_generator.rb
|
139
|
-
- lib/generators/super/resource/templates/resource_dashboard.rb.tt
|
140
170
|
- lib/generators/super/resource/templates/resources_controller.rb.tt
|
141
171
|
- lib/generators/super/webpacker/USAGE
|
142
172
|
- lib/generators/super/webpacker/templates/pack_super_application.js.erb.tt
|
143
173
|
- lib/generators/super/webpacker/webpacker_generator.rb
|
144
174
|
- lib/super.rb
|
175
|
+
- lib/super/action_inquirer.rb
|
145
176
|
- lib/super/assets.rb
|
146
177
|
- lib/super/configuration.rb
|
147
178
|
- lib/super/controls.rb
|
@@ -155,22 +186,20 @@ files:
|
|
155
186
|
- lib/super/pagination.rb
|
156
187
|
- lib/super/plugin.rb
|
157
188
|
- lib/super/schema.rb
|
189
|
+
- lib/super/test_support/copy_app_templates/20190216224956_create_members.rb
|
190
|
+
- lib/super/test_support/copy_app_templates/20190803143320_create_ships.rb
|
191
|
+
- lib/super/test_support/copy_app_templates/20190806014121_add_ship_to_members.rb
|
192
|
+
- lib/super/test_support/copy_app_templates/member.rb
|
193
|
+
- lib/super/test_support/copy_app_templates/members_controller.rb
|
194
|
+
- lib/super/test_support/copy_app_templates/routes.rb
|
195
|
+
- lib/super/test_support/copy_app_templates/seeds.rb
|
196
|
+
- lib/super/test_support/copy_app_templates/ship.rb
|
197
|
+
- lib/super/test_support/copy_app_templates/ships_controller.rb
|
158
198
|
- lib/super/test_support/fixtures/members.yml
|
159
199
|
- lib/super/test_support/fixtures/ships.yml
|
160
|
-
- lib/super/test_support/
|
200
|
+
- lib/super/test_support/generate_copy_app.rb
|
201
|
+
- lib/super/test_support/generate_dummy.rb
|
161
202
|
- lib/super/test_support/starfleet_seeder.rb
|
162
|
-
- lib/super/test_support/templates/20190216224956_create_members.rb
|
163
|
-
- lib/super/test_support/templates/20190803143320_create_ships.rb
|
164
|
-
- lib/super/test_support/templates/20190806014121_add_ship_to_members.rb
|
165
|
-
- lib/super/test_support/templates/admin/members_controller.rb
|
166
|
-
- lib/super/test_support/templates/admin/ships_controller.rb
|
167
|
-
- lib/super/test_support/templates/admin_controller.rb
|
168
|
-
- lib/super/test_support/templates/member.rb
|
169
|
-
- lib/super/test_support/templates/member_dashboard.rb
|
170
|
-
- lib/super/test_support/templates/routes.rb
|
171
|
-
- lib/super/test_support/templates/seeds.rb
|
172
|
-
- lib/super/test_support/templates/ship.rb
|
173
|
-
- lib/super/test_support/templates/ship_dashboard.rb
|
174
203
|
- lib/super/version.rb
|
175
204
|
- lib/super/view.rb
|
176
205
|
- lib/tasks/super_tasks.rake
|
@@ -1,65 +0,0 @@
|
|
1
|
-
class <%= class_name %>Dashboard
|
2
|
-
def title
|
3
|
-
<%= class_name %>.name.pluralize
|
4
|
-
end
|
5
|
-
|
6
|
-
def model
|
7
|
-
<%= class_name %>
|
8
|
-
end
|
9
|
-
|
10
|
-
def index_scope
|
11
|
-
<%= class_name %>.all
|
12
|
-
end
|
13
|
-
|
14
|
-
def index_schema
|
15
|
-
Super::Schema.new(Super::Display::SchemaTypes.new) do |fields, type|
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
def create_scope
|
20
|
-
<%= class_name %>.all
|
21
|
-
end
|
22
|
-
|
23
|
-
def create_permitted_params(params)
|
24
|
-
params.require(:<%= file_name %>).permit()
|
25
|
-
end
|
26
|
-
|
27
|
-
def new_scope
|
28
|
-
<%= class_name %>.all
|
29
|
-
end
|
30
|
-
|
31
|
-
def new_schema
|
32
|
-
Super::Schema.new(Super::Form::SchemaTypes.new) do |fields, type|
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def edit_scope
|
37
|
-
<%= class_name %>.all
|
38
|
-
end
|
39
|
-
|
40
|
-
def edit_schema
|
41
|
-
Super::Schema.new(Super::Form::SchemaTypes.new) do |fields, type|
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def show_scope
|
46
|
-
<%= class_name %>.all
|
47
|
-
end
|
48
|
-
|
49
|
-
def show_schema
|
50
|
-
Super::Schema.new(Super::Display::SchemaTypes.new) do |fields, type|
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def update_scope
|
55
|
-
<%= class_name %>.all
|
56
|
-
end
|
57
|
-
|
58
|
-
def update_permitted_params(params)
|
59
|
-
params.require(:<%= file_name %>).permit()
|
60
|
-
end
|
61
|
-
|
62
|
-
def destroy_scope
|
63
|
-
<%= class_name %>.all
|
64
|
-
end
|
65
|
-
end
|
@@ -1,79 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "fileutils"
|
4
|
-
require "pathname"
|
5
|
-
|
6
|
-
def help!
|
7
|
-
puts "usage: #{$0} path/to/dest/app"
|
8
|
-
exit
|
9
|
-
end
|
10
|
-
|
11
|
-
def assert(message)
|
12
|
-
if !yield
|
13
|
-
puts message
|
14
|
-
exit(1)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def act(message, if_not:)
|
19
|
-
if !if_not.call
|
20
|
-
yield
|
21
|
-
puts message
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
if ARGV.size != 1
|
26
|
-
help!
|
27
|
-
end
|
28
|
-
|
29
|
-
dest = ARGV.first
|
30
|
-
dest = File.expand_path(dest, Dir.pwd)
|
31
|
-
dest = Pathname.new(dest)
|
32
|
-
|
33
|
-
src = File.expand_path("templates", __dir__)
|
34
|
-
src = Pathname.new(src)
|
35
|
-
|
36
|
-
assert("Path doesn't exist: #{dest.join("app")}") do
|
37
|
-
dest.join("app").exist?
|
38
|
-
end
|
39
|
-
|
40
|
-
assert("Path doesn't exist: #{dest.join("app/models")}") do
|
41
|
-
dest.join("app/models").exist?
|
42
|
-
end
|
43
|
-
|
44
|
-
FileUtils.cp(src.join("member.rb"), dest.join("app/models/member.rb"))
|
45
|
-
FileUtils.cp(src.join("ship.rb"), dest.join("app/models/ship.rb"))
|
46
|
-
|
47
|
-
assert("Path doesn't exist: #{dest.join("app/controllers")}") do
|
48
|
-
dest.join("app/controllers").exist?
|
49
|
-
end
|
50
|
-
|
51
|
-
FileUtils.cp(src.join("admin_controller.rb"), dest.join("app/controllers/admin_controller.rb"))
|
52
|
-
|
53
|
-
act "Created #{dest.join("app/controllers/admin")}", if_not: -> { dest.join("app/controllers/admin").exist? } do
|
54
|
-
FileUtils.mkdir(dest.join("app/controllers/admin"))
|
55
|
-
end
|
56
|
-
|
57
|
-
FileUtils.cp(src.join("admin/members_controller.rb"), dest.join("app/controllers/admin/members_controller.rb"))
|
58
|
-
FileUtils.cp(src.join("admin/ships_controller.rb"), dest.join("app/controllers/admin/ships_controller.rb"))
|
59
|
-
|
60
|
-
act "Created #{dest.join("app/super")}", if_not: -> { dest.join("app/super").exist? } do
|
61
|
-
FileUtils.mkdir(dest.join("app/super"))
|
62
|
-
end
|
63
|
-
|
64
|
-
FileUtils.cp(src.join("member_dashboard.rb"), dest.join("app/super/member_dashboard.rb"))
|
65
|
-
FileUtils.cp(src.join("ship_dashboard.rb"), dest.join("app/super/ship_dashboard.rb"))
|
66
|
-
|
67
|
-
act "Created #{dest.join("db/migrate")}", if_not: -> { dest.join("db/migrate").exist? } do
|
68
|
-
FileUtils.mkdir(dest.join("db/migrate"))
|
69
|
-
end
|
70
|
-
|
71
|
-
FileUtils.cp(src.join("20190216224956_create_members.rb"), dest.join("db/migrate/20190216224956_create_members.rb"))
|
72
|
-
FileUtils.cp(src.join("20190803143320_create_ships.rb"), dest.join("db/migrate/20190803143320_create_ships.rb"))
|
73
|
-
FileUtils.cp(src.join("20190806014121_add_ship_to_members.rb"), dest.join("db/migrate/20190806014121_add_ship_to_members.rb"))
|
74
|
-
|
75
|
-
FileUtils.cp(src.join("seeds.rb"), dest.join("db/seeds.rb"))
|
76
|
-
|
77
|
-
FileUtils.cp(src.join("routes.rb"), dest.join("config/routes.rb"))
|
78
|
-
|
79
|
-
puts "Done!"
|
@@ -1,90 +0,0 @@
|
|
1
|
-
class MemberDashboard
|
2
|
-
def title
|
3
|
-
Member.name.pluralize
|
4
|
-
end
|
5
|
-
|
6
|
-
def model
|
7
|
-
Member
|
8
|
-
end
|
9
|
-
|
10
|
-
def index_scope
|
11
|
-
Member.all
|
12
|
-
end
|
13
|
-
|
14
|
-
def index_schema
|
15
|
-
Super::Schema.new(Super::Display::SchemaTypes.new) do |fields, type|
|
16
|
-
fields[:name] = type.dynamic { |name| name }
|
17
|
-
fields[:rank] = type.dynamic { |rank| rank }
|
18
|
-
fields[:position] = type.dynamic { |position| position }
|
19
|
-
fields[:ship] = type.dynamic { |ship| "#{ship.name} (Ship ##{ship.id})" }
|
20
|
-
fields[:created_at] = type.dynamic(&:iso8601)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def create_scope
|
25
|
-
Member.all
|
26
|
-
end
|
27
|
-
|
28
|
-
def create_permitted_params(params)
|
29
|
-
params.require(:member).permit(:name, :rank, :position, :ship_id)
|
30
|
-
end
|
31
|
-
|
32
|
-
def new_scope
|
33
|
-
Member.all
|
34
|
-
end
|
35
|
-
|
36
|
-
def new_schema
|
37
|
-
Super::Schema.new(Super::Form::SchemaTypes.new) do |fields, type|
|
38
|
-
fields[:name] = type.generic("form_generic_text")
|
39
|
-
fields[:rank] = type.generic("form_generic_select", collection: Member.ranks.keys)
|
40
|
-
fields[:position] = type.generic("form_generic_text")
|
41
|
-
fields[:ship_id] = type.generic(
|
42
|
-
"form_generic_select",
|
43
|
-
collection: Ship.all.map { |s| ["#{s.name} (Ship ##{s.id})", s.id] },
|
44
|
-
)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def edit_scope
|
49
|
-
Member.all
|
50
|
-
end
|
51
|
-
|
52
|
-
def edit_schema
|
53
|
-
Super::Schema.new(Super::Form::SchemaTypes.new) do |fields, type|
|
54
|
-
fields[:name] = type.generic("form_generic_text")
|
55
|
-
fields[:rank] = type.generic("form_generic_select", collection: Member.ranks.keys)
|
56
|
-
fields[:position] = type.generic("form_generic_text")
|
57
|
-
fields[:ship_id] = type.generic(
|
58
|
-
"form_generic_select",
|
59
|
-
collection: Ship.all.map { |s| ["#{s.name} (Ship ##{s.id})", s.id] },
|
60
|
-
)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def show_scope
|
65
|
-
Member.all
|
66
|
-
end
|
67
|
-
|
68
|
-
def show_schema
|
69
|
-
Super::Schema.new(Super::Display::SchemaTypes.new) do |fields, type|
|
70
|
-
fields[:name] = type.dynamic { |name| name }
|
71
|
-
fields[:rank] = type.dynamic { |rank| rank }
|
72
|
-
fields[:position] = type.dynamic { |position| position }
|
73
|
-
fields[:ship] = type.dynamic { |ship| "#{ship.name} (Ship ##{ship.id})" }
|
74
|
-
fields[:created_at] = type.dynamic(&:iso8601)
|
75
|
-
fields[:updated_at] = type.dynamic(&:iso8601)
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
def update_scope
|
80
|
-
Member.all
|
81
|
-
end
|
82
|
-
|
83
|
-
def update_permitted_params(params)
|
84
|
-
params.require(:member).permit(:name, :rank, :position, :ship_id)
|
85
|
-
end
|
86
|
-
|
87
|
-
def destroy_scope
|
88
|
-
Member.all
|
89
|
-
end
|
90
|
-
end
|
@@ -1,79 +0,0 @@
|
|
1
|
-
class ShipDashboard
|
2
|
-
def title
|
3
|
-
Ship.name.pluralize
|
4
|
-
end
|
5
|
-
|
6
|
-
def model
|
7
|
-
Ship
|
8
|
-
end
|
9
|
-
|
10
|
-
def index_scope
|
11
|
-
Ship.all
|
12
|
-
end
|
13
|
-
|
14
|
-
def index_schema
|
15
|
-
Super::Schema.new(Super::Display::SchemaTypes.new) do |fields, type|
|
16
|
-
fields[:name] = type.dynamic { |name| name }
|
17
|
-
fields[:registry] = type.dynamic { |registry| registry }
|
18
|
-
fields[:class_name] = type.dynamic { |class_name| class_name }
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def create_scope
|
23
|
-
Ship.all
|
24
|
-
end
|
25
|
-
|
26
|
-
def create_permitted_params(params)
|
27
|
-
params.require(:ship).permit(:name, :registry, :class_name)
|
28
|
-
end
|
29
|
-
|
30
|
-
def new_scope
|
31
|
-
Ship.all
|
32
|
-
end
|
33
|
-
|
34
|
-
def new_schema
|
35
|
-
Super::Schema.new(Super::Form::SchemaTypes.new) do |fields, type|
|
36
|
-
fields[:name] = type.generic("form_generic_text")
|
37
|
-
fields[:registry] = type.generic("form_generic_text")
|
38
|
-
fields[:class_name] = type.generic("form_generic_text")
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def edit_scope
|
43
|
-
Ship.all
|
44
|
-
end
|
45
|
-
|
46
|
-
def edit_schema
|
47
|
-
Super::Schema.new(Super::Form::SchemaTypes.new) do |fields, type|
|
48
|
-
fields[:name] = type.generic("form_generic_text")
|
49
|
-
fields[:registry] = type.generic("form_generic_text")
|
50
|
-
fields[:class_name] = type.generic("form_generic_text")
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def show_scope
|
55
|
-
Ship.all
|
56
|
-
end
|
57
|
-
|
58
|
-
def show_schema
|
59
|
-
Super::Schema.new(Super::Display::SchemaTypes.new) do |fields, type|
|
60
|
-
fields[:name] = type.dynamic { |name| name }
|
61
|
-
fields[:registry] = type.dynamic { |registry| registry }
|
62
|
-
fields[:class_name] = type.dynamic { |class_name| class_name }
|
63
|
-
fields[:created_at] = type.dynamic(&:iso8601)
|
64
|
-
fields[:updated_at] = type.dynamic(&:iso8601)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def update_scope
|
69
|
-
Ship.all
|
70
|
-
end
|
71
|
-
|
72
|
-
def update_permitted_params(params)
|
73
|
-
params.require(:ship).permit(:name, :registry, :class_name)
|
74
|
-
end
|
75
|
-
|
76
|
-
def destroy_scope
|
77
|
-
Ship.all
|
78
|
-
end
|
79
|
-
end
|