Class: Logidze::Generators::ModelGenerator

Inherits:
ActiveRecord::Generators::Base
  • Object
show all
Includes:
FxHelper, InjectSql
Defined in:
lib/generators/logidze/model/model_generator.rb

Overview

:nodoc:

Instance Method Summary collapse

Methods included from FxHelper

#fx?, included

Methods included from InjectSql

#inject_sql

Instance Method Details

#generate_fx_triggerObject



54
55
56
57
58
59
60
# File 'lib/generators/logidze/model/model_generator.rb', line 54

def generate_fx_trigger
  return unless fx?

  template_name = after_trigger? ? "logidze_after.sql" : "logidze.sql"

  template template_name, "db/triggers/logidze_on_#{table_name}_v#{next_version.to_s.rjust(2, "0")}.sql"
end

#generate_migrationObject



46
47
48
49
50
51
52
# File 'lib/generators/logidze/model/model_generator.rb', line 46

def generate_migration
  if options[:except] && options[:only]
    warn "Use only one: --only or --except"
    exit(1)
  end
  migration_template "migration.rb.erb", "db/migrate/#{migration_name}.rb"
end

#inject_logidze_to_modelObject



62
63
64
65
66
67
68
69
70
71
# File 'lib/generators/logidze/model/model_generator.rb', line 62

def inject_logidze_to_model
  return if update?

  indents = "  " * (class_name.scan("::").count + 1)
  macros_name = detached? ? "has_logidze detached: true\n" : "has_logidze\n"

  if File.readlines("#{destination_root}/#{model_file_path}").grep(/has_logidze/).empty?
    inject_into_class(model_file_path, class_name.demodulize, indents + macros_name)
  end
end