Sha256: cde04b10d376d036dd33da327c84ac012a9fb8cb2a041d762bf23e01dc58051a
Contents?: true
Size: 823 Bytes
Versions: 9
Compression:
Stored size: 823 Bytes
Contents
module MasterModel def self.included(base) #base.extend ClassMethods base.send :include, InstanceMethods base.class_eval do acts_as_list validates_uniqueness_of :name, case_sensitive: false validates_presence_of :name, :display_name before_validation :set_display_name, on: :create stirp_attributes only: :name end end module InstanceMethods def set_display_name self.display_name = self.name if self.display_name.blank? end def check_creatable if creatable? raise NotModifiableError end end def check_deletable if deletable? raise NotModifiableError end end def creatable? false end def deletable? false end end class NotModifiableError < StandardError; end end
Version data entries
9 entries across 9 versions & 1 rubygems