Sha256: 540017a285c8d2ddc0e762b7bb0af217a2371839f85038ce22895d1710b6125f

Contents?: true

Size: 1.55 KB

Versions: 7

Compression:

Stored size: 1.55 KB

Contents

# -*- encoding : utf-8 -*-
require 'rails/generators'
require 'rails/generators/migration'

class Sufia::Models::ProxiesGenerator < Rails::Generators::Base
  include Rails::Generators::Migration

  source_root File.expand_path('../templates', __FILE__)

  desc """
This generator adds proxies and transfers to your application:
 1. Creates several database migrations if they do not exist in /db/migrate
       """
  # Implement the required interface for Rails::Generators::Migration.
  # taken from http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
  def self.next_migration_number(path)
    if @prev_migration_nr
      @prev_migration_nr += 1
    else
      if last_migration = Dir[File.join(path, '*.rb')].sort.last
        @prev_migration_nr = last_migration.sub(File.join(path, '/'), '').to_i + 1
      else
        @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
      end
    end
    @prev_migration_nr.to_s
  end

  def banner
    say_status("warning", "ADDING PROXY/TRANSFER-RELATED SUFIA MODELS", :yellow)
  end

  # Setup the database migrations
  def copy_migrations
    # Can't get this any more DRY, because we need this order.
    [
      'create_proxy_deposit_rights.rb',
      'create_proxy_deposit_requests.rb'
    ].each do |file|
      better_migration_template file
    end
  end

  private

  def better_migration_template(file)
    begin
      migration_template "migrations/#{file}", "db/migrate/#{file}"
    rescue Rails::Generators::Error => e
      say_status("warning", e.message, :yellow)
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
sufia-6.0.0.beta1 sufia-models/lib/generators/sufia/models/proxies_generator.rb
sufia-models-6.0.0.beta1 lib/generators/sufia/models/proxies_generator.rb
sufia-models-5.0.0.beta1 lib/generators/sufia/models/proxies_generator.rb
sufia-4.2.0 sufia-models/lib/generators/sufia/models/proxies_generator.rb
sufia-models-4.2.0 lib/generators/sufia/models/proxies_generator.rb
sufia-4.1.0 sufia-models/lib/generators/sufia/models/proxies_generator.rb
sufia-models-4.1.0 lib/generators/sufia/models/proxies_generator.rb