Class: DashCreator::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/dash_creator/install/install_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

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_routesObject



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_creatorObject



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_creatorObject



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_viewsObject



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_fileObject



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_migrationsObject



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