Sha256: ff6d8ebbfc9125edc260fd34df7f964fcfb229492ff64a7f11e6d229da429c7d

Contents?: true

Size: 963 Bytes

Versions: 9

Compression:

Stored size: 963 Bytes

Contents

# Dataset methods are methods that the model class extends its dataset with in
# the call to set_dataset.
module Sequel::Model::DatasetMethods
  # Destroy each row in the dataset by instantiating it and then calling
  # destroy on the resulting model object.  This isn't as fast as deleting
  # the object, which does a single SQL call, but this runs any destroy
  # hooks.
  def destroy
    raise(Error, "No model associated with this dataset") unless @opts[:models]
    count = 0
    @db.transaction {each {|r| count += 1; r.destroy}}
    count
  end

  # This allows you to call to_hash without any arguments, which will
  # result in a hash with the primary key value being the key and the
  # model object being the value.
  def to_hash(key_column=nil, value_column=nil)
    if key_column
      super
    else
      raise(Sequel::Error, "No primary key for model") unless pk = @opts[:models][nil].primary_key
      super(pk, value_column) 
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
sequel-2.1.0 lib/sequel_model/dataset_methods.rb
sequel-2.2.0 lib/sequel_model/dataset_methods.rb
sequel-2.6.0 lib/sequel_model/dataset_methods.rb
sequel-2.3.0 lib/sequel_model/dataset_methods.rb
sequel-2.7.1 lib/sequel_model/dataset_methods.rb
sequel-2.4.0 lib/sequel_model/dataset_methods.rb
sequel-2.5.0 lib/sequel_model/dataset_methods.rb
sequel-2.8.0 lib/sequel_model/dataset_methods.rb
sequel-2.7.0 lib/sequel_model/dataset_methods.rb