Class: ActionTrace::Generators::InstallGenerator

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



16
17
18
19
# File 'lib/generators/action_trace/install/install_generator.rb', line 16

def self.next_migration_number(dirname)
  next_migration_number = current_migration_number(dirname) + 1
  ActiveRecord::Migration.next_migration_number(next_migration_number)
end

.source_pathsObject



12
13
14
# File 'lib/generators/action_trace/install/install_generator.rb', line 12

def self.source_paths
  [File.expand_path('templates', __dir__), File.expand_path(__dir__)]
end

Instance Method Details

#create_add_version_id_migrationObject



47
48
49
50
51
52
# File 'lib/generators/action_trace/install/install_generator.rb', line 47

def create_add_version_id_migration
  migration_template(
    'migrations/add_version_id_to_activities.rb.tt',
    'db/migrate/add_version_id_to_activities.rb'
  )
end

#create_initializerObject



54
55
56
# File 'lib/generators/action_trace/install/install_generator.rb', line 54

def create_initializer
  template 'initializers/action_trace.rb.tt', 'config/initializers/action_trace.rb'
end

#create_javascript_tracking_fileObject



72
73
74
75
76
77
78
# File 'lib/generators/action_trace/install/install_generator.rb', line 72

def create_javascript_tracking_file
  return if options[:skip_ahoy]
  return unless File.exist?('app/javascript')

  template 'action_trace.js.tt', 'app/javascript/action_trace.js'
  append_to_file 'app/javascript/application.js', %(import "./action_trace"\n) if File.exist?('app/javascript/application.js')
end

#import_ahoy_in_javascriptObject



65
66
67
68
69
70
# File 'lib/generators/action_trace/install/install_generator.rb', line 65

def import_ahoy_in_javascript
  return if options[:skip_ahoy]
  return unless File.exist?('app/javascript/application.js')

  append_to_file 'app/javascript/application.js', %(import "ahoy"\n)
end

#pin_ahoy_for_importmapObject



58
59
60
61
62
63
# File 'lib/generators/action_trace/install/install_generator.rb', line 58

def pin_ahoy_for_importmap
  return if options[:skip_ahoy]
  return unless File.exist?('config/importmap.rb')

  append_to_file 'config/importmap.rb', %(pin "ahoy", to: "ahoy.js"\n)
end

#run_ahoy_installObject



31
32
33
34
35
36
37
# File 'lib/generators/action_trace/install/install_generator.rb', line 31

def run_ahoy_install
  unless options[:skip_ahoy]
    generate 'ahoy:install'
    patch_ahoy_initializer
  end
  inject_ahoy_filter_by_company
end

#run_paper_trail_installObject



39
40
41
# File 'lib/generators/action_trace/install/install_generator.rb', line 39

def run_paper_trail_install
  generate 'paper_trail:install' unless options[:skip_paper_trail]
end

#run_public_activity_migrationObject



43
44
45
# File 'lib/generators/action_trace/install/install_generator.rb', line 43

def run_public_activity_migration
  generate 'public_activity:migration' unless options[:skip_public_activity]
end

#show_post_install_messageObject



102
103
104
# File 'lib/generators/action_trace/install/install_generator.rb', line 102

def show_post_install_message
  readme 'POST_INSTALL' if behavior == :invoke
end