Module Sequel::Plugins::SplitValues
In: lib/sequel/plugins/split_values.rb

The split_values plugin splits the values hash retreived from the database, and moves keys from the values hash that are not columns in the model‘s dataset to a separate hash. This makes it so the values hash only stores columns from the model‘s dataset.

Among other things, this allows you to save model objects even if they were retrieved with additional columns, and have equality comparisons with other instances not care about non-column values.

Example:

  class Album < Sequel::Model
    plugin :split_values
  end
  a1 = Album[1]
  a2 = Album.select_append(Sequel.as(true, :exists))[1]
  a1.name # => 'Album Name'
  a2.name # => 'Album Name'
  a1[:exists] # => nil
  a2[:exists] # => true
  a1 == a2 # => true
  a2.values # => {:id=>1, :name=>'Album Name'}
  a2.save # Works

Usage:

  # Make all model subclass instances split values
  # (called before loading subclasses)
  Sequel::Model.plugin :split_values

  # Make the Album class split values
  Album.plugin :split_values

Classes and Modules

Module Sequel::Plugins::SplitValues::ClassMethods
Module Sequel::Plugins::SplitValues::InstanceMethods

[Validate]