Module: Sequel::Plugins::ForceEncoding

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

Overview

The ForceEncoding plugin allows you force specific encodings for all strings that are used by the model. When model instances are loaded from the database, all values in the hash that are strings are forced to the given encoding. Whenever you update a model column attribute, the resulting value is forced to a given encoding if the value is a string. There are two ways to specify the encoding. You can either do so in the plugin call itself, or via the forced_encoding class accessor.

Usage:

# Force all strings to be UTF8 encoded in a all model subclasses
# (called before loading subclasses)
Sequel::Model.plugin :force_encoding, 'UTF-8'

# Force the encoding for the Album model to UTF8
Album.plugin :force_encoding
Album.forced_encoding = 'UTF-8'

Defined Under Namespace

Modules: ClassMethods, InstanceMethods

Class Method Summary collapse

Class Method Details

.configure(model, encoding = nil) ⇒ Object

Set the forced_encoding based on the value given in the plugin call. Note that if a the plugin has been previously loaded, any previous forced encoding is overruled, even if no encoding is given when calling the plugin.



27
28
29
# File 'lib/sequel/plugins/force_encoding.rb', line 27

def self.configure(model, encoding=nil)
  model.forced_encoding = encoding
end