Module Sequel::Plugins::InputTransformer
In: lib/sequel/plugins/input_transformer.rb

InputTransformer is a plugin that allows generic transformations of input values in model column setters. Example:

  Album.plugin :input_transformer
  Album.add_input_transformer(:reverser){|v| v.is_a?(String) ? v.reverse : v}
  album = Album.new(:name=>'foo')
  album.name # => 'oof'

You can specifically set some columns to skip some input input transformers:

  Album.skip_input_transformer(:reverser, :foo)
  Album.new(:foo=>'bar').foo # => 'bar'

Usage:

  # Make all model subclass instances support input transformers (called before loading subclasses)
  Sequel::Model.plugin :input_transformer

  # Make the Album class support input transformers
  Album.plugin :input_transformer

Methods

apply   configure  

Classes and Modules

Module Sequel::Plugins::InputTransformer::ClassMethods
Module Sequel::Plugins::InputTransformer::InstanceMethods

Public Class methods

[Source]

    # File lib/sequel/plugins/input_transformer.rb, line 27
27:       def self.apply(model, *)
28:         model.instance_eval do
29:           @input_transformers = {}
30:           @input_transformer_order = []
31:           @skip_input_transformer_columns = {}
32:         end
33:       end

If an input transformer is given in the plugin call, add it as a transformer

[Source]

    # File lib/sequel/plugins/input_transformer.rb, line 37
37:       def self.configure(model, transformer_name=nil, &block)
38:         model.add_input_transformer(transformer_name, &block) if transformer_name || block
39:       end

[Validate]