Class: DispatchPolicy::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- DispatchPolicy::Generators::InstallGenerator
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/generators/dispatch_policy/install/install_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #copy_migration ⇒ Object
- #create_initializer ⇒ Object
- #create_tick_loop_job ⇒ Object
- #show_readme ⇒ Object
Class Method Details
.next_migration_number(_path) ⇒ Object
14 15 16 |
# File 'lib/generators/dispatch_policy/install/install_generator.rb', line 14 def self.next_migration_number(_path) Time.now.utc.strftime("%Y%m%d%H%M%S") end |
Instance Method Details
#copy_migration ⇒ Object
18 19 20 21 |
# File 'lib/generators/dispatch_policy/install/install_generator.rb', line 18 def copy_migration migration_template "create_dispatch_policy_tables.rb.tt", "db/migrate/create_dispatch_policy_tables.rb" end |
#create_initializer ⇒ Object
23 24 25 |
# File 'lib/generators/dispatch_policy/install/install_generator.rb', line 23 def create_initializer template "initializer.rb.tt", "config/initializers/dispatch_policy.rb" end |
#create_tick_loop_job ⇒ Object
27 28 29 |
# File 'lib/generators/dispatch_policy/install/install_generator.rb', line 27 def create_tick_loop_job template "dispatch_tick_loop_job.rb.tt", "app/jobs/dispatch_tick_loop_job.rb" end |
#show_readme ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/generators/dispatch_policy/install/install_generator.rb', line 31 def show_readme readme_text = <<~MSG dispatch_policy installed. Next steps: 1) bin/rails db:migrate 2) Mount the engine in config/routes.rb: mount DispatchPolicy::Engine, at: "/dispatch_policy" 3) Schedule DispatchTickLoopJob (cron / good_job recurring / solid_queue recurring) and start it once: DispatchTickLoopJob.perform_later 4) Declare a policy in any ActiveJob: dispatch_policy :name do context ->(args) { { ... } } partition_by ->(c) { c[:key] } gate :throttle, rate: 10, per: 60 end MSG say readme_text, :green end |