Class: Occams::Generators::CmsGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration, Thor::Actions
Defined in:
lib/generators/occams/cms/cms_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



62
63
64
# File 'lib/generators/occams/cms/cms_generator.rb', line 62

def self.next_migration_number(dirname)
  ActiveRecord::Generators::Base.next_migration_number(dirname)
end

Instance Method Details

#generate_assetsObject



51
52
53
54
55
56
# File 'lib/generators/occams/cms/cms_generator.rb', line 51

def generate_assets
  copy_file 'app/assets/javascripts/occams/admin/cms/custom.js',
            'app/assets/javascripts/occams/admin/cms/custom.js'
  copy_file 'app/assets/stylesheets/occams/admin/cms/custom.sass',
            'app/assets/stylesheets/occams/admin/cms/custom.sass'
end

#generate_cms_seedsObject



47
48
49
# File 'lib/generators/occams/cms/cms_generator.rb', line 47

def generate_cms_seeds
  directory 'db/cms_seeds', 'db/cms_seeds'
end

#generate_initializerObject



25
26
27
28
# File 'lib/generators/occams/cms/cms_generator.rb', line 25

def generate_initializer
  copy_file 'config/initializers/occams.rb',
            'config/initializers/occams.rb'
end

#generate_migrationObject



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/generators/occams/cms/cms_generator.rb', line 13

def generate_migration
  destination   = File.expand_path('db/migrate/01_create_cms.rb', destination_root)
  migration_dir = File.dirname(destination)
  destination   = self.class.migration_exists?(migration_dir, 'create_cms')

  if destination
    puts "\e[0m\e[31mFound existing cms_create.rb migration. Remove it if you want to regenerate.\e[0m"
  else
    migration_template 'db/migrate/01_create_cms.rb', 'db/migrate/create_cms.rb'
  end
end

#generate_railties_orderObject



30
31
32
33
34
35
36
# File 'lib/generators/occams/cms/cms_generator.rb', line 30

def generate_railties_order
  application <<~RUBY
    # Ensuring that ActiveStorage routes are loaded before Occams's globbing
    # route. Without this file serving routes are inaccessible.
    config.railties_order = [ActiveStorage::Engine, :main_app, :all]
  RUBY
end

#generate_routingObject



38
39
40
41
42
43
44
45
# File 'lib/generators/occams/cms/cms_generator.rb', line 38

def generate_routing
  route_string = <<~RUBY
    occams_route :cms_admin, path: "/admin"
    # Ensure that this route is defined last
    occams_route :cms, path: "/"
  RUBY
  route route_string
end

#show_readmeObject



58
59
60
# File 'lib/generators/occams/cms/cms_generator.rb', line 58

def show_readme
  readme 'lib/generators/occams/cms/README'
end