Class: DashCreator::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- DashCreator::Generators::InstallGenerator
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/generators/dash_creator/install/install_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add_dash_creator_routes ⇒ Object
- #add_default_acts_as_dash_creator ⇒ Object
- #add_default_user_for_dash_creator ⇒ Object
- #add_template_dashboard_views ⇒ Object
- #copy_initializer_file ⇒ Object
- #copy_migrations ⇒ Object
Class Method Details
.next_migration_number(path) ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'lib/generators/dash_creator/install/install_generator.rb', line 11 def self.next_migration_number(path) unless @prev_migration_nr @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i else @prev_migration_nr += 1 end @prev_migration_nr.to_s end |
Instance Method Details
#add_dash_creator_routes ⇒ Object
51 52 53 54 55 56 |
# File 'lib/generators/dash_creator/install/install_generator.rb', line 51 def add_dash_creator_routes line = 'Rails.application.routes.draw do' gsub_file 'config/routes.rb', /(#{Regexp.escape(line)})/mi do |match| "#{match}\n mount DashCreator::Engine, at: '/dash_creator'\n" end end |
#add_default_acts_as_dash_creator ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/generators/dash_creator/install/install_generator.rb', line 39 def add_default_acts_as_dash_creator line = 'class User < ApplicationRecord' gsub_file 'app/models/user.rb', /(#{Regexp.escape(line)})/mi do |match| "include DashCreator::ActsAsDashCreator\n\n#{match}\n acts_as_dash_creator\n" end line = 'class User < ActiveRecord::Base' gsub_file 'app/models/user.rb', /(#{Regexp.escape(line)})/mi do |match| "include DashCreator::ActsAsDashCreator\n\n#{match}\n acts_as_dash_creator\n" end end |
#add_default_user_for_dash_creator ⇒ Object
32 33 34 35 36 37 |
# File 'lib/generators/dash_creator/install/install_generator.rb', line 32 def add_default_user_for_dash_creator line = 'class ApplicationController < ActionController::Base' gsub_file 'app/controllers/application_controller.rb', /(#{Regexp.escape(line)})/mi do |match| "#{match}\n def user_for_dash_creator\n current_user\n end\n" end end |
#add_template_dashboard_views ⇒ Object
58 59 60 61 62 63 64 65 66 67 |
# File 'lib/generators/dash_creator/install/install_generator.rb', line 58 def add_template_dashboard_views path = File.dirname(__FILE__) + '/templates/' user_views_path = 'app/views/user/' dashboard_objects_path = 'app/views/dash_creator/dashboard_object/' create_file user_views_path + 'dashboard.html.erb', File.read(path + 'dashboard.html.erb') create_file user_views_path + '_section_card.html.erb', File.read(path + '_section_card.html.erb') create_file dashboard_objects_path + '_chart.html.erb', File.read(path + '_chart.html.erb') create_file dashboard_objects_path + '_stat.html.erb', File.read(path + '_stat.html.erb') create_file dashboard_objects_path + '_table.html.erb', File.read(path + '_table.html.erb') end |
#copy_initializer_file ⇒ Object
28 29 30 |
# File 'lib/generators/dash_creator/install/install_generator.rb', line 28 def copy_initializer_file template 'initializer.rb', 'config/initializers/dash_creator.rb' end |
#copy_migrations ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/generators/dash_creator/install/install_generator.rb', line 20 def copy_migrations migration_template 'create_dash_creator_filters.rb', 'db/migrate/create_dash_creator_filters.rb' migration_template 'create_dash_creator_charts.rb', 'db/migrate/create_dash_creator_charts.rb' migration_template 'create_dash_creator_dashboards.rb', 'db/migrate/create_dash_creator_dashboards.rb' migration_template 'create_dash_creator_dashboard_objects.rb', 'db/migrate/create_dash_creator_dashboard_objects.rb' migration_template 'add_indexes_to_dash_creator_tables.rb', 'db/migrate/add_indexes_to_dash_creator_tables.rb' end |