require "backhoe/version"
require "backhoe/mysql"
require "backhoe/postgresql"
require "backhoe/sqlite"
require "active_record"

module Backhoe
  mattr_accessor(:file_path) { "db/data.sql" }
    
  class << self
    def dump file_path: Backhoe.file_path, **options
      autodetect_adapter.new(database_config, file_path).dump **options
    end

    def load file_path: Backhoe.file_path
      autodetect_adapter.new(database_config, file_path).load
    end

    private

    def autodetect_adapter
      const_get(database_config["adapter"].camelize)
    end

    def database_config
      env = Rails.env || "development"
      config = ActiveRecord::Base.configurations[env]
      HashWithIndifferentAccess.new(config)
    end
  end
end