status messages validate on presence of message OR one or more photos. took gifs out of carrierwave's whitelist, SORRY JAMIE.

This commit is contained in:
danielvincent 2010-11-21 23:40:39 -08:00
parent 60dd2f8e60
commit c841a47a37
3 changed files with 24 additions and 7 deletions

View file

@ -11,7 +11,7 @@ class StatusMessage < Post
key :message, String
many :photos, :class => Photo, :foreign_key => :status_message_id
validates_presence_of :message
validate :message_or_photos_present?
attr_accessible :message
@ -28,5 +28,14 @@ class StatusMessage < Post
</entry>
XML
end
protected
def message_or_photos_present?
unless self.message || self.photos.count > 0
errors[:base] << 'Status message requires a message or at least one photo'
end
end
end

View file

@ -12,7 +12,7 @@ class ImageUploader < CarrierWave::Uploader::Base
end
def extension_white_list
%w(jpg jpeg gif png)
%w(jpg jpeg png)
end
def filename

View file

@ -5,16 +5,24 @@
require 'spec_helper'
describe StatusMessage do
before do
@user = make_user
@aspect = @user.aspects.create(:name => "losers")
@user = make_user
@aspect = @user.aspects.create(:name => "losers")
end
it "should have a message" do
it "should have either a message or at least one photo" do
n = Factory.build(:status_message, :message => nil)
n.valid?.should be false
n.valid?.should be_false
n.message = "wales"
n.valid?.should be true
n.valid?.should be_true
n.message = nil
photo = @user.build_post(:photo, :user_file => uploaded_photo, :to => @aspect.id)
photo.save!
n.photos << photo
n.valid?.should be_true
end
it 'should be postable through the user' do