Class: PgSqlTriggers::Generators::TriggerGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/pg_sql_triggers/trigger_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(_dirname) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/generators/pg_sql_triggers/trigger_generator.rb', line 28

def self.next_migration_number(_dirname)
  existing = if Rails.root.join("db/triggers").exist?
               Rails.root.glob("db/triggers/*.rb")
                    .map { |f| File.basename(f, ".rb").split("_").first.to_i }
                    .reject(&:zero?)
                    .max || 0
             else
               0
             end

  now = Time.now.utc
  base = now.strftime("%Y%m%d%H%M%S").to_i
  base = existing + 1 if existing.positive? && base <= existing
  base
end

Instance Method Details

#create_dsl_fileObject



44
45
46
# File 'lib/generators/pg_sql_triggers/trigger_generator.rb', line 44

def create_dsl_file
  template "trigger_dsl.rb.tt", "app/triggers/#{trigger_name}.rb"
end

#create_migration_fileObject



48
49
50
# File 'lib/generators/pg_sql_triggers/trigger_generator.rb', line 48

def create_migration_file
  template "trigger_migration_full.rb.tt", "db/triggers/#{migration_file_name}.rb"
end