module ActiveGraph::Generators::MigrationHelper

Public Instance Methods

base_migration_file_name(file_name, prefix = '') click to toggle source
   # File lib/rails/generators/active_graph_generator.rb
14 def base_migration_file_name(file_name, prefix = '')
15   "#{prefix}#{file_name.parameterize}"
16 end
existing_migration(dirname, file_name) click to toggle source

Stolen from github.com/rails/rails/blob/30767f980faa2d7a0531774ddf040471db74a23b/railties/lib/rails/generators/migration.rb#L20

   # File lib/rails/generators/active_graph_generator.rb
27 def existing_migration(dirname, file_name)
28   migration_lookup_at(dirname).grep(/\d+_#{file_name}.rb$/).first
29 end
migration_file_name(file_name, prefix = '') click to toggle source
   # File lib/rails/generators/active_graph_generator.rb
18 def migration_file_name(file_name, prefix = '')
19   "#{Time.now.utc.strftime('%Y%m%d%H%M%S')}_#{base_migration_file_name(file_name, prefix)}.rb"
20 end
migration_lookup_at(dirname) click to toggle source
   # File lib/rails/generators/active_graph_generator.rb
22 def migration_lookup_at(dirname)
23   Dir.glob("#{dirname}/[0-9]*_*.rb")
24 end
migration_template(template_name, prefix = '') click to toggle source

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

   # File lib/rails/generators/active_graph_generator.rb
32 def migration_template(template_name, prefix = '')
33   real_file_name = case @behavior
34                    when :revoke
35                      existing_migration(
36                        'db/neo4j/migrate',
37                        base_migration_file_name(file_name, prefix)
38                      )
39                    else
40                      migration_file_name(file_name, prefix)
41                    end
42 
43   # If running with :revoke and migration doesn't exist, real_file_name = nil
44   return if !real_file_name
45 
46   @migration_class_name = file_name.camelize
47 
48   # template() method is still run on revoke but it doesn't generate anything
49   # other than a consol message indicating the filepath.
50   # (this appears to be behavior provided by rails)
51   template template_name, File.join('db/neo4j/migrate', real_file_name)
52 
53   # On revoke, we need to manually remove the file
54   FileUtils.rm(real_file_name) if @behavior == :revoke
55 end