class Shaf::Tasks::DbTask

Public Class Methods

new(name, description:, args: [], &block) click to toggle source
# File lib/shaf/tasks/db_task.rb, line 6
def initialize(name, description:, args: [], &block)
  @name = name
  @desc = description
  @args = args
  @block = block
  define_task
end

Public Instance Methods

define_task() click to toggle source
# File lib/shaf/tasks/db_task.rb, line 14
def define_task
  namespace :db do
    desc @desc
    task @name, @args do |t, args|
      require 'config/database'
      Sequel.extension :migration
      instance_exec(t, args, &@block)
    end
  end
end
extract_version_and_filename(filename) click to toggle source
# File lib/shaf/tasks/db_task.rb, line 33
def extract_version_and_filename(filename)
  return [] unless filename
  filename = filename[:filename] if filename.is_a? Hash
  match = /(\d*)_(.*).rb/.match(filename)
  return [] unless match
  match[1..2]
end
last_migration() click to toggle source
# File lib/shaf/tasks/db_task.rb, line 29
def last_migration
  DB[:schema_migrations].order(:filename).last
end
migrations() click to toggle source
# File lib/shaf/tasks/db_task.rb, line 25
def migrations
  @migrations ||= DB[:schema_migrations].all
end