Class: Bluebase_api::AppGenerator

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

Instance Method Summary collapse

Instance Method Details

#bluebase_api_customizationObject



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

def bluebase_api_customization
  invoke :customize_root_files
  invoke :customize_bin_files
  invoke :customize_config_files
  invoke :customize_spec_files
  invoke :customize_app_directory
  invoke :customize_public_directory
  invoke :customize_vendor_directory
  invoke :customize_lib_directory
  invoke :customize_tmp_directory
  invoke :setup_git_and_github
  invoke :setup_heroku_apps
  invoke :outro
end

#customize_app_directoryObject



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

def customize_app_directory
  build :configure_api_directory
  build :configure_v1_directory
  build :add_base_controller
  build :replace_application_controller
  build :add_serializers_directory
  build :remove_app_assets_directory
  build :remove_app_views_directory
end

#customize_bin_filesObject



53
54
55
56
# File 'lib/bluebase_api/generators/app_generator.rb', line 53

def customize_bin_files
  # Rails 4.2.0 comes with a setup script by default
  # build :add_setup_to_bin
end

#customize_config_filesObject



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/bluebase_api/generators/app_generator.rb', line 58

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_i18n_tasks_yml
  build :replace_secrets_yml
  build :add_smtp_settings
  build :replace_routes_rb
end

#customize_lib_directoryObject



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

def customize_lib_directory
  build :remove_lib_assets_directory
end

#customize_public_directoryObject



98
99
100
# File 'lib/bluebase_api/generators/app_generator.rb', line 98

def customize_public_directory
  build :remove_html_files
end

#customize_root_filesObject



43
44
45
46
47
48
49
50
51
# File 'lib/bluebase_api/generators/app_generator.rb', line 43

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_guardfile
  build :add_dot_rspec
end

#customize_spec_filesObject



75
76
77
78
79
80
81
82
# File 'lib/bluebase_api/generators/app_generator.rb', line 75

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

#customize_tmp_directoryObject



106
107
108
# File 'lib/bluebase_api/generators/app_generator.rb', line 106

def customize_tmp_directory
  build :remove_tmp_assets_directory
end

#customize_vendor_directoryObject



102
103
104
# File 'lib/bluebase_api/generators/app_generator.rb', line 102

def customize_vendor_directory
  build :remove_vendor_assets_directories
end

#finish_templateObject

Invoked after Rails generates app



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

def finish_template
  invoke :bluebase_api_customization
  super
end

#outroObject



132
133
134
135
136
137
138
139
# File 'lib/bluebase_api/generators/app_generator.rb', line 132

def outro
  say "Your bluebase_api 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



141
142
143
# File 'lib/bluebase_api/generators/app_generator.rb', line 141

def run_bundle
  # We'll run it ourselves
end

#setup_git_and_githubObject



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

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



121
122
123
124
125
126
127
128
129
130
# File 'lib/bluebase_api/generators/app_generator.rb', line 121

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