Class: Athar::Generators::InstallGenerator

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

Class Method Summary collapse

Instance Method Summary collapse

Methods included from FxHelper

#athar_foreign_key_type, #athar_primary_key_type, #ensure_raw_sql_supported!, #fx?, included, #indent_sql, #primary_key_setting, #schema_format

Class Method Details

.next_migration_number(dir) ⇒ Object



111
112
113
# File 'lib/generators/athar/install/install_generator.rb', line 111

def self.next_migration_number(dir)
  ::ActiveRecord::Generators::Base.next_migration_number(dir)
end

Instance Method Details

#generate_migrationObject



37
38
39
40
# File 'lib/generators/athar/install/install_generator.rb', line 37

def generate_migration
  template = fx? ? "install_migration_fx.rb.erb" : "install_migration.rb.erb"
  migration_template template, "db/migrate/#{migration_filename}.rb"
end

#validate_options!Object



21
22
23
# File 'lib/generators/athar/install/install_generator.rb', line 21

def validate_options!
  ensure_raw_sql_supported! unless fx?
end

#write_function_filesObject



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/generators/athar/install/install_generator.rb', line 25

def write_function_files
  return unless fx?

  FileUtils.mkdir_p(functions_destination)
  function_definitions.each do |function_definition|
    path = File.join(functions_destination, "#{function_definition[:versioned_basename]}.sql")
    next if File.exist?(path) && File.read(path) == function_definition[:body]

    File.write(path, function_definition[:body])
  end
end