Sha256: d3e53968e50e2555a0e4182c8085652d1b8f9c85264c4ca2666902e7032c9c6d

Contents?: true

Size: 1.73 KB

Versions: 18

Compression:

Stored size: 1.73 KB

Contents

module Workarea
  class InstallGenerator < Rails::Generators::Base
    source_root File.expand_path('../templates', __FILE__)
    desc File.read(File.expand_path('../USAGE', __FILE__))

    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

    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

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

    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

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

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

    def remove_favicon
      remove_file 'public/favicon.ico'
    end

    private

    def app_name
      Rails.application.class.parent_name.underscore
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
workarea-core-3.5.16 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.15 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.14 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.13 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.12 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.11 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.10 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.9 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.8 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.7 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.6 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.5 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.4 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.3 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.2 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.1 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.0 lib/generators/workarea/install/install_generator.rb
workarea-core-3.5.0.beta.1 lib/generators/workarea/install/install_generator.rb