Sha256: a52c4f81f5b1b7d927f966b3411fa250bf9f798e74677be242c2bdbccb915a14

Contents?: true

Size: 1.26 KB

Versions: 1

Compression:

Stored size: 1.26 KB

Contents

namespace :db do
  desc 'Generate all the database objects of the current project'
  task create_objects: :environment do
    creator = RailsDbObjects::DbObjectsCreator.new

    objects_path = Rails.configuration.rails_db_objects[:objects_path]
    objects_ext = Rails.configuration.rails_db_objects[:objects_ext]

    objects_path.each do |path|
      creator.register_files(Dir[File.join(path, objects_ext)].map { |x| File.expand_path(x) })
    end

    creator.create_objects
  end

  desc 'Drop all the database objects of the current project'
  task drop_objects: :environment do
    creator = RailsDbObjects::DbObjectsCreator.new

    objects_path = Rails.configuration.rails_db_objects[:objects_path]
    objects_ext = Rails.configuration.rails_db_objects[:objects_ext]

    objects_path.each do |path|
      creator.register_files(Dir[File.join(path, objects_ext)].map { |x| File.expand_path(x) })
    end

    creator.drop_objects
  end
end

require 'rake/hooks'

before 'db:migrate' do
  Rake::Task['db:drop_objects'].invoke
end
before 'db:rollback' do
  Rake::Task['db:drop_objects'].invoke
end

after 'db:migrate' do
  Rake::Task['db:create_objects'].invoke
end
after 'db:rollback' do
  Rake::Task['db:create_objects'].invoke
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails_db_objects-0.1.1 lib/tasks/rails_db_objects_tasks.rake