Class: RailsOnboarding::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/rails_onboarding/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/rails_onboarding/install_generator.rb', line 11

def self.next_migration_number(path)
  @prev_migration_nr = if @prev_migration_nr
    @prev_migration_nr + 1
  else
    Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
  end
  @prev_migration_nr.to_s
end

Instance Method Details

#add_routeObject



67
68
69
# File 'lib/generators/rails_onboarding/install_generator.rb', line 67

def add_route
  route 'mount RailsOnboarding::Engine => "/onboarding"'
end

#copy_analytics_migrationObject



38
39
40
41
# File 'lib/generators/rails_onboarding/install_generator.rb', line 38

def copy_analytics_migration
  migration_template "add_analytics_to_rails_onboarding.rb",
                     "db/migrate/add_analytics_to_rails_onboarding.rb"
end

#copy_flows_migrationObject



43
44
45
46
# File 'lib/generators/rails_onboarding/install_generator.rb', line 43

def copy_flows_migration
  migration_template "create_rails_onboarding_flows.rb",
                     "db/migrate/create_rails_onboarding_flows.rb"
end

#copy_initializerObject



63
64
65
# File 'lib/generators/rails_onboarding/install_generator.rb', line 63

def copy_initializer
  template "rails_onboarding.rb", "config/initializers/rails_onboarding.rb"
end

#copy_migrationObject



33
34
35
36
# File 'lib/generators/rails_onboarding/install_generator.rb', line 33

def copy_migration
  migration_template "add_onboarding_to_users.rb",
                     "db/migrate/add_onboarding_to_users.rb"
end

#copy_milestone_tracking_migrationObject



48
49
50
51
# File 'lib/generators/rails_onboarding/install_generator.rb', line 48

def copy_milestone_tracking_migration
  migration_template "add_milestone_tracking_to_users.rb",
                     "db/migrate/add_milestone_tracking_to_users.rb"
end

#copy_onboarding_indexes_migrationObject



53
54
55
56
# File 'lib/generators/rails_onboarding/install_generator.rb', line 53

def copy_onboarding_indexes_migration
  migration_template "add_onboarding_indexes.rb",
                     "db/migrate/add_onboarding_indexes.rb"
end

#copy_robustness_fields_migrationObject



58
59
60
61
# File 'lib/generators/rails_onboarding/install_generator.rb', line 58

def copy_robustness_fields_migration
  migration_template "add_robustness_fields_to_users.rb.tt",
                     "db/migrate/add_robustness_fields_to_users.rb"
end

#copy_stylesheetsObject



71
72
73
74
# File 'lib/generators/rails_onboarding/install_generator.rb', line 71

def copy_stylesheets
  copy_file "onboarding.css",
            "app/assets/stylesheets/rails_onboarding_custom.css"
end

#display_readmeObject



76
77
78
# File 'lib/generators/rails_onboarding/install_generator.rb', line 76

def display_readme
  readme "README" if behavior == :invoke
end

#validate_environmentObject



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/generators/rails_onboarding/install_generator.rb', line 20

def validate_environment
  # Validate that we're in a Rails app
  unless defined?(Rails)
    raise "This generator must be run within a Rails application"
  end

  # Validate template paths exist
  validate_template_paths!

  # Validate User model exists
  validate_user_model!
end