Module: ActiveGraph::Generators::MigrationHelper

Extended by:
ActiveSupport::Concern
Included in:
MigrationGenerator, ModelGenerator, UpgradeV8Generator
Defined in:
lib/rails/generators/active_graph_generator.rb

Instance Method Summary collapse

Instance Method Details

#base_migration_file_name(file_name, prefix = '') ⇒ Object


14
15
16
# File 'lib/rails/generators/active_graph_generator.rb', line 14

def base_migration_file_name(file_name, prefix = '')
  "#{prefix}#{file_name.parameterize}"
end

#existing_migration(dirname, file_name) ⇒ Object


27
28
29
# File 'lib/rails/generators/active_graph_generator.rb', line 27

def existing_migration(dirname, file_name)
  migration_lookup_at(dirname).grep(/\d+_#{file_name}.rb$/).first
end

#migration_file_name(file_name, prefix = '') ⇒ Object


18
19
20
# File 'lib/rails/generators/active_graph_generator.rb', line 18

def migration_file_name(file_name, prefix = '')
  "#{Time.now.utc.strftime('%Y%m%d%H%M%S')}_#{base_migration_file_name(file_name, prefix)}.rb"
end

#migration_lookup_at(dirname) ⇒ Object


22
23
24
# File 'lib/rails/generators/active_graph_generator.rb', line 22

def migration_lookup_at(dirname)
  Dir.glob("#{dirname}/[0-9]*_*.rb")
end

#migration_template(template_name, prefix = '') ⇒ Object

:revoke happens when task is invoked with `rails destroy model ModelName`


32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/rails/generators/active_graph_generator.rb', line 32

def migration_template(template_name, prefix = '')
  real_file_name = case @behavior
                   when :revoke
                     existing_migration(
                       'db/neo4j/migrate',
                       base_migration_file_name(file_name, prefix)
                     )
                   else
                     migration_file_name(file_name, prefix)
                   end

  # If running with :revoke and migration doesn't exist, real_file_name = nil
  return if !real_file_name

  @migration_class_name = file_name.camelize

  # template() method is still run on revoke but it doesn't generate anything
  # other than a consol message indicating the filepath.
  # (this appears to be behavior provided by rails)
  template template_name, File.join('db/neo4j/migrate', real_file_name)

  # On revoke, we need to manually remove the file
  FileUtils.rm(real_file_name) if @behavior == :revoke
end