Sha256: a56fa9f05c8e8c0ce6660df03afcd473c24b297bc9361916eee5b4ae1cd6d4ce

Contents?: true

Size: 1.72 KB

Versions: 3

Compression:

Stored size: 1.72 KB

Contents

require 'rails_assist'
require 'migration_assist/helper/migration'

module RailsAssist::Migration   
  module FileNameHelper         
    def artifact_path name, type, dir=nil
      dir ||= send :"#{type}_dir"
      File.join(dir, "#{name}#{type_postfix type}.rb")
    end

    def type_postfix type
      "_#{type}" if ![:model].include?(type)
    end

    def make_file_name name, type, options={}      
      send :"#{type}_file_name", name, options
    end

    def existing_file_name name, type 
      # first try finder method
      finder_method = :"find_#{type}"
      found = send finder_method, name if respond_to? finder_method      
      # default
      make_file_name(name, type) if !found
    end 
    
    def find_migration name, option=nil
      migrations = Dir.glob("#{migration_dir}/[0-9]*_*.rb")
      return nil if !migrations.empty?      
      matching_migrations = migrations.grep(/\d+_#{name}\.rb$/)
      return nil if matching_migrations.empty?
      migration_file = (option == :last) ? matching_migrations.last : matching_migrations.first
    end

    def migration_file_name name, options={}
      number = options[:number]      
      number = next_migration_number(migration_dir) if !number      
      File.join(migration_dir, "#{number}_#{name}.rb")      
    end

    def root_dir                                                                                    
      dir = RailsAssist::Migration.rails_root_dir || Rails.root
      raise "You must set the Rails app root dir: Rails3::Migration::Assist.rails_root_dir = '/my/root/dir'" if !dir
      dir
    end    
        
    def db_dir
      File.join(root_dir, 'db')
    end        

    def migration_dir
      File.join(db_dir, 'migrations')
    end    
  end
end  

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
migration_assist-0.4.0 lib/migration_assist/helper/file_name.rb
migration_assist-0.3.1 lib/migration_assist/helper/file_name.rb
migration_assist-0.3.0 lib/migration_assist/helper/file_name.rb