Class: Workarea::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/workarea/install/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_requiresObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/generators/workarea/install/install_generator.rb', line 6

def add_requires
  require_workarea = "\n    # Workarea must be required before other gems to ensure control over Rails.env\n    # for running tests\n    require 'workarea/core'\n    require 'workarea/admin'\n    require 'workarea/storefront'\n\n  CODE\n\n  inject_into_file(\n    'config/application.rb',\n    require_workarea,\n    before: 'Bundler.require(*Rails.groups)'\n  )\nend\n"

#add_seedsObject



55
56
57
58
59
60
# File 'lib/generators/workarea/install/install_generator.rb', line 55

def add_seeds
  create_file 'db/seeds.rb', "    require 'workarea/seeds'\n    Workarea::Seeds.run\n  CODE\nend\n"

#configure_pumaObject



40
41
42
43
44
45
46
# File 'lib/generators/workarea/install/install_generator.rb', line 40

def configure_puma
  remove_file 'config/puma.rb'
  create_file 'config/puma.rb', "    require 'workarea/configuration/puma'\n    Workarea::Configuration::Puma.load(self)\n  TEXT\nend\n"

#configure_sidekiqObject



35
36
37
38
# File 'lib/generators/workarea/install/install_generator.rb', line 35

def configure_sidekiq
  environment "require 'sidekiq/testing/inline'\n", env: 'development'
  environment '# Run Sidekiq tasks synchronously so that Sidekiq is not required in Development', env: 'development'
end

#create_initializerObject



31
32
33
# File 'lib/generators/workarea/install/install_generator.rb', line 31

def create_initializer
  template('initializer.rb.erb', 'config/initializers/workarea.rb')
end

#mount_routesObject



24
25
26
27
28
29
# File 'lib/generators/workarea/install/install_generator.rb', line 24

def mount_routes
  route "mount Workarea::Storefront::Engine => '/', as: 'storefront'"
  route "mount Workarea::Admin::Engine => '/admin', as: 'admin'"
  route "mount Workarea::Api::Engine => '/api', as: 'api'" if Workarea::Plugin.installed?(:api)
  route "mount Workarea::Core::Engine => '/'"
end

#remove_faviconObject



62
63
64
# File 'lib/generators/workarea/install/install_generator.rb', line 62

def remove_favicon
  remove_file 'public/favicon.ico'
end

#update_test_helperObject



48
49
50
51
52
53
# File 'lib/generators/workarea/install/install_generator.rb', line 48

def update_test_helper
  inject_into_file(
    'test/test_helper.rb',
    "\nrequire 'workarea/test_help'", after: "require 'rails/test_help'"
  )
end