Sha256: c1d5fd42d7937bd31d2b30f9b160638e93232503ebf120698ad2786d756a9aa4
Contents?: true
Size: 1012 Bytes
Versions: 2
Compression:
Stored size: 1012 Bytes
Contents
require "sequel/enhancements" module Sequel module Plugins module StringNilifier def self.apply(model) model.plugin(:input_transformer, :string_nilifier) do |v| (v.is_a?(String) && !v.is_a?(SQL::Blob) && v.empty?) ? nil : v end end def self.configure(model) model.instance_eval{set_skipped_string_nilifying_columns if @dataset} end module ClassMethods Plugins.after_set_dataset(self, :set_skipped_string_nilifying_columns) def skip_string_nilifying(*columns) skip_input_transformer(:string_nilifier, *columns) end def skip_string_nilifying?(column) skip_input_transformer?(:string_nilifier, column) end private def set_skipped_string_nilifying_columns if @db_schema blob_columns = @db_schema.map{|k,v| k if v[:type] == :blob}.compact skip_string_nilifying(*blob_columns) end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sequel-enhancements-0.3.0 | lib/sequel/plugins/string_nilifier.rb |
sequel-enhancements-0.2.0 | lib/sequel/plugins/string_nilifier.rb |