module Sequel::Plugins::HashCleaner

Constants

SURROUNDING_INVISIBLES

Public Class Methods

apply(model, *args) click to toggle source
# File lib/sequel/plugins/hash_cleaner.rb, line 8
def self.apply(model, *args)
  model.plugin(:input_transformer, :hash_cleaner){ |v| v.is_a?(Hash) ? clean(v) : v }
end

Private Class Methods

clean(value) click to toggle source
# File lib/sequel/plugins/hash_cleaner.rb, line 14
def self.clean(value)
  if value.is_a?(Hash)
    value.each_with_object({}) do |(k, v), memo|
      cleaned = clean v
      memo[k] = cleaned unless exclude?(cleaned)
    end
  else
    Sequel::Enhancements.trim_invisible(value)
  end
end
clean_value(value) click to toggle source
# File lib/sequel/plugins/hash_cleaner.rb, line 25
def self.clean_value(value)
  value.is_a?(String) ? value.trim_invisible : value
end
exclude?(value) click to toggle source
# File lib/sequel/plugins/hash_cleaner.rb, line 29
def self.exclude?(value)
  value.nil? || (value.is_a?(String) && value.empty?)
end