schienenzeppelin 0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/main.yml +17 -0
- data/.github/workflows/outdated.yml +20 -0
- data/.gitignore +282 -0
- data/.rspec_status +3 -0
- data/.rubocop.yml +28 -0
- data/.tool-versions +1 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/GALLERY.md +29 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +184 -0
- data/LICENSE +21 -0
- data/LICENSE.txt +21 -0
- data/README.md +174 -0
- data/Rakefile +12 -0
- data/TODO.md +32 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/exe/sz +25 -0
- data/images/create.png +0 -0
- data/images/error.png +0 -0
- data/images/home.png +0 -0
- data/images/index.png +0 -0
- data/images/login.png +0 -0
- data/images/mobile.png +0 -0
- data/lib/schienenzeppelin.rb +18 -0
- data/lib/schienenzeppelin/app_builder.rb +88 -0
- data/lib/schienenzeppelin/app_generator.rb +95 -0
- data/lib/schienenzeppelin/helper_base.rb +28 -0
- data/lib/schienenzeppelin/helpers/annotate.rb +11 -0
- data/lib/schienenzeppelin/helpers/capistrano.rb +35 -0
- data/lib/schienenzeppelin/helpers/continuous_integration.rb +12 -0
- data/lib/schienenzeppelin/helpers/credentials.rb +49 -0
- data/lib/schienenzeppelin/helpers/devise.rb +45 -0
- data/lib/schienenzeppelin/helpers/errors.rb +67 -0
- data/lib/schienenzeppelin/helpers/factory_bot.rb +13 -0
- data/lib/schienenzeppelin/helpers/generators.rb +26 -0
- data/lib/schienenzeppelin/helpers/high_voltage.rb +11 -0
- data/lib/schienenzeppelin/helpers/home.rb +17 -0
- data/lib/schienenzeppelin/helpers/hotwire.rb +11 -0
- data/lib/schienenzeppelin/helpers/pundit.rb +12 -0
- data/lib/schienenzeppelin/helpers/rspec.rb +13 -0
- data/lib/schienenzeppelin/helpers/rubocop.rb +11 -0
- data/lib/schienenzeppelin/helpers/scaffold.rb +11 -0
- data/lib/schienenzeppelin/helpers/services.rb +11 -0
- data/lib/schienenzeppelin/helpers/sidekiq.rb +13 -0
- data/lib/schienenzeppelin/helpers/stimulus.rb +11 -0
- data/lib/schienenzeppelin/helpers/stimulus_components.rb +29 -0
- data/lib/schienenzeppelin/helpers/tailwind.rb +18 -0
- data/lib/schienenzeppelin/version.rb +7 -0
- data/schienenzeppelin.gemspec +37 -0
- data/schienenzeppelin.jpg +0 -0
- data/script.md +104 -0
- data/templates/.dockerignore.erb +51 -0
- data/templates/.entrypoint.sh.erb +16 -0
- data/templates/.env.development.erb +3 -0
- data/templates/.foreman.erb +1 -0
- data/templates/.github/workflows/build.yml.erb +49 -0
- data/templates/.gitignore.erb +285 -0
- data/templates/.irbrc.erb +12 -0
- data/templates/.rubocop.yml.erb +37 -0
- data/templates/.tool-versions.erb +1 -0
- data/templates/Capfile.erb +24 -0
- data/templates/Dockerfile.erb +45 -0
- data/templates/Gemfile.erb +122 -0
- data/templates/Procfile.dev.erb +6 -0
- data/templates/Procfile.erb +2 -0
- data/templates/README.md.erb +43 -0
- data/templates/app/controllers/authorized_controller.rb.erb +10 -0
- data/templates/app/controllers/errors_controller.rb.erb +24 -0
- data/templates/app/javascript/images/checkmark.svg +1 -0
- data/templates/app/javascript/images/logo.svg +1 -0
- data/templates/app/javascript/stylesheets/components.scss +206 -0
- data/templates/app/policies/application_policy.rb +55 -0
- data/templates/app/services/application_service.rb +14 -0
- data/templates/app/views/devise/confirmations/new.html.erb +24 -0
- data/templates/app/views/devise/passwords/edit.html.erb +34 -0
- data/templates/app/views/devise/passwords/new.html.erb +23 -0
- data/templates/app/views/devise/registrations/edit.html.erb +62 -0
- data/templates/app/views/devise/registrations/new.html.erb +45 -0
- data/templates/app/views/devise/sessions/new.html.erb +33 -0
- data/templates/app/views/devise/shared/_error_messages.html.erb +15 -0
- data/templates/app/views/devise/shared/_form_wrap.html.erb +5 -0
- data/templates/app/views/devise/shared/_links.html.erb +25 -0
- data/templates/app/views/devise/unlocks/new.html.erb +22 -0
- data/templates/app/views/errors/internal_error.html.erb +14 -0
- data/templates/app/views/errors/not_found.html.erb +14 -0
- data/templates/app/views/errors/unacceptable.html.erb +14 -0
- data/templates/app/views/layouts/application.html.erb.tt +30 -0
- data/templates/app/views/pages/home.html.erb.tt +20 -0
- data/templates/app/views/shared/_flashes.html.erb.tt +12 -0
- data/templates/app/views/shared/_footer.html.erb.tt +21 -0
- data/templates/app/views/shared/_navbar.html.erb.tt +40 -0
- data/templates/bin/setup.erb +146 -0
- data/templates/config/credentials.yml.erb +7 -0
- data/templates/config/initializers/high_voltage.rb +6 -0
- data/templates/config/initializers/lograge.rb +5 -0
- data/templates/config/initializers/sidekiq.rb +10 -0
- data/templates/config/postgresql.yml.erb +23 -0
- data/templates/docker-compose.yml.erb +21 -0
- data/templates/lib/capistrano/tasks/seeds.rake +12 -0
- data/templates/lib/capistrano/tasks/sidekiq.rake +36 -0
- data/templates/lib/generators/rails/navigation/USAGE +6 -0
- data/templates/lib/generators/rails/navigation/navigation_generator.rb +15 -0
- data/templates/lib/generators/rails/scaffold_controller_generator.rb +12 -0
- data/templates/lib/tasks/auto_annotate_models.rake +58 -0
- data/templates/lib/templates/erb/scaffold/_form.html.erb +39 -0
- data/templates/lib/templates/erb/scaffold/edit.html.erb +7 -0
- data/templates/lib/templates/erb/scaffold/index.html.erb +34 -0
- data/templates/lib/templates/erb/scaffold/new.html.erb +7 -0
- data/templates/lib/templates/erb/scaffold/show.html.erb +18 -0
- data/templates/public/500.html.erb +26 -0
- data/templates/spec/rails_helper.rb +26 -0
- data/templates/spec/spec_helper.rb +61 -0
- data/templates/spec/support/factory_bot.rb +5 -0
- data/templates/spec/support/shoulda_matchers.rb +8 -0
- metadata +179 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
<div class="py-20 bg-gray-100">
|
2
|
+
<div class="container mx-auto px-6">
|
3
|
+
<h2 class="text-6xl font-bold mb-2">
|
4
|
+
<%= camelized %>
|
5
|
+
</h2>
|
6
|
+
<h3 class="text-2xl mb-8 text-gray-800">
|
7
|
+
Created with <a class="underline" href="https://github.com/hschne/schienenzeppelin">Schienenzeppelin</a>
|
8
|
+
</h3>
|
9
|
+
<button class="btn btn-blue">
|
10
|
+
View Documentation
|
11
|
+
</button>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<section class="container mx-auto px-6 p-10 text-center">
|
16
|
+
<h2 class="text-2xl font-bold text-gray-800 mb-2">Ready to do some magic?</h2>
|
17
|
+
<p>Edit this page in <code class="bg-gray-100">app/views/pages/home.html.erb</code></p>
|
18
|
+
</section>
|
19
|
+
|
20
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%% flash.each do |type, message| %>
|
2
|
+
<%% if type == "alert" %>
|
3
|
+
<div class="bg-red-500">
|
4
|
+
<div class="container px-2 py-4 mx-auto font-sans font-medium text-center text-white"><%%= message %></div>
|
5
|
+
</div>
|
6
|
+
<%% end %>
|
7
|
+
<%% if type == "notice" %>
|
8
|
+
<div class="bg-green-500">
|
9
|
+
<div class="container px-2 py-4 mx-auto font-sans font-medium text-center text-white"><%%= message %></div>
|
10
|
+
</div>
|
11
|
+
<%% end %>
|
12
|
+
<%% end %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<footer class="bg-gray-100">
|
2
|
+
<div class="container mx-auto px-8">
|
3
|
+
|
4
|
+
<div class="w-full flex py-6 justify-between">
|
5
|
+
<div class="flex align-middle">
|
6
|
+
© <%%= Date.current.year %> <%= app_name.capitalize %>
|
7
|
+
</div>
|
8
|
+
<div class="flex w-1/3 justify-end">
|
9
|
+
<ul class="list-reset w-full flex justify-around align-middle items-center mb-6">
|
10
|
+
<li class="mt-2 mr-2 md:mr-0">
|
11
|
+
<a href="#" class="no-underline hover:underline">About</a>
|
12
|
+
</li>
|
13
|
+
<li class="mt-2 mr-2 md:mr-0">
|
14
|
+
<a href="#" class="no-underline hover:underline">Contact</a>
|
15
|
+
</li>
|
16
|
+
</ul>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</footer>
|
21
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<header class="shadow">
|
2
|
+
<nav
|
3
|
+
data-controller="dropdown"
|
4
|
+
class="container mx-auto flex flex-wrap justify-between items-center p-5">
|
5
|
+
<div>
|
6
|
+
<a
|
7
|
+
class="flex items-center mr-2"
|
8
|
+
href="<%%= root_path %>">
|
9
|
+
<%%= inline_svg_pack_tag('media/images/logo.svg', class: "rounded mx-2", size: "3rem * 3rem") %>
|
10
|
+
<p class="font-bold text-lg"><%= app_name.capitalize %> </p>
|
11
|
+
</a>
|
12
|
+
</div>
|
13
|
+
<div class="flex md:hidden">
|
14
|
+
<button data-action="click->dropdown#toggle click@window->dropdown#hide"
|
15
|
+
class="px-3 py-2 border border-gray-500 rounded text-grey hover:text-gray-600 hover:border-gray-600"
|
16
|
+
>
|
17
|
+
<svg class="w-3 h-3 fill-current" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
18
|
+
<title>Menu</title>
|
19
|
+
<path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z"/>
|
20
|
+
</svg>
|
21
|
+
</button>
|
22
|
+
</div>
|
23
|
+
<div
|
24
|
+
data-dropdown-target="menu"
|
25
|
+
class="hidden md:flex-grow md:flex w-full md:w-auto text-right md:text-left text-bold mt-5 md:mt-0 border-t-2 border-gray-200 md:border-none">
|
26
|
+
<div class="justify-start flex-grow">
|
27
|
+
<!-- SZ Link Placeholder -->
|
28
|
+
</div>
|
29
|
+
<ul class="w-full flex-col md:flex md:flex-row items-center justify-end md:w-auto">
|
30
|
+
<%% if user_signed_in? %>
|
31
|
+
<li><%%= link_to "Edit account", edit_user_registration_path, class: "btn btn-default md:mr-2 my-2 md:my-0 " %></li>
|
32
|
+
<li><%%= link_to "Log out", destroy_user_session_path, method: :delete, class: "btn btn-default" %></li>
|
33
|
+
<%% else %>
|
34
|
+
<li><%%= link_to "Login", new_user_session_path, class: "btn btn-blue md:mr-2 my-2 md:my-0" %></li>
|
35
|
+
<li><%%= link_to "Sign Up", new_user_registration_path, class: "btn btn-blue" %></li>
|
36
|
+
<%% end %>
|
37
|
+
</ul>
|
38
|
+
</div>
|
39
|
+
</nav>
|
40
|
+
</header>
|
@@ -0,0 +1,146 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
|
5
|
+
RED='\033[0;31m'
|
6
|
+
GREEN='\033[0;32m'
|
7
|
+
YELLOW='\033[0;33m'
|
8
|
+
NO_COLOR='\033[0m'
|
9
|
+
CLEAR_LINE='\r\033[K'
|
10
|
+
|
11
|
+
LOG_FILE=$(mktemp /tmp/<%= app_name %>-setup-XXXXXX)
|
12
|
+
|
13
|
+
# Emojis from https://graphemica.com/
|
14
|
+
main() {
|
15
|
+
progress 1 🔎 "Checking dependencies"
|
16
|
+
|
17
|
+
if [[ ! $(command -v ruby) ]]; then
|
18
|
+
clear
|
19
|
+
error "Ruby <%= RUBY_VERSION %> is required but not currently installed"
|
20
|
+
exit 101
|
21
|
+
fi
|
22
|
+
|
23
|
+
if [[ ! $(ruby --version) =~ <%= RUBY_VERSION %> ]]; then
|
24
|
+
clear
|
25
|
+
error "Your version of ruby does not match the required version <%= RUBY_VERSION %>"
|
26
|
+
exit 101
|
27
|
+
fi
|
28
|
+
|
29
|
+
if [[ ! $(command -v node) ]]; then
|
30
|
+
clear
|
31
|
+
error "Node is required but not currently installed"
|
32
|
+
exit 101
|
33
|
+
fi
|
34
|
+
|
35
|
+
if [[ ! $(command -v yarn) ]]; then
|
36
|
+
clear
|
37
|
+
error "Yarn is required but not currently installed"
|
38
|
+
exit 101
|
39
|
+
fi
|
40
|
+
|
41
|
+
clear
|
42
|
+
progress 2 📦 "Installing bundler"
|
43
|
+
gem install bundler 2> "$LOG_FILE" 1> /dev/null
|
44
|
+
|
45
|
+
clear
|
46
|
+
progress 3 💎 "Installing gems"
|
47
|
+
bundle install 2> "$LOG_FILE" 1> /dev/null
|
48
|
+
|
49
|
+
clear
|
50
|
+
progress 4 ⏳ "Installing yarn packages"
|
51
|
+
yarn 2> "$LOG_FILE" 1> /dev/null
|
52
|
+
|
53
|
+
clear
|
54
|
+
progress 5 🌐 "Checking database"
|
55
|
+
<% db_port = { postgresql: 5432, mysql: 3306}[options[:database].to_sym] %>
|
56
|
+
if ! is_port_open <%= db_port %>; then
|
57
|
+
clear
|
58
|
+
error "Database be running under port <%= db_port %> but was not found"
|
59
|
+
info "In order to continue the setup you require a running database server"
|
60
|
+
exit 101
|
61
|
+
fi
|
62
|
+
|
63
|
+
clear
|
64
|
+
progress 6 💾 "Setting up databases"
|
65
|
+
rails db:setup 2> "$LOG_FILE" 1> /dev/null
|
66
|
+
}
|
67
|
+
|
68
|
+
libary_exists() {
|
69
|
+
local name=$1
|
70
|
+
libs=$(ldconfig -p | grep -c "$name")
|
71
|
+
[[ "$libs" -ge 1 ]]
|
72
|
+
return $?
|
73
|
+
}
|
74
|
+
|
75
|
+
is_port_open() {
|
76
|
+
local port=$1
|
77
|
+
# Adapted from here: https://www.commandlinefu.com/commands/view/14651/determine-if-a-port-is-open-with-bash
|
78
|
+
(: < /dev/tcp/127.0.0.1/"$port") &>/dev/null && return 0 || return 1
|
79
|
+
}
|
80
|
+
|
81
|
+
error() {
|
82
|
+
local message=$1
|
83
|
+
printf "💀 ${RED} $message${NO_COLOR}\n"
|
84
|
+
}
|
85
|
+
|
86
|
+
warning() {
|
87
|
+
local message=$1
|
88
|
+
printf "⚠️ ${YELLOW} $message ${NO_COLOR}\n"
|
89
|
+
}
|
90
|
+
|
91
|
+
info() {
|
92
|
+
local message=$1
|
93
|
+
printf "ℹ️ $message\n"
|
94
|
+
}
|
95
|
+
|
96
|
+
progress() {
|
97
|
+
total=6
|
98
|
+
step=$1
|
99
|
+
icon=$2
|
100
|
+
message=$3
|
101
|
+
printf "[%s/%s] %s %s" "$step" "$total" "$icon" "$message"
|
102
|
+
}
|
103
|
+
|
104
|
+
clear() {
|
105
|
+
printf "${CLEAR_LINE}"
|
106
|
+
}
|
107
|
+
|
108
|
+
on_exit() {
|
109
|
+
local exit_code=$?
|
110
|
+
clear
|
111
|
+
if [[ "$exit_code" -eq 0 ]]; then
|
112
|
+
on_success
|
113
|
+
elif [[ "$exit_code" -eq 101 ]]; then
|
114
|
+
printf "\n❌${RED} Setup failed${NO_COLOR}\n"
|
115
|
+
else
|
116
|
+
on_error
|
117
|
+
fi
|
118
|
+
}
|
119
|
+
|
120
|
+
on_error() {
|
121
|
+
local errors
|
122
|
+
errors=$(cat "$LOG_FILE")
|
123
|
+
rm "$LOG_FILE"
|
124
|
+
local colored_errors
|
125
|
+
colored_errors=$(printf "${YELLOW}$errors${NO_COLOR}")
|
126
|
+
echo
|
127
|
+
printf "❌${RED} Setup exited with errors:${NO_COLOR}\n"
|
128
|
+
cat <<EOF
|
129
|
+
------
|
130
|
+
$colored_errors
|
131
|
+
------
|
132
|
+
Setup has failed with errors.
|
133
|
+
EOF
|
134
|
+
}
|
135
|
+
|
136
|
+
on_success() {
|
137
|
+
printf "\n🎉${GREEN} Setup finished!${NO_COLOR}\n"
|
138
|
+
cat <<EOF
|
139
|
+
In case you haven't already, check out the Meistertask Backend section in the
|
140
|
+
handbook for more information about this project. Happy coding!
|
141
|
+
EOF
|
142
|
+
}
|
143
|
+
|
144
|
+
trap on_exit EXIT
|
145
|
+
|
146
|
+
main "$@"
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Sidekiq.configure_server do |config|
|
4
|
+
# Add additional sidekiq configuration here
|
5
|
+
|
6
|
+
config.logger.level = Logger::INFO
|
7
|
+
# This enables you to use Rails.logger inside a Sidekiq worker
|
8
|
+
# See: https://github.com/mperham/sidekiq/issues/1682
|
9
|
+
Rails.logger = Sidekiq.logger
|
10
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
default: &default
|
2
|
+
adapter: postgresql
|
3
|
+
encoding: utf8
|
4
|
+
host: <%%= ENV['DATABASE_HOST'] %>
|
5
|
+
username: <%%= ENV['DATABASE_USERNAME'] %>
|
6
|
+
password: <%%= ENV['DATABASE_PASSWORD'] %>
|
7
|
+
pool: <%%= Integer(ENV.fetch("DB_POOL", 5)) %>
|
8
|
+
reaping_frequency: <%%= Integer(ENV.fetch("DB_REAPING_FREQUENCY", 10)) %>
|
9
|
+
timeout: 5000
|
10
|
+
|
11
|
+
development:
|
12
|
+
<<: *default
|
13
|
+
database: <%= app_name %>_development
|
14
|
+
|
15
|
+
test:
|
16
|
+
<<: *default
|
17
|
+
database: <%= app_name %>_test
|
18
|
+
|
19
|
+
production:
|
20
|
+
<<: *default
|
21
|
+
database: <%%= ENV.fetch('DATABASE_NAME','<%= app_name %>_production') %>
|
22
|
+
pool: <%%= [Integer(ENV.fetch('MAX_THREADS', 5)), Integer(ENV.fetch("DB_POOL", 5))].max %>
|
23
|
+
min_messages: warning
|
@@ -0,0 +1,21 @@
|
|
1
|
+
version: "3"
|
2
|
+
services:
|
3
|
+
<%= app_name %>-db:
|
4
|
+
image: postgres
|
5
|
+
volumes:
|
6
|
+
- <%= app_name %>-data:/var/lib/postgresql/data
|
7
|
+
ports:
|
8
|
+
- 5432:5432
|
9
|
+
environment:
|
10
|
+
POSTGRES_PASSWORD: <%= app_name %>
|
11
|
+
POSTGRES_USER: <%= app_name %>
|
12
|
+
|
13
|
+
<% unless options[:skip_sidekiq] %>
|
14
|
+
<%= app_name %>-redis:
|
15
|
+
image: redis
|
16
|
+
ports:
|
17
|
+
- 6379:6379
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
volumes:
|
21
|
+
<%= app_name %>-data:
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
namespace :sidekiq do
|
4
|
+
desc 'Quiet sidekiq (stop fetching new tasks from Redis)'
|
5
|
+
task :quiet do
|
6
|
+
on roles fetch(:sidekiq_roles) do
|
7
|
+
# See: https://github.com/mperham/sidekiq/wiki/Signals#tstp
|
8
|
+
execute :systemctl, '--user', 'kill', '-s', 'SIGTSTP', 'sidekiq.service',
|
9
|
+
raise_on_non_zero_exit: false
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
desc 'Stop sidekiq (graceful shutdown within timeout, put unfinished tasks back to Redis)'
|
14
|
+
task :stop do
|
15
|
+
on roles fetch(:sidekiq_roles) do
|
16
|
+
# See: https://github.com/mperham/sidekiq/wiki/Signals#tstp
|
17
|
+
execute :systemctl, '--user', 'kill', '-s', 'SIGTERM', 'sidekiq.service',
|
18
|
+
raise_on_non_zero_exit: false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
desc 'Start sidekiq'
|
23
|
+
task :start do
|
24
|
+
on roles fetch(:sidekiq_roles) do
|
25
|
+
execute :systemctl, '--user', 'enable', 'sidekiq.service'
|
26
|
+
execute :systemctl, '--user', 'start', 'sidekiq.service'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
desc 'Restart sidekiq'
|
31
|
+
task :restart do
|
32
|
+
on roles fetch(:sidekiq_roles) do
|
33
|
+
execute :systemctl, '--user', 'restart', 'sidekiq.service'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Rails
|
4
|
+
class NavigationGenerator < Rails::Generators::NamedBase
|
5
|
+
def add_link
|
6
|
+
append_to_file 'app/views/shared/_navbar.html.erb',
|
7
|
+
after: '<!-- SZ Link Placeholder -->' do
|
8
|
+
<<-HTML
|
9
|
+
|
10
|
+
<%= link_to "#{plural_name.capitalize}", #{plural_name}_path, class: "block md:inline-block p-3 border-b-2 border-gray-100 md:border-none" %>
|
11
|
+
HTML
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rails/generators'
|
4
|
+
require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator'
|
5
|
+
|
6
|
+
module Rails
|
7
|
+
module Generators
|
8
|
+
class ScaffoldControllerGenerator
|
9
|
+
hook_for :navigation, type: :boolean, default: true
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
if Rails.env.development?
|
4
|
+
require 'annotate'
|
5
|
+
task set_annotation_options: :environment do
|
6
|
+
# You can override any of these by setting an environment variable of the
|
7
|
+
# same name.
|
8
|
+
Annotate.set_defaults(
|
9
|
+
'active_admin' => 'false',
|
10
|
+
'additional_file_patterns' => [],
|
11
|
+
'routes' => 'false',
|
12
|
+
'models' => 'true',
|
13
|
+
'position_in_routes' => 'before',
|
14
|
+
'position_in_class' => 'before',
|
15
|
+
'position_in_test' => 'before',
|
16
|
+
'position_in_fixture' => 'before',
|
17
|
+
'position_in_factory' => 'before',
|
18
|
+
'position_in_serializer' => 'before',
|
19
|
+
'show_foreign_keys' => 'true',
|
20
|
+
'show_complete_foreign_keys' => 'false',
|
21
|
+
'show_indexes' => 'true',
|
22
|
+
'simple_indexes' => 'false',
|
23
|
+
'model_dir' => 'app/models',
|
24
|
+
'root_dir' => '',
|
25
|
+
'include_version' => 'false',
|
26
|
+
'require' => '',
|
27
|
+
'exclude_tests' => 'true',
|
28
|
+
'exclude_fixtures' => 'true',
|
29
|
+
'exclude_factories' => 'true',
|
30
|
+
'exclude_serializers' => 'true',
|
31
|
+
'exclude_scaffolds' => 'true',
|
32
|
+
'exclude_controllers' => 'true',
|
33
|
+
'exclude_helpers' => 'true',
|
34
|
+
'exclude_sti_subclasses' => 'false',
|
35
|
+
'ignore_model_sub_dir' => 'false',
|
36
|
+
'ignore_columns' => nil,
|
37
|
+
'ignore_routes' => nil,
|
38
|
+
'ignore_unknown_models' => 'false',
|
39
|
+
'hide_limit_column_types' => 'integer,bigint,boolean',
|
40
|
+
'hide_default_column_types' => 'json,jsonb,hstore',
|
41
|
+
'skip_on_db_migrate' => 'false',
|
42
|
+
'format_bare' => 'true',
|
43
|
+
'format_rdoc' => 'false',
|
44
|
+
'format_yard' => 'false',
|
45
|
+
'format_markdown' => 'false',
|
46
|
+
'sort' => 'false',
|
47
|
+
'force' => 'false',
|
48
|
+
'frozen' => 'false',
|
49
|
+
'classified_sort' => 'true',
|
50
|
+
'trace' => 'false',
|
51
|
+
'wrapper_open' => nil,
|
52
|
+
'wrapper_close' => nil,
|
53
|
+
'with_comment' => 'true'
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
Annotate.load_tasks
|
58
|
+
end
|