class Kangaru::Database
def migrate!
def migrate! return unless handler return unless migrations_exist? Sequel.extension(:migration) Sequel::Migrator.run(handler, migration_path) end
def migrations_exist?
def migrations_exist? return false if migration_path.nil? Dir.exist?(migration_path) && !Dir.empty?(migration_path) end
def setup!
def setup! raise "adaptor can't be blank" if adaptor.nil? @handler = case adaptor when :sqlite then setup_sqlite! else raise "invalid adaptor '#{adaptor}'" end end
def setup_sqlite!
def setup_sqlite! raise "path can't be blank" if path.nil? FileUtils.mkdir_p(File.dirname(path)) Sequel.sqlite(path).tap do PLUGINS.each { |plugin| Sequel::Model.plugin(plugin) } end end