schienenzeppelin 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/main.yml +17 -0
  3. data/.github/workflows/outdated.yml +20 -0
  4. data/.gitignore +282 -0
  5. data/.rspec_status +3 -0
  6. data/.rubocop.yml +28 -0
  7. data/.tool-versions +1 -0
  8. data/CODE_OF_CONDUCT.md +84 -0
  9. data/GALLERY.md +29 -0
  10. data/Gemfile +13 -0
  11. data/Gemfile.lock +184 -0
  12. data/LICENSE +21 -0
  13. data/LICENSE.txt +21 -0
  14. data/README.md +174 -0
  15. data/Rakefile +12 -0
  16. data/TODO.md +32 -0
  17. data/bin/console +15 -0
  18. data/bin/setup +8 -0
  19. data/exe/sz +25 -0
  20. data/images/create.png +0 -0
  21. data/images/error.png +0 -0
  22. data/images/home.png +0 -0
  23. data/images/index.png +0 -0
  24. data/images/login.png +0 -0
  25. data/images/mobile.png +0 -0
  26. data/lib/schienenzeppelin.rb +18 -0
  27. data/lib/schienenzeppelin/app_builder.rb +88 -0
  28. data/lib/schienenzeppelin/app_generator.rb +95 -0
  29. data/lib/schienenzeppelin/helper_base.rb +28 -0
  30. data/lib/schienenzeppelin/helpers/annotate.rb +11 -0
  31. data/lib/schienenzeppelin/helpers/capistrano.rb +35 -0
  32. data/lib/schienenzeppelin/helpers/continuous_integration.rb +12 -0
  33. data/lib/schienenzeppelin/helpers/credentials.rb +49 -0
  34. data/lib/schienenzeppelin/helpers/devise.rb +45 -0
  35. data/lib/schienenzeppelin/helpers/errors.rb +67 -0
  36. data/lib/schienenzeppelin/helpers/factory_bot.rb +13 -0
  37. data/lib/schienenzeppelin/helpers/generators.rb +26 -0
  38. data/lib/schienenzeppelin/helpers/high_voltage.rb +11 -0
  39. data/lib/schienenzeppelin/helpers/home.rb +17 -0
  40. data/lib/schienenzeppelin/helpers/hotwire.rb +11 -0
  41. data/lib/schienenzeppelin/helpers/pundit.rb +12 -0
  42. data/lib/schienenzeppelin/helpers/rspec.rb +13 -0
  43. data/lib/schienenzeppelin/helpers/rubocop.rb +11 -0
  44. data/lib/schienenzeppelin/helpers/scaffold.rb +11 -0
  45. data/lib/schienenzeppelin/helpers/services.rb +11 -0
  46. data/lib/schienenzeppelin/helpers/sidekiq.rb +13 -0
  47. data/lib/schienenzeppelin/helpers/stimulus.rb +11 -0
  48. data/lib/schienenzeppelin/helpers/stimulus_components.rb +29 -0
  49. data/lib/schienenzeppelin/helpers/tailwind.rb +18 -0
  50. data/lib/schienenzeppelin/version.rb +7 -0
  51. data/schienenzeppelin.gemspec +37 -0
  52. data/schienenzeppelin.jpg +0 -0
  53. data/script.md +104 -0
  54. data/templates/.dockerignore.erb +51 -0
  55. data/templates/.entrypoint.sh.erb +16 -0
  56. data/templates/.env.development.erb +3 -0
  57. data/templates/.foreman.erb +1 -0
  58. data/templates/.github/workflows/build.yml.erb +49 -0
  59. data/templates/.gitignore.erb +285 -0
  60. data/templates/.irbrc.erb +12 -0
  61. data/templates/.rubocop.yml.erb +37 -0
  62. data/templates/.tool-versions.erb +1 -0
  63. data/templates/Capfile.erb +24 -0
  64. data/templates/Dockerfile.erb +45 -0
  65. data/templates/Gemfile.erb +122 -0
  66. data/templates/Procfile.dev.erb +6 -0
  67. data/templates/Procfile.erb +2 -0
  68. data/templates/README.md.erb +43 -0
  69. data/templates/app/controllers/authorized_controller.rb.erb +10 -0
  70. data/templates/app/controllers/errors_controller.rb.erb +24 -0
  71. data/templates/app/javascript/images/checkmark.svg +1 -0
  72. data/templates/app/javascript/images/logo.svg +1 -0
  73. data/templates/app/javascript/stylesheets/components.scss +206 -0
  74. data/templates/app/policies/application_policy.rb +55 -0
  75. data/templates/app/services/application_service.rb +14 -0
  76. data/templates/app/views/devise/confirmations/new.html.erb +24 -0
  77. data/templates/app/views/devise/passwords/edit.html.erb +34 -0
  78. data/templates/app/views/devise/passwords/new.html.erb +23 -0
  79. data/templates/app/views/devise/registrations/edit.html.erb +62 -0
  80. data/templates/app/views/devise/registrations/new.html.erb +45 -0
  81. data/templates/app/views/devise/sessions/new.html.erb +33 -0
  82. data/templates/app/views/devise/shared/_error_messages.html.erb +15 -0
  83. data/templates/app/views/devise/shared/_form_wrap.html.erb +5 -0
  84. data/templates/app/views/devise/shared/_links.html.erb +25 -0
  85. data/templates/app/views/devise/unlocks/new.html.erb +22 -0
  86. data/templates/app/views/errors/internal_error.html.erb +14 -0
  87. data/templates/app/views/errors/not_found.html.erb +14 -0
  88. data/templates/app/views/errors/unacceptable.html.erb +14 -0
  89. data/templates/app/views/layouts/application.html.erb.tt +30 -0
  90. data/templates/app/views/pages/home.html.erb.tt +20 -0
  91. data/templates/app/views/shared/_flashes.html.erb.tt +12 -0
  92. data/templates/app/views/shared/_footer.html.erb.tt +21 -0
  93. data/templates/app/views/shared/_navbar.html.erb.tt +40 -0
  94. data/templates/bin/setup.erb +146 -0
  95. data/templates/config/credentials.yml.erb +7 -0
  96. data/templates/config/initializers/high_voltage.rb +6 -0
  97. data/templates/config/initializers/lograge.rb +5 -0
  98. data/templates/config/initializers/sidekiq.rb +10 -0
  99. data/templates/config/postgresql.yml.erb +23 -0
  100. data/templates/docker-compose.yml.erb +21 -0
  101. data/templates/lib/capistrano/tasks/seeds.rake +12 -0
  102. data/templates/lib/capistrano/tasks/sidekiq.rake +36 -0
  103. data/templates/lib/generators/rails/navigation/USAGE +6 -0
  104. data/templates/lib/generators/rails/navigation/navigation_generator.rb +15 -0
  105. data/templates/lib/generators/rails/scaffold_controller_generator.rb +12 -0
  106. data/templates/lib/tasks/auto_annotate_models.rake +58 -0
  107. data/templates/lib/templates/erb/scaffold/_form.html.erb +39 -0
  108. data/templates/lib/templates/erb/scaffold/edit.html.erb +7 -0
  109. data/templates/lib/templates/erb/scaffold/index.html.erb +34 -0
  110. data/templates/lib/templates/erb/scaffold/new.html.erb +7 -0
  111. data/templates/lib/templates/erb/scaffold/show.html.erb +18 -0
  112. data/templates/public/500.html.erb +26 -0
  113. data/templates/spec/rails_helper.rb +26 -0
  114. data/templates/spec/spec_helper.rb +61 -0
  115. data/templates/spec/support/factory_bot.rb +5 -0
  116. data/templates/spec/support/shoulda_matchers.rb +8 -0
  117. 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,7 @@
1
+ # custom credentials
2
+ # aws:
3
+ # access_key_id: 123
4
+ # secret_access_key: 345
5
+
6
+ # Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
7
+ secret_key_base: <%= SecureRandom.hex(64) %>
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ HighVoltage.configure do |config|
4
+ config.route_drawer = HighVoltage::RouteDrawers::Root
5
+ config.home_page = 'home'
6
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ Rails.application.configure do
4
+ config.lograge.enabled = true
5
+ end
@@ -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,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :deploy do
4
+ desc 'Reload the database with seed data'
5
+ task :seeds do
6
+ on roles(:all) do
7
+ within current_path do
8
+ execute :bundle, :exec, 'rails', 'db:seed', 'RAILS_ENV=production'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -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,6 @@
1
+ Description:
2
+ This adds a link to the specified resource to your home page
3
+
4
+ Example:
5
+ bin/rails generate navigation resource
6
+
@@ -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