From e57bf68d385eb10801431ec5133d2ebe432f934f Mon Sep 17 00:00:00 2001 From: Eduardo Casanova Cuesta Date: Mon, 20 Jun 2011 13:52:43 +0200 Subject: [PATCH] Small fixes. Closes #1. Still crashes in update_all actions. --- app/models/conversation.rb | 2 +- app/models/message.rb | 2 +- app/models/receipt.rb | 2 +- lib/mailboxer/models/messageable.rb | 6 +++--- mailboxer.gemspec | 5 ++--- spec/models/conversation_spec.rb | 9 +++++++++ 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/app/models/conversation.rb b/app/models/conversation.rb index 4629e9f4..fba830bb 100644 --- a/app/models/conversation.rb +++ b/app/models/conversation.rb @@ -87,7 +87,7 @@ def last_message #Returns the receipts of the conversation for one participants def receipts_for(participant) - return Receipt.conversation(self).receiver(participant) + return Receipt.conversation(self).receiver(participant) end #Returns the number of messages of the conversation diff --git a/app/models/message.rb b/app/models/message.rb index db8550a5..2670ad0b 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -3,7 +3,7 @@ class Message < Notification belongs_to :conversation, :validate => true, :autosave => true validates_presence_of :sender - class_inheritable_accessor :on_deliver_callback + class_attribute :on_deliver_callback protected :on_deliver_callback scope :conversation, lambda { |conversation| where(:conversation_id => conversation.id) diff --git a/app/models/receipt.rb b/app/models/receipt.rb index 0818b2c8..22a58701 100644 --- a/app/models/receipt.rb +++ b/app/models/receipt.rb @@ -16,7 +16,7 @@ class Receipt < ActiveRecord::Base where(:notification_id => notification.id) } scope :conversation, lambda { |conversation| - joins(:notification).where('notifications.conversation_id' => conversation.id) + joins(:message).where('notifications.conversation_id' => conversation.id) } scope :sentbox, where(:mailbox_type => "sentbox") scope :inbox, where(:mailbox_type => "inbox") diff --git a/lib/mailboxer/models/messageable.rb b/lib/mailboxer/models/messageable.rb index de1e3fcf..4a014aaf 100644 --- a/lib/mailboxer/models/messageable.rb +++ b/lib/mailboxer/models/messageable.rb @@ -20,21 +20,21 @@ module InstanceMethods #Returning any kind of indentification you want for the model def name super - rescue + rescue NameError return "You should add method :name in your Messageable model" end #Returning the email address of the model def email super - rescue + rescue NameError return "define_email@on_your.model" end #Returning whether an email should be sent for this object (Message or Notification) def should_email?(object) super - rescue + rescue NameError return true end diff --git a/mailboxer.gemspec b/mailboxer.gemspec index b4d32cd5..81564845 100644 --- a/mailboxer.gemspec +++ b/mailboxer.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |s| # Development Gem dependencies # - s.add_development_dependency('rails', '~> 3.0.5') + s.add_runtime_dependency('rails', '3.1.0.rc4') # Testing database s.add_development_dependency('sqlite3-ruby') # Debugging @@ -24,13 +24,12 @@ Gem::Specification.new do |s| s.add_development_dependency('ruby-debug', '~> 0.10.3') end # Specs - s.add_development_dependency('rspec-rails', '~> 2.5.0') + s.add_development_dependency('rspec-rails', '~> 2.6.1') # Fixtures s.add_development_dependency('factory_girl', '~> 1.3.2') # Population s.add_development_dependency('forgery', '~> 0.3.6') # Integration testing s.add_development_dependency('capybara', '~> 0.3.9') - end diff --git a/spec/models/conversation_spec.rb b/spec/models/conversation_spec.rb index 4efdb25a..a6765f3f 100644 --- a/spec/models/conversation_spec.rb +++ b/spec/models/conversation_spec.rb @@ -37,4 +37,13 @@ @conversation.recipients.count(@entity2).should==1 end + it "should be able to be marked as read" do + @conversation.move_to_trash(@entity1) + end + + it "should be able to be marked as unread" do + @conversation.move_to_trash(@entity1) + @conversation.untrash(@entity1) + end + end