Sha256: be74b920e330f94c207915d9e805047b4f3367b728dbc39e20b394bd36b1e79d
Contents?: true
Size: 701 Bytes
Versions: 1
Compression:
Stored size: 701 Bytes
Contents
module MongoMapper module ReadonlyAttributes extend ActiveSupport::Concern included do class_attribute :_attr_readonly, instance_accessor: false self._attr_readonly = [] validate :attr_unchanged, on: :update def attr_unchanged self._attr_readonly.each do |attr| unless self[attr] == collection.find_one(:_id => self.id)[attr] errors.add(attr, 'cannot be changed') end end end end module ClassMethods def attr_readonly(*attributes) self._attr_readonly = Set.new(attributes.map { |a| a.to_s }) + (self._attr_readonly || []) end def readonly_attributes self._attr_readonly end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mongo_mapper-readonly_attributes-0.0.2 | lib/mongo_mapper/readonly_attributes.rb |