Sha256: ed7323684b959d368473ee0dc86a2caac26eb4f3b70096066a69237ab394a932

Contents?: true

Size: 1.72 KB

Versions: 18

Compression:

Stored size: 1.72 KB

Contents

require 'bundler/gem_tasks'
require 'rake/testtask'
require 'rspec/core/rake_task'
require 'fileutils'

begin
  require 'rdoc/task'
rescue LoadError
  require 'rdoc/rdoc'
  require 'rake/rdoctask'
  RDoc::Task = Rake::RDocTask
end

module Postgres
  class << self
    def exec(query)
      `psql postgres -tAc "#{query}"`
    end

    def user_exists?(username)
      exec("SELECT 1 FROM pg_user WHERE usename='#{username}'").strip == '1'
    end

    def drop_user(username)
      puts "dropping user #{username}"
      puts exec("DROP USER #{username}").inspect
    end

    def create_user(username)
      user_exists?(username) ? false : `createuser -s #{username}`
    end
  end
end

def within_dummy_app
  Dir.chdir('spec/dummy') do
    ENV['BUNDLE_GEMFILE'] = File.join File.dirname(__FILE__), 'Gemfile'
    yield
  end
end

desc 'Run specs'
RSpec::Core::RakeTask.new(spec: :setup)

RDoc::Task.new(:rdoc) do |rdoc|
  rdoc.rdoc_dir = 'rdoc'
  rdoc.title    = 'Kuhsaft'
  rdoc.options << '--line-numbers'
  rdoc.rdoc_files.include('README.rdoc')
  rdoc.rdoc_files.include('lib/**/*.rb')
end

desc 'set up the dummy app for testing'
task :setup do
  Postgres.create_user 'screenconcept'
  within_dummy_app do
    `bundle exec rake kuhsaft:install:migrations`
    `bundle exec rails generate kuhsaft:install:assets`
    `bundle exec rake db:create`
    `bundle exec rake db:migrate`
    `bundle exec rake db:test:prepare`
    `bundle exec rake db:seed`
  end
end

task default: [:spec]

desc 'start the dummy app'
task :start_dummy do
  within_dummy_app do
    `bundle exec rails server`
  end
end

namespace :dummy_db do
  desc 'migrate in dummy app'
  task :migrate do
    within_dummy_app do
      `bundle exec rake db:migrate 2>&1`
    end
  end
end

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
kuhsaft-2.6.3 Rakefile
kuhsaft-2.6.2 Rakefile
kuhsaft-2.6.1 Rakefile
kuhsaft-2.5.2 Rakefile
kuhsaft-2.6.0 Rakefile
kuhsaft-2.5.1 Rakefile
kuhsaft-2.5.0 Rakefile
qbrick-2.5.0.pre Rakefile
kuhsaft-2.4.3 Rakefile
kuhsaft-2.4.2 Rakefile
kuhsaft-2.4.1 Rakefile
kuhsaft-2.4.0 Rakefile
kuhsaft-2.3.6 Rakefile
kuhsaft-2.3.5 Rakefile
kuhsaft-2.3.4 Rakefile
kuhsaft-2.3.3 Rakefile
kuhsaft-2.3.2 Rakefile
kuhsaft-2.3.1 Rakefile