Class: Trireme::AppGenerator

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

Instance Method Summary collapse

Instance Method Details

#add_gemsObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/trireme/generators/app_generator.rb', line 41

def add_gems
  say 'Adding gems and installing'

  # Remove sqlite gem from Gemfile (we'll add it back under development group)
  build :remove_sqlite_gem

  # Append 'templates/additional_gems' to Gemfile
  build :add_custom_gems

  # Confirm other gems before adding (e.g., Carrierwave)
  build :add_additional_gems

  bundle_command 'install'
end

#add_home_controllerObject



61
62
63
64
65
# File 'lib/trireme/generators/app_generator.rb', line 61

def add_home_controller
  say 'Creating home controller with index'

  build :generate_home_controller
end

#configure_generatorsObject



34
35
36
37
38
39
# File 'lib/trireme/generators/app_generator.rb', line 34

def configure_generators
  say 'Configuring generators'

  # Add generator configuration to config/application.rb
  build :configure_generators
end

#configure_smtpObject



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

def configure_smtp
  say 'Configuring action mailer for production'

  build :setup_smtp
end

#create_views_and_layoutsObject



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

def create_views_and_layouts
  say 'Creating partials and adding layouts'

  # Create app/views/shared directory
  build :create_shared_views_directory

  # Copy partials to app/views/shared
  build :create_flashes_partial
  build :create_form_errors_partial
  build :create_admin_actions_partial

  # Add title, icon, placeholder helpers
  build :copy_utility_helper

  build :copy_application_layout

  build :copy_bootstrap_scaffold_templates
end

#finish_templateObject



8
9
10
11
# File 'lib/trireme/generators/app_generator.rb', line 8

def finish_template
  invoke :trireme_customization
  super
end

#outroObject



162
163
164
# File 'lib/trireme/generators/app_generator.rb', line 162

def outro
  say "Ready to set sail (and probably catch on fire, sink, and kill everyone on board)! Run 'cap deploy:setup' to finish preparing the server for deployment."
end

#remove_routes_comment_linesObject



56
57
58
59
# File 'lib/trireme/generators/app_generator.rb', line 56

def remove_routes_comment_lines
  # Remove commented lines from config/routes.rb
  # build :remove_routes_comment_lines
end

#setup_consoleObject



80
81
82
83
84
85
# File 'lib/trireme/generators/app_generator.rb', line 80

def setup_console
  say 'Configuring console (config/initializers/jazz_hands.rb)'

  # Add jazz_hands configuration in config/initializers/jazz_hands.rb
  build :setup_console
end

#setup_deploymentObject



144
145
146
147
148
149
150
# File 'lib/trireme/generators/app_generator.rb', line 144

def setup_deployment
  # Get domain and server ip from input
  build :get_server_options

  # Add deploy configuration and recipes
  build :setup_deploy
end

#setup_gemsObject



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/trireme/generators/app_generator.rb', line 99

def setup_gems
  say 'Setting up gems...'
  # Add quiet assets config to development (makes it easy to turn off)
  build :setup_quiet_assets

  # Add mailcatcher configuration for development
  build :setup_mailcatcher

  # Sets sublime text as editor for better_errors
  build :set_sublime_text_as_editor

  # Set up devise in accordance with preferences
  build :setup_devise

  # Setup rspec (rspec:install)
  build :setup_rspec

  # Setup guard by copying Guardfile
  build :setup_guard

  # Add configuration for exception notification if it is specified
  if config.has_key? :exception_notification
    build :setup_exception_notification
  end
end

#setup_gitObject



152
153
154
155
156
157
158
159
160
# File 'lib/trireme/generators/app_generator.rb', line 152

def setup_git
  say 'Setting up .gitignore and git repo'

  # Add gitignore_additions to .gitignore
  build :add_to_gitignore

  # Initialize git repository and create first commit
  build :initialize_git
end

#setup_staging_environmentObject



67
68
69
70
71
72
# File 'lib/trireme/generators/app_generator.rb', line 67

def setup_staging_environment
  say 'Setting up the staging environment'

  # Create config/environments/staging.rb based on production.rb
  build :setup_staging_environment
end

#setup_stylesheetsObject



87
88
89
90
91
92
93
94
95
96
97
# File 'lib/trireme/generators/app_generator.rb', line 87

def setup_stylesheets
  say 'Setting up stylesheets'

  # Add boostrap_and_overrides to app/assets/stylesheets; it contains bootstrap variables and imports bootstrap
  build :add_bootstrap_and_overrides

  # Replaces application.css with application.css.scss that imports compass, bootstrap, font-awesome
  build :replace_application_css

  # build :add_foundation_scaffold_templates
end

#trireme_customizationObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/trireme/generators/app_generator.rb', line 13

def trireme_customization
  if options[:config_file]
    say "Loading yaml configuration from #{options[:config_file]}"
    Trireme::configure_with(options[:config_file])
  end
  invoke :configure_generators
  invoke :add_gems
  invoke :remove_routes_comment_lines
  invoke :add_home_controller
  invoke :setup_staging_environment
  if config[:action_mailer] && config[:action_mailer][:smtp_settings]
    invoke :configure_smtp
  end
  invoke :setup_console
  invoke :setup_stylesheets
  invoke :setup_gems
  invoke :create_views_and_layouts
  invoke :setup_deployment
  invoke :setup_git
end