module Sequel::Plugins::InsertReturningSelect::ClassMethods

Attributes

instance_insert_dataset[R]

The dataset to use to insert new rows. For internal use only.

Public Instance Methods

freeze() click to toggle source

Freeze instance insert dataset when freezing model class.

Calls superclass method
# File lib/sequel/plugins/insert_returning_select.rb, line 34
def freeze
  super

  @instance_insert_dataset.freeze if @instance_insert_dataset
  self
end

Private Instance Methods

insert_returning_columns(ds) click to toggle source

Determine the columns to use for the returning clause, or return nil if they can't be determined and a returning clause should not be added automatically.

# File lib/sequel/plugins/insert_returning_select.rb, line 59
def insert_returning_columns(ds)
  return unless ds.supports_returning?(:insert)
  return unless values = ds.opts[:select]

  values = values.map{|v| ds.unqualified_column_for(v)}
  if values.all?
    values
  end
end
reset_instance_dataset() click to toggle source

When reseting the instance dataset, also reset the instance_insert_dataset.

Calls superclass method
# File lib/sequel/plugins/insert_returning_select.rb, line 44
def reset_instance_dataset
  ret = super
  return unless ds = @instance_dataset

  if columns = insert_returning_columns(ds)
    ds = ds.returning(*columns)
  end
  @instance_insert_dataset = ds

  ret
end