Sha256: 7888ca3a8bbf1fb603ee2a5af01d2396245464ff44b89aa5be6373dcd7e187dd

Contents?: true

Size: 889 Bytes

Versions: 22

Compression:

Stored size: 889 Bytes

Contents

module DataMapper
  module Types
    class ParanoidBoolean < DataMapper::Type(Boolean)
      primitive TrueClass
      default   false
      lazy      true

      def self.bind(property)
        model = property.model
        repository = property.repository

        model.send(:set_paranoid_property, property.name){true}

        model.class_eval <<-EOS, __FILE__, __LINE__

          def self.with_deleted
            with_exclusive_scope(#{property.name.inspect} => true) do
              yield
            end
          end

          def destroy
            self.class.paranoid_properties.each do |name, blk|
              attribute_set(name, blk.call(self))
            end
            save
          end
        EOS

        model.default_scope(repository.name).update(property.name => false)
      end
    end # class ParanoidBoolean
  end # module Types
end # module DataMapper

Version data entries

22 entries across 22 versions & 6 rubygems

Version Path
datamapper-dm-core-0.9.11 lib/dm-core/types/paranoid_boolean.rb
joevandyk-dm-core-0.9.6 lib/dm-core/types/paranoid_boolean.rb
rpbertp13-dm-core-0.9.11.1 lib/dm-core/types/paranoid_boolean.rb
rpbertp13-dm-core-0.9.11.2 lib/dm-core/types/paranoid_boolean.rb
sam-dm-core-0.9.10 lib/dm-core/types/paranoid_boolean.rb
sam-dm-core-0.9.11 lib/dm-core/types/paranoid_boolean.rb
sam-dm-core-0.9.6 lib/dm-core/types/paranoid_boolean.rb
sam-dm-core-0.9.7 lib/dm-core/types/paranoid_boolean.rb
sam-dm-core-0.9.8 lib/dm-core/types/paranoid_boolean.rb
sam-dm-core-0.9.9 lib/dm-core/types/paranoid_boolean.rb
dm-core-0.9.11 lib/dm-core/types/paranoid_boolean.rb
dm-core-0.9.10 lib/dm-core/types/paranoid_boolean.rb
dm-core-0.9.5 lib/dm-core/types/paranoid_boolean.rb
dm-core-0.9.7 lib/dm-core/types/paranoid_boolean.rb
dm-core-0.9.3 lib/dm-core/types/paranoid_boolean.rb
dm-core-0.9.6 lib/dm-core/types/paranoid_boolean.rb
dm-core-0.9.4 lib/dm-core/types/paranoid_boolean.rb
dm-core-0.9.9 lib/dm-core/types/paranoid_boolean.rb
dm-core-0.9.8 lib/dm-core/types/paranoid_boolean.rb
mack-data_mapper-0.8.2 lib/gems/dm-core-0.9.7/lib/dm-core/types/paranoid_boolean.rb