module Sequel::Database::FreezeDatasets

Public Class Methods

extended(db) click to toggle source

Reset the default dataset for this database after loading the extension.

# File lib/sequel/extensions/freeze_datasets.rb, line 38
def self.extended(db)
  db.extend_datasets(DatasetMethods)
end

Public Instance Methods

dataset() click to toggle source

Freeze datasets created from this dataset.

Calls superclass method
# File lib/sequel/extensions/freeze_datasets.rb, line 52
def dataset
  super.freeze
end
from(*args, &block) click to toggle source

Cache returned dataset if given a single argument and no block.

Calls superclass method
# File lib/sequel/extensions/freeze_datasets.rb, line 43
def from(*args, &block)
  if !block && args.length == 1 && (table = args[0]).is_a?(Symbol)
     @default_dataset.send(:cached_dataset, :"_from_#{table}_ds"){super}
  else
    super
  end
end

Private Instance Methods

remove_cached_schema(table) click to toggle source

Clear the cache of the default dataset when removing a cached schema, in order to clear the from table cache.

Calls superclass method
# File lib/sequel/extensions/freeze_datasets.rb, line 60
def remove_cached_schema(table)
  cache = @default_dataset.send(:cache)
  Sequel.synchronize{cache.clear}
  super
end