Class: Suspenders::Generator

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

Instance Method Summary collapse

Instance Method Details

#add_jquery_uiObject



72
73
74
75
# File 'lib/suspenders/generators/app_generator.rb', line 72

def add_jquery_ui
  say "Add jQuery ui to the standard application.js"
  build(:add_jquery_ui)
end

#configure_appObject



93
94
95
96
97
98
99
100
101
102
103
# File 'lib/suspenders/generators/app_generator.rb', line 93

def configure_app
  say "Configuring app"
  build(:configure_rspec)
  build(:configure_action_mailer)
  build(:generate_rspec)
  build(:generate_cucumber)
  build(:install_factory_girl_steps)
  build(:add_email_validator)
  build(:setup_default_rake_task)
  build(:setup_clearance)
end

#copy_miscellaneous_filesObject



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

def copy_miscellaneous_files
  say "Copying miscellaneous support files"
  build(:copy_miscellaneous_files)
end

#create_common_javascriptsObject



67
68
69
70
# File 'lib/suspenders/generators/app_generator.rb', line 67

def create_common_javascripts
  say "Pulling in some common javascripts"
  build(:create_common_javascripts)
end

#create_heroku_appsObject



126
127
128
129
130
131
132
# File 'lib/suspenders/generators/app_generator.rb', line 126

def create_heroku_apps
  if options['heroku']
    say "Creating heroku apps"
    build(:create_heroku_apps)
    build(:document_heroku)
  end
end

#create_suspenders_viewsObject



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

def create_suspenders_views
  say "Creating suspenders views"
  build(:create_views_shared)
  build(:create_shared_flashes)
  build(:create_shared_javascripts)
  build(:create_application_layout)
end

#customize_gemfileObject



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

def customize_gemfile
  build(:include_custom_gems)
  if options[:clearance]
    build(:add_clearance_gem)
  end
  bundle_command('install')
end

#finish_templateObject



19
20
21
22
# File 'lib/suspenders/generators/app_generator.rb', line 19

def finish_template
  invoke :suspenders_customization
  super
end

#init_gitObject



138
139
140
# File 'lib/suspenders/generators/app_generator.rb', line 138

def init_git
  build(:init_git)
end

#outroObject



159
160
161
162
# File 'lib/suspenders/generators/app_generator.rb', line 159

def outro
  say "Congratulations! You just pulled our suspenders."
  say "Remember to run 'rails generate airbrake' with your API key."
end

#remove_files_we_dont_needObject



43
44
45
46
# File 'lib/suspenders/generators/app_generator.rb', line 43

def remove_files_we_dont_need
  build(:remove_public_index)
  build(:remove_public_images_rails)
end

#run_bundleObject



164
165
166
# File 'lib/suspenders/generators/app_generator.rb', line 164

def run_bundle
  # Let's not: We'll bundle manually at the right spot
end

#set_active_record_whitelist_attributesObject



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

def set_active_record_whitelist_attributes
  if using_active_record?
    say "Setting up active_record.whitelist_attributes"
    build(:set_active_record_whitelist_attributes)
  end
end

#setup_clearanceObject



105
106
107
108
109
110
111
112
113
# File 'lib/suspenders/generators/app_generator.rb', line 105

def setup_clearance
  if options[:clearance]
    build(:generate_clearance)
    build(:include_clearance_matchers)
    if using_active_record?
      build(:set_attr_accessibles_on_user)
    end
  end
end

#setup_databaseObject



85
86
87
88
89
90
91
# File 'lib/suspenders/generators/app_generator.rb', line 85

def setup_database
  say "Setting up database"
  if 'postgresql' == options[:database]
    build(:use_postgres_config_template)
  end
  build(:create_database)
end

#setup_development_environmentObject



48
49
50
51
52
# File 'lib/suspenders/generators/app_generator.rb', line 48

def setup_development_environment
  say "Setting up the development environment"
  build(:raise_delivery_errors)
  build(:enable_factory_girl_syntax)
end

#setup_gitObject



120
121
122
123
124
# File 'lib/suspenders/generators/app_generator.rb', line 120

def setup_git
  say "Initializing git and initial commit"
  invoke :setup_gitignore
  invoke :init_git
end

#setup_gitignoreObject



134
135
136
# File 'lib/suspenders/generators/app_generator.rb', line 134

def setup_gitignore
  build(:gitignore_files)
end

#setup_root_routeObject



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

def setup_root_route
  say "Setting up a root route"
  build(:setup_root_route)
end

#setup_staging_environmentObject



54
55
56
57
# File 'lib/suspenders/generators/app_generator.rb', line 54

def setup_staging_environment
  say "Setting up the staging environment"
  build(:setup_staging_environment)
end

#setup_stylesheetsObject



115
116
117
118
# File 'lib/suspenders/generators/app_generator.rb', line 115

def setup_stylesheets
  say "Set up stylesheets"
  build(:setup_stylesheets)
end

#suspenders_customizationObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/suspenders/generators/app_generator.rb', line 24

def suspenders_customization
  invoke :remove_files_we_dont_need
  invoke :setup_development_environment
  invoke :setup_staging_environment
  invoke :create_suspenders_views
  invoke :create_common_javascripts
  invoke :add_jquery_ui
  invoke :customize_gemfile
  invoke :setup_database
  invoke :configure_app
  invoke :setup_stylesheets
  invoke :copy_miscellaneous_files
  invoke :setup_root_route
  invoke :set_active_record_whitelist_attributes
  invoke :setup_git
  invoke :create_heroku_apps
  invoke :outro
end