Class: EasyBlogGenerator

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

Instance Method Summary collapse

Instance Method Details

#add_routesObject



19
20
21
22
# File 'lib/generators/easy_blog_generator.rb', line 19

def add_routes
  route "resources :blog_posts, only: [:index, :show], path: 'blog'"
  route "resources :blog_posts, only: [:index, :new, :create, :edit, :update]", namespace: :admin
end

#copy_controllersObject



30
31
32
33
# File 'lib/generators/easy_blog_generator.rb', line 30

def copy_controllers
  copy_file "controllers/blog_posts_controller.rb", "app/controllers/blog_posts_controller.rb"
  copy_file "controllers/admin/blog_posts_controller.rb", "app/controllers/admin/blog_posts_controller.rb"
end

#copy_viewsObject



35
36
37
38
# File 'lib/generators/easy_blog_generator.rb', line 35

def copy_views
  directory "views/blog_posts", "app/views/blog_posts"
  directory "views/admin/blog_posts", "app/views/admin/blog_posts"
end

#create_blog_modelObject



15
16
17
# File 'lib/generators/easy_blog_generator.rb', line 15

def create_blog_model
  generate "model", "blog_post", "title", "body:rich_text", "banner_image:attachment", "meta_description:text", "tags:text", "author_name", "active:boolean"
end

#create_nested_foldersObject



24
25
26
27
28
# File 'lib/generators/easy_blog_generator.rb', line 24

def create_nested_folders
  # Create the admin nested folder if it doesnt already exist
  FileUtils.mkdir_p("app/controllers/admin")
  FileUtils.mkdir_p("app/views/admin")
end

#hello_worldObject

TODO: Add code to generate blog



6
7
8
# File 'lib/generators/easy_blog_generator.rb', line 6

def hello_world
  puts "Hello world! Generator is working!"
end

#migrate_dbObject



40
41
42
# File 'lib/generators/easy_blog_generator.rb', line 40

def migrate_db
  rails_command "db:migrate"
end

#setup_prerequisitesObject



10
11
12
13
# File 'lib/generators/easy_blog_generator.rb', line 10

def setup_prerequisites
  rails_command "active_storage:install"
  generate "action_text:install"
end