Sha256: 3b6b33fc21ee228ca7555a2ef7577f723c07c117996af8f8e9a8238bb8e17572
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
module Sequel::Plugins::LuxBeforeSave module InstanceMethods def validate for field in columns schema = db_schema[field] # alert, no trim on to big field length if schema[:max_length] && self[field] && self[field].length > schema[:max_length] msg = 'Field "%s" max length is %s, got %d' % [field, schema[:max_length], self[field].length] errors.add(field, msg) end end super end def before_save # basic security self[:created_at] = Time.now.utc if ! self[:id] && respond_to?(:created_at) self[:updated_at] = Time.now.utc if respond_to?(:updated_at) if respond_to?(:created_by) || respond_to?(:updated_by) errors.add(:base, 'You have to be registered to save data') unless User.current end for f in [:created_by, :updated_by] if respond_to?(f) && !self[:id] && !self[f] raise UnauthorizedError, "Current user not defined, can't set :#{f} on #{self.class}" unless User.current self[f] = User.current.id end end Lux.cache.delete(cache_key) super end def before_destroy Lux.cache.delete(cache_key) super end end end Sequel::Model.plugin :lux_before_save
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lux-fw-0.1.35 | ./lib/plugins/db_helpers/before_save.rb |
lux-fw-0.1.17 | ./lib/plugins/db_helpers/before_save.rb |