Sha256: f12dece806976a3ff98b1cabc105e7fb44d1f114db158191281a96c4e4c20b7f

Contents?: true

Size: 832 Bytes

Versions: 4

Compression:

Stored size: 832 Bytes

Contents

class Double < ActiveRecord::Base
  attr_accessible :fullpath, :content, :description, :verb

  METHODS = %w{GET POST PUT DELETE}

  validates_presence_of :fullpath, :content
  validates_inclusion_of :verb, :in => METHODS

  before_save :toggle_active
  before_validation :set_verb
  after_destroy :set_active

  has_many :requests

  private
    def toggle_active
      ne = id ? '!=' : 'IS NOT'

      if active && Double.where("fullpath = ? AND active = ? AND id #{ne} ?", fullpath, true, id).exists?
        Double.where("fullpath = ? AND id #{ne} ?", fullpath, id).update_all :active => false
      end
    end

    def set_verb
      self.verb = 'GET' unless verb.present?
    end

    def set_active
      if active && f = Double.where(:fullpath => fullpath).last
        f.active = true
        f.save
      end
    end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rest-assured-0.2.0.rc4 lib/rest-assured/models/double.rb
rest-assured-0.2.0.rc3 lib/rest-assured/models/double.rb
rest-assured-0.2.0.rc2 lib/rest-assured/models/double.rb
rest-assured-0.2.0.rc1 lib/rest-assured/models/double.rb