Class: Comfy::Generators::CmsGenerator

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



64
65
66
# File 'lib/generators/comfy/cms/cms_generator.rb', line 64

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

Instance Method Details

#generate_assetsObject



53
54
55
56
57
58
# File 'lib/generators/comfy/cms/cms_generator.rb', line 53

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

#generate_cms_seedsObject



49
50
51
# File 'lib/generators/comfy/cms/cms_generator.rb', line 49

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

#generate_initializerObject



27
28
29
30
# File 'lib/generators/comfy/cms/cms_generator.rb', line 27

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

#generate_migrationObject



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

def generate_migration
  %w[01_create_cms 02_add_markdown_to_snippets].each do |migration|
    destination   = File.expand_path("db/migrate/#{migration}.rb", destination_root)
    migration_dir = File.dirname(destination)
    destination   = self.class.migration_exists?(migration_dir, migration)

    if destination
      puts "\e[0m\e[31mFound existing #{migration}.rb migration. Remove it if you want to regenerate.\e[0m"
    else
      migration_template "db/migrate/#{migration}.rb", "db/migrate/#{migration[3..]}.rb"
    end
  end
end

#generate_railties_orderObject



32
33
34
35
36
37
38
# File 'lib/generators/comfy/cms/cms_generator.rb', line 32

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

#generate_routingObject



40
41
42
43
44
45
46
47
# File 'lib/generators/comfy/cms/cms_generator.rb', line 40

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

#show_readmeObject



60
61
62
# File 'lib/generators/comfy/cms/cms_generator.rb', line 60

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