Sha256: ddfe8bd487e904ef398fdaf6b05f8441cbc73bdfaf5b2ce5c39fc7ba7fc49f7d

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

require 'fileutils'

module Dataset
  module Database # :nodoc:
    
    # Provides Dataset a way to clear, dump and load databases.
    class Base
      include FileUtils
      
      def clear
        connection = ActiveRecord::Base.connection
        ActiveRecord::Base.silence do
          connection.tables.each do |table_name|
            connection.delete "DELETE FROM #{connection.quote_table_name(table_name)}",
              "Dataset::Database#clear" unless table_name == ActiveRecord::Migrator.schema_migrations_table_name
          end
        end
      end
      
      def record_heirarchy(record_class)
        base_class = record_class.base_class
        record_heirarchies[base_class] ||= Dataset::Record::Heirarchy.new(base_class)
      end
      
      def record_meta(record_class)
        record_metas[record_class] ||= begin
          heirarchy = record_heirarchy(record_class)
          heirarchy.update(record_class)
          Dataset::Record::Meta.new(heirarchy, record_class)
        end
      end
      
      protected
        def record_metas
          @record_metas ||= Hash.new
        end
        
        def record_heirarchies
          @record_heirarchies ||= Hash.new
        end
    end
  end
end

Version data entries

3 entries across 3 versions & 3 rubygems

Version Path
codders-dataset-1.3.2.1 lib/dataset/database/base.rb
be9-dataset-1.3.3 lib/dataset/database/base.rb
dataset-1.3.2 lib/dataset/database/base.rb