Class: Suspenders::AppGenerator

Inherits:
Rails::Generators::AppGenerator
  • Object
show all
Defined in:
lib/suspenders/generators/app_generator.rb

Instance Method Summary collapse

Instance Method Details

#configure_appObject



168
169
170
171
172
173
174
175
176
177
# File 'lib/suspenders/generators/app_generator.rb', line 168

def configure_app
  say 'Configuring app'
  build :configure_action_mailer
  build :configure_active_job
  build :configure_time_formats
  build :disable_xml_params
  build :setup_default_rake_task
  build :set_up_forego
  build :setup_rack_mini_profiler
end

#copy_miscellaneous_filesObject



244
245
246
247
# File 'lib/suspenders/generators/app_generator.rb', line 244

def copy_miscellaneous_files
  say 'Copying miscellaneous support files'
  build :copy_miscellaneous_files
end

#create_github_repoObject



217
218
219
220
221
222
# File 'lib/suspenders/generators/app_generator.rb', line 217

def create_github_repo
  if !options[:skip_git] && options[:github]
    say 'Creating Github repo'
    build :create_github_repo, options[:github]
  end
end

#create_heroku_appsObject



202
203
204
205
206
207
208
209
210
211
212
213
214
215
# File 'lib/suspenders/generators/app_generator.rb', line 202

def create_heroku_apps
  if options[:heroku]
    say "Creating Heroku apps"
    build :create_heroku_apps, options[:heroku_flags]
    build :provide_review_apps_setup_script
    build :set_heroku_serve_static_files
    build :set_heroku_remotes
    build :set_heroku_rails_secrets
    build :create_heroku_pipelines_config_file
    build :create_heroku_pipeline
    build :provide_deploy_script
    build :configure_automatic_deployment
  end
end

#create_suspenders_viewsObject



158
159
160
161
162
163
164
165
166
# File 'lib/suspenders/generators/app_generator.rb', line 158

def create_suspenders_views
  say 'Creating suspenders views'
  build :create_partials_directory
  build :create_shared_flashes
  build :create_shared_javascripts
  build :create_application_layout
  build :create_application_header
  build :create_application_footer
end

#customize_error_pagesObject



249
250
251
252
# File 'lib/suspenders/generators/app_generator.rb', line 249

def customize_error_pages
  say 'Customizing the 500/404/422 pages'
  build :customize_error_pages
end

#customize_gemfileObject



63
64
65
66
67
68
69
70
71
72
# File 'lib/suspenders/generators/app_generator.rb', line 63

def customize_gemfile
  say 'Setting up Gemfile'
  build :set_ruby_to_version_being_used

  if options[:heroku]
    build :set_up_heroku_specific_gems
  end

  bundle_command 'install'
end

#finish_templateObject



27
28
29
30
# File 'lib/suspenders/generators/app_generator.rb', line 27

def finish_template
  invoke :suspenders_customization
  super
end

#init_gitObject



239
240
241
242
# File 'lib/suspenders/generators/app_generator.rb', line 239

def init_git
  say 'Setting up GIT'
  build :init_git
end

#outroObject



266
267
268
# File 'lib/suspenders/generators/app_generator.rb', line 266

def outro
  say 'Congratulations! You just pulled our suspenders.'
end

#remove_config_comment_linesObject



254
255
256
# File 'lib/suspenders/generators/app_generator.rb', line 254

def remove_config_comment_lines
  build :remove_config_comment_lines
end

#remove_routes_comment_linesObject



258
259
260
# File 'lib/suspenders/generators/app_generator.rb', line 258

def remove_routes_comment_lines
  build :remove_routes_comment_lines
end

#setup_active_adminObject



95
96
97
98
# File 'lib/suspenders/generators/app_generator.rb', line 95

def setup_active_admin
  say 'Setting up Active Admin'
  build :configure_active_admin
end

#setup_bundler_auditObject



234
235
236
237
# File 'lib/suspenders/generators/app_generator.rb', line 234

def setup_bundler_audit
  say "Setting up bundler-audit"
  build :setup_bundler_audit
end

#setup_colors_stylesheetObject



184
185
186
187
# File 'lib/suspenders/generators/app_generator.rb', line 184

def setup_colors_stylesheet
  say 'Set up colors stylesheet'
  build :setup_colors_stylesheet
end

#setup_databaseObject



100
101
102
103
104
105
106
107
108
# File 'lib/suspenders/generators/app_generator.rb', line 100

def setup_database
  say 'Setting up database'

  if 'postgresql' == options[:database]
    build :use_postgres_config_template
  end

  build :create_database
end

#setup_default_directoriesObject



229
230
231
232
# File 'lib/suspenders/generators/app_generator.rb', line 229

def setup_default_directories
  say 'Setting up Default Directories'
  build :setup_default_directories
end

#setup_development_environmentObject



110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/suspenders/generators/app_generator.rb', line 110

def setup_development_environment
  say 'Setting up the development environment'
  build :raise_on_missing_assets_in_test
  build :raise_on_delivery_errors
  build :set_test_delivery_method
  build :add_bullet_gem_configuration
  build :raise_on_unpermitted_parameters
  build :provide_setup_script
  build :provide_dev_prime_task
  build :configure_generators
  build :configure_i18n_for_missing_translations
  build :configure_quiet_assets
end

#setup_deviseObject



79
80
81
82
# File 'lib/suspenders/generators/app_generator.rb', line 79

def setup_devise
  say 'Setting up Devise'
  build :configure_devise
end

#setup_dotfilesObject



224
225
226
227
# File 'lib/suspenders/generators/app_generator.rb', line 224

def setup_dotfiles
  say 'Setting up Dotfiles'
  build :copy_dotfiles
end

#setup_flash_messagesObject



89
90
91
92
93
# File 'lib/suspenders/generators/app_generator.rb', line 89

def setup_flash_messages
  say 'Setting up Flash Messages'
  build :copy_flash_javascript_file
  build :replace_flash_javascript_file
end

#setup_flash_stylesheetObject



189
190
191
192
# File 'lib/suspenders/generators/app_generator.rb', line 189

def setup_flash_stylesheet
  say 'Set up flash stylesheet'
  build :setup_flash_stylesheet
end

#setup_gitObject



194
195
196
197
198
199
200
# File 'lib/suspenders/generators/app_generator.rb', line 194

def setup_git
  if !options[:skip_git]
    say "Initializing git"
    invoke :setup_default_directories
    invoke :init_git
  end
end

#setup_initjsObject



84
85
86
87
# File 'lib/suspenders/generators/app_generator.rb', line 84

def setup_initjs
  say 'Setting up InitJS'
  build :configure_initjs
end

#setup_production_environmentObject



141
142
143
144
145
146
# File 'lib/suspenders/generators/app_generator.rb', line 141

def setup_production_environment
  say 'Setting up the production environment'
  build :configure_smtp
  build :enable_rack_deflater
  build :setup_asset_host
end

#setup_secret_tokenObject



153
154
155
156
# File 'lib/suspenders/generators/app_generator.rb', line 153

def setup_secret_token
  say 'Moving secret token out of version control'
  build :setup_secret_token
end

#setup_simple_formObject



74
75
76
77
# File 'lib/suspenders/generators/app_generator.rb', line 74

def setup_simple_form
  say 'Setting up Simple Form'
  build :configure_simple_form
end

#setup_staging_environmentObject



148
149
150
151
# File 'lib/suspenders/generators/app_generator.rb', line 148

def setup_staging_environment
  say 'Setting up the staging environment'
  build :setup_staging_environment
end

#setup_stylesheetsObject



179
180
181
182
# File 'lib/suspenders/generators/app_generator.rb', line 179

def setup_stylesheets
  say 'Set up stylesheets'
  build :setup_stylesheets
end

#setup_test_environmentObject



124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/suspenders/generators/app_generator.rb', line 124

def setup_test_environment
  say 'Setting up the test environment'
  build :set_up_factory_girl_for_rspec
  build :generate_factories_file
  build :set_up_hound
  build :generate_rspec
  build :configure_rspec
  build :configure_background_jobs_for_rspec
  build :enable_database_cleaner
  build :provide_shoulda_matchers_config
  build :configure_spec_support_features
  build :configure_ci
  build :configure_i18n_for_test_environment
  build :configure_action_mailer_in_specs
  build :configure_capybara_webkit
end

#suspenders_customizationObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/suspenders/generators/app_generator.rb', line 32

def suspenders_customization
  invoke :customize_gemfile
  invoke :setup_simple_form
  invoke :setup_database
  invoke :setup_devise
  invoke :setup_stylesheets
  invoke :setup_colors_stylesheet
  invoke :setup_flash_stylesheet
  invoke :setup_initjs
  invoke :setup_flash_messages
  invoke :setup_development_environment
  invoke :setup_test_environment
  invoke :setup_production_environment
  invoke :setup_staging_environment
  invoke :setup_secret_token
  invoke :create_suspenders_views
  invoke :configure_app
  invoke :copy_miscellaneous_files
  invoke :customize_error_pages
  invoke :remove_config_comment_lines
  invoke :remove_routes_comment_lines
  invoke :setup_dotfiles
  invoke :setup_git
  invoke :setup_bundler_audit
  invoke :setup_active_admin
  invoke :uncomment_devise_secret_token
  invoke :create_heroku_apps
  invoke :create_github_repo
  invoke :outro
end

#uncomment_devise_secret_tokenObject



262
263
264
# File 'lib/suspenders/generators/app_generator.rb', line 262

def uncomment_devise_secret_token
  build :uncomment_devise_secret_token
end