Sha256: 7ed6e81439ac8d007dbe24342e43b42592861737a04c6db6c3cf631a562921b8

Contents?: true

Size: 939 Bytes

Versions: 46

Compression:

Stored size: 939 Bytes

Contents

module Dataset
  module Database # :nodoc:
    
    # The interface to a sqlite3 database, this will capture by copying the db
    # file and restore by replacing and reconnecting to one of the same.
    #
    class Sqlite3 < Base
      def initialize(database_spec, storage_path)
        @database_path, @storage_path = database_spec[:database], storage_path
        FileUtils.mkdir_p(@storage_path)
      end
      
      def capture(datasets)
        return if datasets.nil? || datasets.empty?
        cp @database_path, storage_path(datasets)
      end
      
      def restore(datasets)
        store = storage_path(datasets)
        if File.file?(store)
          mv store, @database_path
          ActiveRecord::Base.establish_connection 'test'
          true
        end
      end
      
      def storage_path(datasets)
        "#{@storage_path}/#{datasets.collect {|c| c.__id__}.join('_')}.sqlite3.db"
      end
    end
  end
end

Version data entries

46 entries across 46 versions & 8 rubygems

Version Path
codders-dataset-1.3.2.1 lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.2.4 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.2.2 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.2.1 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.2 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.1.9 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.1.8 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.1.7 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.1.6 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.1.5 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.1.4 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.1.3 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.1.2 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.1.1 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiantcms-couchrest_model-0.1 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiant-0.7.2 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
be9-dataset-1.3.3 lib/dataset/database/sqlite3.rb
radiant-0.9.1 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiant-0.8.2 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb
radiant-0.9.0.rc2 vendor/plugins/dataset/lib/dataset/database/sqlite3.rb