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 = <<~CODE

    # Workarea must be required before other gems to ensure control over Rails.env
    # for running tests
    require 'workarea/core'
    require 'workarea/admin'
    require 'workarea/storefront'

  CODE

  inject_into_file(
    'config/application.rb',
    require_workarea,
    before: 'Bundler.require(*Rails.groups)'
  )
end

#add_seedsObject



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

def add_seeds
  create_file 'db/seeds.rb', <<~CODE
    require 'workarea/seeds'
    Workarea::Seeds.run
  CODE
end

#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



54
55
56
# File 'lib/generators/workarea/install/install_generator.rb', line 54

def remove_favicon
  remove_file 'public/favicon.ico'
end

#update_test_helperObject



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

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