Class: Bluebase::AppGenerator

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

Instance Method Summary collapse

Instance Method Details

#bluebase_customizationObject



28
29
30
31
32
33
34
35
36
37
# File 'lib/bluebase/generators/app_generator.rb', line 28

def bluebase_customization
  invoke :customize_root_files
  invoke :customize_app_files
  invoke :customize_bin_files
  invoke :customize_config_files
  invoke :customize_spec_files
  invoke :setup_git_and_github
  invoke :setup_heroku_apps
  invoke :outro
end

#customize_app_filesObject



50
51
52
53
54
55
# File 'lib/bluebase/generators/app_generator.rb', line 50

def customize_app_files
  build :add_vendor_dirs
  build :replace_application_css_with_scss
  build :add_application_folder_and_files_to_views
  build :replace_application_erb_with_slim
end

#customize_bin_filesObject



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

def customize_bin_files
  build :add_setup_to_bin
end

#customize_config_filesObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/bluebase/generators/app_generator.rb', line 61

def customize_config_files
  build :configure_application_environment
  build :configure_development_environment
  build :configure_test_environment
  build :configure_production_environment
  build :add_staging_environment
  build :add_devise_config
  build :add_figaro_config
  build :replace_en_yml
  build :add_application_yml
  build :add_database_yml if options[:database] == 'postgresql'
  build :add_travis_database_yml
  build :add_i18n_tasks_yml
  build :replace_secrets_yml
  build :add_smtp_settings
  build :remove_routes_comment_lines
end

#customize_root_filesObject



39
40
41
42
43
44
45
46
47
48
# File 'lib/bluebase/generators/app_generator.rb', line 39

def customize_root_files
  build :replace_gemfile
  build :add_envrc
  build :replace_gitignore
  build :add_rubocop_and_hound_config
  build :add_rvm_config
  build :add_travis_config
  build :add_guardfile
  build :add_dot_rspec
end

#customize_spec_filesObject



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

def customize_spec_files
  build :add_spec_dirs
  build :configure_rspec
  build :configure_factorygirl
  build :configure_actionmailer
  build :configure_i18n
  build :configure_database_cleaner
end

#finish_templateObject

Invoked after Rails generates app



23
24
25
26
# File 'lib/bluebase/generators/app_generator.rb', line 23

def finish_template
  invoke :bluebase_customization
  super
end

#outroObject



110
111
112
113
114
115
116
117
# File 'lib/bluebase/generators/app_generator.rb', line 110

def outro
  say "Your bluebase is complete!"
  say "Remember to set:"
  say "- Your database settings in config/database.yml"
  say "- Your env variables in config/application.yml"
  say "- Your Code Climate token in .travis.yml"
  say "Afterward, you can now run bin/setup in your project directory to set up the app."
end

#run_bundleObject



119
120
121
# File 'lib/bluebase/generators/app_generator.rb', line 119

def run_bundle
  # We'll run it ourselves
end

#setup_git_and_githubObject



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

def setup_git_and_github
  if !options[:skip_git]
    say "Initializing git"
    build :git_init
    if options[:github]
      say "Creating github repo"
      build :create_github_repo, options[:github]
    end
  end
end

#setup_heroku_appsObject



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

def setup_heroku_apps
  if options[:heroku]
    say "Creating heroku apps"
    build :create_heroku_apps
    build :set_heroku_remotes
    build :set_heroku_env_variables
    build :add_heroku_addons
    build :set_memory_management_variable
  end
end