Module: Sequel::Plugins::TypecastOnLoad

Defined in:
lib/sequel/plugins/typecast_on_load.rb

Overview

The TypecastOnLoad plugin exists because most of Sequel's database adapters don't have complete control over typecasting, and may return columns that aren't typecast correctly (with correct being defined as how the model object would typecast the same column values).

This plugin makes model loading call the setter methods (which typecast by default) for all columns given. You can either specify the columns to typecast on load in the plugin call itself, or afterwards using add_typecast_on_load_columns:

Album.plugin :typecast_on_load, :release_date, :record_date
# or:
Album.plugin :typecast_on_load
Album.add_typecast_on_load_columns :release_date, :record_date

If the database returns release_date and record_date columns as strings instead of dates, this will ensure that if you access those columns through the model object, you'll get Date objects instead of strings.

Defined Under Namespace

Modules: ClassMethods, InstanceMethods

Class Method Summary (collapse)

Class Method Details

+ (Object) configure(model, *columns)

Call add_typecast_on_load_columns on the passed column arguments.



23
24
25
26
27
28
# File 'lib/sequel/plugins/typecast_on_load.rb', line 23

def self.configure(model, *columns)
  model.instance_eval do
    @typecast_on_load_columns ||= []
    add_typecast_on_load_columns(*columns)
  end
end