Sha256: 4fa71ffd0d6d4d9cfaeae5a6d405bb196044b2f74fbc170828225f499131a9ca

Contents?: true

Size: 1.41 KB

Versions: 3

Compression:

Stored size: 1.41 KB

Contents

module DataMapper
  module Constraints
    module Migrations
      module SingletonMethods

        def auto_migrate!(repository_name = nil)
          auto_migrate_constraints_down(repository_name)
          # TODO: Model#auto_migrate! drops and adds constraints, as well.
          #   is that an avoidable duplication?
          super
          auto_migrate_constraints_up(repository_name)
          self
        end

      private

        def auto_migrate_down!(repository_name = nil)
          auto_migrate_constraints_down(repository_name)
          super
          self
        end

        def auto_migrate_up!(repository_name = nil)
          super
          auto_migrate_constraints_up(repository_name)
          self
        end

        # @api private
        def auto_migrate_constraints_up(repository_name = nil)
          DataMapper::Model.descendants.each do |model|
            model.auto_migrate_constraints_up(repository_name || model.default_repository_name)
          end
        end

        # @api private
        def auto_migrate_constraints_down(repository_name = nil)
          DataMapper::Model.descendants.each do |model|
            model.auto_migrate_constraints_down(repository_name || model.default_repository_name)
          end
        end

      end # module SingletonMethods
    end # module Migrations
  end # module Constraints

  extend Constraints::Migrations::SingletonMethods
end # module DataMapper

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dm-constraints-1.2.0 lib/data_mapper/constraints/migrations/singleton_methods.rb
dm-constraints-1.2.0.rc2 lib/data_mapper/constraints/migrations/singleton_methods.rb
dm-constraints-1.2.0.rc1 lib/data_mapper/constraints/migrations/singleton_methods.rb