Class: BotVerification::Generators::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#create_initializerObject



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

def create_initializer
  return if options[:skip_initializer]

  template "initializer.rb.erb", "config/initializers/bot_verification.rb"
end

#create_jobObject



50
51
52
# File 'lib/generators/bot_verification/install_generator.rb', line 50

def create_job
  template "refresh_job.rb.erb", "app/jobs/refresh_bot_ip_ranges_job.rb"
end

#create_migrationObject



27
28
29
30
31
32
33
34
35
36
# File 'lib/generators/bot_verification/install_generator.rb', line 27

def create_migration
  return if options[:skip_migration]

  if table_exists?
    say "Table '#{table_name}' already exists. Skipping migration.", :yellow
    return
  end

  migration_template "migration.rb.erb", "db/migrate/create_#{table_name}.rb"
end

#create_modelObject



44
45
46
47
48
# File 'lib/generators/bot_verification/install_generator.rb', line 44

def create_model
  return if options[:skip_model]

  template "model.rb.erb", "app/models/bot_ip_range.rb"
end

#show_post_install_messageObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/generators/bot_verification/install_generator.rb', line 54

def show_post_install_message
  say ""
  say "BotVerification installed successfully!", :green
  say ""
  say "Next steps:", :yellow
  say "  1. Run migrations: rails db:migrate"
  say "  2. Fetch initial IP ranges: rails bot_verification:refresh"
  say "  3. Schedule daily refresh (add to Sidekiq-Cron or cron):"
  say "     RefreshBotIpRangesJob.perform_later"
  say ""
  say "Usage in controllers:"
  say "  include BotVerification::ControllerConcern"
  say "  "
  say "  if verified_good_bot?"
  say "    # Request is from verified bot"
  say "  end"
  say ""
end