Sha256: 55ee938ac868eebc9965536d1ebabf5204af45377c5c86dd86dde4c7ef3a0427

Contents?: true

Size: 861 Bytes

Versions: 4

Compression:

Stored size: 861 Bytes

Contents

module RestAssured
  module Models
    class Redirect < ActiveRecord::Base
      attr_accessible :pattern, :to, :position

      validates_presence_of :pattern, :to

      scope :ordered, order('position')

      before_create :assign_position

      def self.update_order(ordered_redirect_ids)
        success = true

        transaction do
          begin
            ordered_redirect_ids.each_with_index do |r_id, idx|
              r = find(r_id)
              r.position = idx
              r.save!
            end
          rescue => e
            # TODO log exception
            puts e.inspect
            success = false
            raise ActiveRecord::Rollback
          end
        end
        success
      end

      private

      def assign_position
        self.position = ( self.class.maximum(:position) || -1 ) + 1
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rest-assured-0.3.2 lib/rest-assured/models/redirect.rb
rest-assured-0.3.1 lib/rest-assured/models/redirect.rb
rest-assured-0.3.0 lib/rest-assured/models/redirect.rb
rest-assured-0.2.0 lib/rest-assured/models/redirect.rb