Module: Sequel::Plugins::InputTransformer
- Defined in:
- lib/sequel/plugins/input_transformer.rb
Overview
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
Defined Under Namespace
Modules: ClassMethods, InstanceMethods
Class Method Summary collapse
- .apply(model, &_) ⇒ Object
- 
  
    
      .configure(model, transformer_name = nil, &block)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    If an input transformer is given in the plugin call, add it as a transformer. 
Class Method Details
.apply(model, &_) ⇒ Object
| 27 28 29 30 31 32 | # File 'lib/sequel/plugins/input_transformer.rb', line 27 def self.apply(model, *, &_) model.instance_exec do @input_transformers = {} @skip_input_transformer_columns = {} end end | 
.configure(model, transformer_name = nil, &block) ⇒ Object
If an input transformer is given in the plugin call, add it as a transformer
| 36 37 38 | # File 'lib/sequel/plugins/input_transformer.rb', line 36 def self.configure(model, transformer_name=nil, &block) model.add_input_transformer(transformer_name, &block) if transformer_name || block end |