mailboxer 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. data/.gitignore +12 -0
  2. data/Gemfile +3 -0
  3. data/LICENSE.txt +20 -0
  4. data/README.rdoc +7 -0
  5. data/Rakefile +53 -0
  6. data/VERSION +1 -0
  7. data/app/models/mailboxer_conversation.rb +60 -0
  8. data/app/models/mailboxer_mail.rb +70 -0
  9. data/app/models/mailboxer_mailbox.rb +68 -0
  10. data/app/models/mailboxer_message.rb +42 -0
  11. data/lib/generators/mailboxer/install_generator.rb +15 -0
  12. data/lib/generators/mailboxer/templates/migration.rb +31 -0
  13. data/lib/mailboxer.rb +8 -0
  14. data/lib/mailboxer/engine.rb +10 -0
  15. data/lib/mailboxer/models/messageable.rb +204 -0
  16. data/mailboxer.gemspec +34 -0
  17. data/spec/dummy/Gemfile +6 -0
  18. data/spec/dummy/Rakefile +7 -0
  19. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  20. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  21. data/spec/dummy/app/models/cylon.rb +3 -0
  22. data/spec/dummy/app/models/duck.rb +3 -0
  23. data/spec/dummy/app/models/user.rb +3 -0
  24. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  25. data/spec/dummy/config.ru +4 -0
  26. data/spec/dummy/config/application.rb +45 -0
  27. data/spec/dummy/config/boot.rb +10 -0
  28. data/spec/dummy/config/database.yml +22 -0
  29. data/spec/dummy/config/environment.rb +5 -0
  30. data/spec/dummy/config/environments/development.rb +26 -0
  31. data/spec/dummy/config/environments/production.rb +49 -0
  32. data/spec/dummy/config/environments/test.rb +35 -0
  33. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  34. data/spec/dummy/config/initializers/inflections.rb +10 -0
  35. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  36. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  37. data/spec/dummy/config/initializers/session_store.rb +8 -0
  38. data/spec/dummy/config/locales/en.yml +5 -0
  39. data/spec/dummy/config/routes.rb +60 -0
  40. data/spec/dummy/db/migrate/20110228120600_create_users.rb +13 -0
  41. data/spec/dummy/db/migrate/20110303122122_create_mailboxer.rb +31 -0
  42. data/spec/dummy/db/migrate/20110306002940_create_ducks.rb +13 -0
  43. data/spec/dummy/db/migrate/20110306015107_create_cylons.rb +13 -0
  44. data/spec/dummy/db/schema.rb +53 -0
  45. data/spec/dummy/public/404.html +26 -0
  46. data/spec/dummy/public/422.html +26 -0
  47. data/spec/dummy/public/500.html +26 -0
  48. data/spec/dummy/public/favicon.ico +0 -0
  49. data/spec/dummy/public/javascripts/application.js +2 -0
  50. data/spec/dummy/public/javascripts/controls.js +965 -0
  51. data/spec/dummy/public/javascripts/dragdrop.js +974 -0
  52. data/spec/dummy/public/javascripts/effects.js +1123 -0
  53. data/spec/dummy/public/javascripts/prototype.js +6001 -0
  54. data/spec/dummy/public/javascripts/rails.js +191 -0
  55. data/spec/dummy/public/stylesheets/.gitkeep +0 -0
  56. data/spec/dummy/public/stylesheets/scaffold.css +56 -0
  57. data/spec/dummy/script/rails +6 -0
  58. data/spec/factories/cylon.rb +3 -0
  59. data/spec/factories/duck.rb +3 -0
  60. data/spec/factories/user.rb +3 -0
  61. data/spec/integration/mailboxer_message_and_mail_spec.rb +717 -0
  62. data/spec/integration/navigation_spec.rb +9 -0
  63. data/spec/mailboxer_spec.rb +7 -0
  64. data/spec/models/mailboxer_conversation_spec.rb +39 -0
  65. data/spec/models/mailboxer_mail_spec.rb +33 -0
  66. data/spec/models/mailboxer_mailbox_spec.rb +99 -0
  67. data/spec/models/mailboxer_models_messageable_spec.rb +107 -0
  68. data/spec/spec_helper.rb +36 -0
  69. metadata +278 -0
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Navigation" do
4
+ include Capybara
5
+
6
+ it "should be a valid app" do
7
+ ::Rails.application.should be_a(Dummy::Application)
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Mailboxer do
4
+ it "should be valid" do
5
+ Mailboxer.should be_a(Module)
6
+ end
7
+ end
@@ -0,0 +1,39 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe MailboxerConversation do
4
+
5
+ before do
6
+ @entity1 = Factory(:user)
7
+ @entity2 = Factory(:user)
8
+ @mail1 = @entity1.send_message(@entity2,"Body","Subject")
9
+ @mail2 = @entity2.reply_to_all(@mail1,"Reply body 1")
10
+ @mail3 = @entity1.reply_to_all(@mail2,"Reply body 2")
11
+ @mail4 = @entity2.reply_to_all(@mail3,"Reply body 3")
12
+ @message1 = @mail1.mailboxer_message
13
+ @message4 = @mail4.mailboxer_message
14
+ @conversation = @message1.mailboxer_conversation
15
+ end
16
+
17
+ it "should have proper original message" do
18
+ @conversation.original_message.should==@message1
19
+ end
20
+
21
+ it "should have proper originator (first sender)" do
22
+ @conversation.originator.should==@entity1
23
+ end
24
+
25
+ it "should have proper last message" do
26
+ @conversation.last_message.should==@message4
27
+ end
28
+
29
+ it "should have proper last sender" do
30
+ @conversation.last_sender.should==@entity2
31
+ end
32
+
33
+ it "should have all conversation users" do
34
+ @conversation.get_recipients.count.should==2
35
+ @conversation.get_recipients.count(@entity1).should==1
36
+ @conversation.get_recipients.count(@entity2).should==1
37
+ end
38
+
39
+ end
@@ -0,0 +1,33 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe MailboxerMail do
4
+
5
+ before do
6
+ @entity1 = Factory(:user)
7
+ @entity2 = Factory(:user)
8
+ @mail1 = @entity1.send_message(@entity2,"Body","Subject")
9
+ end
10
+
11
+ it "should belong to a message" do
12
+ assert @mail1.mailboxer_message
13
+ end
14
+
15
+ it "should belong to a conversation" do
16
+ assert @mail1.mailboxer_conversation
17
+ end
18
+
19
+ it "should be able to be marked as unread" do
20
+ @mail1.read.should==true
21
+ @mail1.mark_as_unread
22
+ @mail1.read.should==false
23
+ end
24
+
25
+ it "should be able to be marked as read" do
26
+ @mail1.read.should==true
27
+ @mail1.mark_as_unread
28
+ @mail1.mark_as_read
29
+ @mail1.read.should==true
30
+ end
31
+
32
+
33
+ end
@@ -0,0 +1,99 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe MailboxerMailbox do
4
+
5
+ before do
6
+ @entity1 = Factory(:user)
7
+ @entity2 = Factory(:user)
8
+ @mail1 = @entity1.send_message(@entity2,"Body","Subject")
9
+ @mail2 = @entity2.reply_to_all(@mail1,"Reply body 1")
10
+ @mail3 = @entity1.reply_to_all(@mail2,"Reply body 2")
11
+ @mail4 = @entity2.reply_to_all(@mail3,"Reply body 3")
12
+ @message1 = @mail1.mailboxer_message
13
+ @message4 = @mail4.mailboxer_message
14
+ @conversation = @message1.mailboxer_conversation
15
+ end
16
+
17
+ it "should return all conversations" do
18
+ @conv2 = @entity1.send_message(@entity2,"Body","Subject").mailboxer_conversation
19
+ @conv3 = @entity2.send_message(@entity1,"Body","Subject").mailboxer_conversation
20
+ @conv4 = @entity1.send_message(@entity2,"Body","Subject").mailboxer_conversation
21
+
22
+ assert @entity1.mailbox.conversations
23
+
24
+ @entity1.mailbox.conversations.to_a.count.should==4
25
+ @entity1.mailbox.conversations.to_a.count(@conversation).should==1
26
+ @entity1.mailbox.conversations.to_a.count(@conv2).should==1
27
+ @entity1.mailbox.conversations.to_a.count(@conv3).should==1
28
+ @entity1.mailbox.conversations.to_a.count(@conv4).should==1
29
+ end
30
+
31
+ it "should return all mail" do
32
+ assert @entity1.mailbox.mail
33
+ @entity1.mailbox.mail.count.should==4
34
+ @entity1.mailbox.mail[0].should==MailboxerMail.receiver(@entity1).conversation(@conversation)[0]
35
+ @entity1.mailbox.mail[1].should==MailboxerMail.receiver(@entity1).conversation(@conversation)[1]
36
+ @entity1.mailbox.mail[2].should==MailboxerMail.receiver(@entity1).conversation(@conversation)[2]
37
+ @entity1.mailbox.mail[3].should==MailboxerMail.receiver(@entity1).conversation(@conversation)[3]
38
+
39
+ assert @entity2.mailbox.mail
40
+ @entity2.mailbox.mail.count.should==4
41
+ @entity2.mailbox.mail[0].should==MailboxerMail.receiver(@entity2).conversation(@conversation)[0]
42
+ @entity2.mailbox.mail[1].should==MailboxerMail.receiver(@entity2).conversation(@conversation)[1]
43
+ @entity2.mailbox.mail[2].should==MailboxerMail.receiver(@entity2).conversation(@conversation)[2]
44
+ @entity2.mailbox.mail[3].should==MailboxerMail.receiver(@entity2).conversation(@conversation)[3]
45
+ end
46
+
47
+ it "should return sentbox" do
48
+ assert @entity1.mailbox.inbox
49
+ @entity1.mailbox.sentbox.count.should==2
50
+ @entity1.mailbox.sentbox[0].should==@mail1
51
+ @entity1.mailbox.sentbox[1].should==@mail3
52
+
53
+ assert @entity2.mailbox.inbox
54
+ @entity2.mailbox.sentbox.count.should==2
55
+ @entity2.mailbox.sentbox[0].should==@mail2
56
+ @entity2.mailbox.sentbox[1].should==@mail4
57
+ end
58
+
59
+ it "should return inbox" do
60
+ assert @entity1.mailbox.inbox
61
+ @entity1.mailbox.inbox.count.should==2
62
+ @entity1.mailbox.inbox[0].should==MailboxerMail.receiver(@entity1).inbox.conversation(@conversation)[0]
63
+ @entity1.mailbox.inbox[1].should==MailboxerMail.receiver(@entity1).inbox.conversation(@conversation)[1]
64
+
65
+ assert @entity2.mailbox.inbox
66
+ @entity2.mailbox.inbox.count.should==2
67
+ @entity2.mailbox.inbox[0].should==MailboxerMail.receiver(@entity2).inbox.conversation(@conversation)[0]
68
+ @entity2.mailbox.inbox[1].should==MailboxerMail.receiver(@entity2).inbox.conversation(@conversation)[1]
69
+ end
70
+
71
+ it "should return trashed mails" do
72
+ @entity1.mailbox.mail.move_to_trash
73
+
74
+ assert @entity1.mailbox.trash
75
+ @entity1.mailbox.trash.count.should==4
76
+ @entity1.mailbox.trash[0].should==MailboxerMail.receiver(@entity1).conversation(@conversation)[0]
77
+ @entity1.mailbox.trash[1].should==MailboxerMail.receiver(@entity1).conversation(@conversation)[1]
78
+ @entity1.mailbox.trash[2].should==MailboxerMail.receiver(@entity1).conversation(@conversation)[2]
79
+ @entity1.mailbox.trash[3].should==MailboxerMail.receiver(@entity1).conversation(@conversation)[3]
80
+
81
+ assert @entity2.mailbox.trash
82
+ @entity2.mailbox.trash.count.should==0
83
+ end
84
+
85
+ it "should delete trashed mails" do
86
+ @entity1.mailbox.mail.move_to_trash
87
+ @entity1.mailbox.empty_trash
88
+
89
+ assert @entity1.mailbox.trash
90
+ @entity1.mailbox.trash.count.should==0
91
+
92
+ assert @entity2.mailbox.mail
93
+ @entity2.mailbox.mail.count.should==4
94
+
95
+ assert @entity2.mailbox.trash
96
+ @entity2.mailbox.trash.count.should==0
97
+ end
98
+
99
+ end
@@ -0,0 +1,107 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "Mailboxer::Models::Messageable through User" do
4
+
5
+ before do
6
+ @entity1 = Factory(:user)
7
+ @entity2 = Factory(:user)
8
+ end
9
+
10
+ it "should have a mailbox" do
11
+ assert @entity1.mailbox
12
+ end
13
+
14
+ it "should be able to send a message" do
15
+ assert @entity1.send_message(@entity2,"Body","Subject")
16
+ end
17
+
18
+ it "should be able to reply to sender" do
19
+ @mail = @entity1.send_message(@entity2,"Body","Subject")
20
+ assert @entity2.reply_to_sender(@mail,"Reply body")
21
+ end
22
+
23
+ it "should be able to reply to all" do
24
+ @mail = @entity1.send_message(@entity2,"Body","Subject")
25
+ assert @entity2.reply_to_all(@mail,"Reply body")
26
+ end
27
+
28
+ it "should be able to reply to conversation (TODO)" do
29
+ #TODO
30
+ end
31
+
32
+ it "should be able to unread an owned mail (mark as unread)" do
33
+ @mail = @entity1.send_message(@entity2,"Body","Subject")
34
+ @mail.read.should==true
35
+ @entity1.unread_mail(@mail)
36
+ @mail.read.should==false
37
+ end
38
+
39
+ it "should be able to read an owned mail (mark as read)" do
40
+ @mail = @entity1.send_message(@entity2,"Body","Subject")
41
+ @mail.read.should==true
42
+ @entity1.unread_mail(@mail)
43
+ @entity1.read_mail(@mail)
44
+ @mail.read.should==true
45
+ end
46
+
47
+ it "should be able to unread anot owned mail (mark as unread)" do
48
+ @mail = @entity1.send_message(@entity2,"Body","Subject")
49
+ @mail.read.should==true
50
+ @entity2.unread_mail(@mail) #Should not change
51
+ @mail.read.should==true
52
+ end
53
+
54
+ it "should be able to read a not owned mail (mark as read)" do
55
+ @mail = @entity1.send_message(@entity2,"Body","Subject")
56
+ @mail.read.should==true
57
+ @entity1.unread_mail(@mail) #From read to unread
58
+ @entity2.read_mail(@mail) #Should not change
59
+ @mail.read.should==false
60
+ end
61
+
62
+ it "should be able to read owned mails of a conversation" do
63
+ @mail1 = @entity1.send_message(@entity2,"Body","Subject")
64
+ @mail2 = @entity2.reply_to_all(@mail1,"Reply body 1")
65
+ @mail3 = @entity1.reply_to_all(@mail2,"Reply body 2")
66
+ @mail4 = @entity2.reply_to_all(@mail3,"Reply body 3")
67
+ @message1 = @mail1.mailboxer_message
68
+ @conversation = @message1.mailboxer_conversation
69
+
70
+ @entity1.read_conversation(@conversation)
71
+
72
+ @mails = @conversation.mailboxer_mails.receiver(@entity1)
73
+
74
+ @mails.each do |mail|
75
+ mail.read.should==true
76
+ end
77
+
78
+ end
79
+
80
+ it "should not be able to read not owned mails of a conversation" do
81
+ @mail1 = @entity1.send_message(@entity2,"Body","Subject")
82
+ @mail2 = @entity2.reply_to_all(@mail1,"Reply body 1")
83
+ @mail3 = @entity1.reply_to_all(@mail2,"Reply body 2")
84
+ @mail4 = @entity2.reply_to_all(@mail3,"Reply body 3")
85
+ @message1 = @mail1.mailboxer_message
86
+ @conversation = @message1.mailboxer_conversation
87
+
88
+ @entity2.read_conversation(@conversation)
89
+
90
+ @mails = @conversation.mailboxer_mails.receiver(@entity1)
91
+ @mails_total = @conversation.mailboxer_mails
92
+
93
+ unread_mails = 0
94
+
95
+ @mails.each do |mail|
96
+ unread_mails+=1 if !mail.read
97
+ end
98
+
99
+ unread_mails.should==2
100
+
101
+
102
+
103
+ end
104
+
105
+
106
+
107
+ end
@@ -0,0 +1,36 @@
1
+ # Configure Rails Envinronment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rspec/rails"
6
+
7
+ ActionMailer::Base.delivery_method = :test
8
+ ActionMailer::Base.perform_deliveries = true
9
+ ActionMailer::Base.default_url_options[:host] = "test.com"
10
+
11
+ Rails.backtrace_cleaner.remove_silencers!
12
+
13
+ # Configure capybara for integration testing
14
+ require "capybara/rails"
15
+ Capybara.default_driver = :rack_test
16
+ Capybara.default_selector = :css
17
+
18
+ # Run any available migration
19
+ ActiveRecord::Migrator.migrate File.expand_path("../dummy/db/migrate/", __FILE__)
20
+
21
+ # Load support files
22
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
23
+
24
+ # Load Factories
25
+ require 'factory_girl'
26
+ Dir["#{File.dirname(__FILE__)}/factories/*.rb"].each {|f| require f}
27
+
28
+ RSpec.configure do |config|
29
+ # Remove this line if you don't want RSpec's should and should_not
30
+ # methods or matchers
31
+ require 'rspec/expectations'
32
+ config.include RSpec::Matchers
33
+
34
+ # == Mock Framework
35
+ config.mock_with :rspec
36
+ end
metadata ADDED
@@ -0,0 +1,278 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mailboxer
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 2
10
+ version: 0.0.2
11
+ platform: ruby
12
+ authors:
13
+ - Eduardo Casanova Cuesta
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-03-10 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rails
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - "="
28
+ - !ruby/object:Gem::Version
29
+ hash: 13
30
+ segments:
31
+ - 3
32
+ - 0
33
+ - 5
34
+ version: 3.0.5
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: sqlite3-ruby
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: ruby-debug
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ hash: 49
60
+ segments:
61
+ - 0
62
+ - 10
63
+ - 3
64
+ version: 0.10.3
65
+ type: :development
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: rspec-rails
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 31098209
76
+ segments:
77
+ - 2
78
+ - 0
79
+ - 0
80
+ - beta
81
+ version: 2.0.0.beta
82
+ type: :runtime
83
+ version_requirements: *id004
84
+ - !ruby/object:Gem::Dependency
85
+ name: bundler
86
+ prerelease: false
87
+ requirement: &id005 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ~>
91
+ - !ruby/object:Gem::Version
92
+ hash: 23
93
+ segments:
94
+ - 1
95
+ - 0
96
+ - 0
97
+ version: 1.0.0
98
+ type: :runtime
99
+ version_requirements: *id005
100
+ - !ruby/object:Gem::Dependency
101
+ name: jeweler
102
+ prerelease: false
103
+ requirement: &id006 !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ~>
107
+ - !ruby/object:Gem::Version
108
+ hash: 270495430
109
+ segments:
110
+ - 1
111
+ - 5
112
+ - 0
113
+ - pre3
114
+ version: 1.5.0.pre3
115
+ type: :runtime
116
+ version_requirements: *id006
117
+ - !ruby/object:Gem::Dependency
118
+ name: rcov
119
+ prerelease: false
120
+ requirement: &id007 !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ hash: 3
126
+ segments:
127
+ - 0
128
+ version: "0"
129
+ type: :runtime
130
+ version_requirements: *id007
131
+ - !ruby/object:Gem::Dependency
132
+ name: factory_girl
133
+ prerelease: false
134
+ requirement: &id008 !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ~>
138
+ - !ruby/object:Gem::Version
139
+ hash: 31
140
+ segments:
141
+ - 1
142
+ - 3
143
+ - 2
144
+ version: 1.3.2
145
+ type: :development
146
+ version_requirements: *id008
147
+ - !ruby/object:Gem::Dependency
148
+ name: forgery
149
+ prerelease: false
150
+ requirement: &id009 !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ~>
154
+ - !ruby/object:Gem::Version
155
+ hash: 31
156
+ segments:
157
+ - 0
158
+ - 3
159
+ - 6
160
+ version: 0.3.6
161
+ type: :development
162
+ version_requirements: *id009
163
+ description: "A Rails engine that allows any model to act as messageable, permitting it interchange messages with any other messageable model. "
164
+ email: ecasanovac@gmail.com
165
+ executables: []
166
+
167
+ extensions: []
168
+
169
+ extra_rdoc_files:
170
+ - LICENSE.txt
171
+ - README.rdoc
172
+ files:
173
+ - .gitignore
174
+ - Gemfile
175
+ - LICENSE.txt
176
+ - README.rdoc
177
+ - Rakefile
178
+ - VERSION
179
+ - app/models/mailboxer_conversation.rb
180
+ - app/models/mailboxer_mail.rb
181
+ - app/models/mailboxer_mailbox.rb
182
+ - app/models/mailboxer_message.rb
183
+ - lib/generators/mailboxer/install_generator.rb
184
+ - lib/generators/mailboxer/templates/migration.rb
185
+ - lib/mailboxer.rb
186
+ - lib/mailboxer/engine.rb
187
+ - lib/mailboxer/models/messageable.rb
188
+ - mailboxer.gemspec
189
+ - spec/dummy/.project
190
+ - spec/dummy/Gemfile
191
+ - spec/dummy/Gemfile.lock
192
+ - spec/dummy/Rakefile
193
+ - spec/dummy/app/controllers/application_controller.rb
194
+ - spec/dummy/app/helpers/application_helper.rb
195
+ - spec/dummy/app/models/cylon.rb
196
+ - spec/dummy/app/models/duck.rb
197
+ - spec/dummy/app/models/user.rb
198
+ - spec/dummy/app/views/layouts/application.html.erb
199
+ - spec/dummy/config.ru
200
+ - spec/dummy/config/application.rb
201
+ - spec/dummy/config/boot.rb
202
+ - spec/dummy/config/database.yml
203
+ - spec/dummy/config/environment.rb
204
+ - spec/dummy/config/environments/development.rb
205
+ - spec/dummy/config/environments/production.rb
206
+ - spec/dummy/config/environments/test.rb
207
+ - spec/dummy/config/initializers/backtrace_silencers.rb
208
+ - spec/dummy/config/initializers/inflections.rb
209
+ - spec/dummy/config/initializers/mime_types.rb
210
+ - spec/dummy/config/initializers/secret_token.rb
211
+ - spec/dummy/config/initializers/session_store.rb
212
+ - spec/dummy/config/locales/en.yml
213
+ - spec/dummy/config/routes.rb
214
+ - spec/dummy/db/migrate/20110228120600_create_users.rb
215
+ - spec/dummy/db/migrate/20110303122122_create_mailboxer.rb
216
+ - spec/dummy/db/migrate/20110306002940_create_ducks.rb
217
+ - spec/dummy/db/migrate/20110306015107_create_cylons.rb
218
+ - spec/dummy/db/schema.rb
219
+ - spec/dummy/public/404.html
220
+ - spec/dummy/public/422.html
221
+ - spec/dummy/public/500.html
222
+ - spec/dummy/public/favicon.ico
223
+ - spec/dummy/public/javascripts/application.js
224
+ - spec/dummy/public/javascripts/controls.js
225
+ - spec/dummy/public/javascripts/dragdrop.js
226
+ - spec/dummy/public/javascripts/effects.js
227
+ - spec/dummy/public/javascripts/prototype.js
228
+ - spec/dummy/public/javascripts/rails.js
229
+ - spec/dummy/public/stylesheets/.gitkeep
230
+ - spec/dummy/public/stylesheets/scaffold.css
231
+ - spec/dummy/script/rails
232
+ - spec/factories/cylon.rb
233
+ - spec/factories/duck.rb
234
+ - spec/factories/user.rb
235
+ - spec/integration/mailboxer_message_and_mail_spec.rb
236
+ - spec/integration/navigation_spec.rb
237
+ - spec/mailboxer_spec.rb
238
+ - spec/models/mailboxer_conversation_spec.rb
239
+ - spec/models/mailboxer_mail_spec.rb
240
+ - spec/models/mailboxer_mailbox_spec.rb
241
+ - spec/models/mailboxer_models_messageable_spec.rb
242
+ - spec/spec_helper.rb
243
+ has_rdoc: true
244
+ homepage: http://github.com/ging/mailboxer
245
+ licenses:
246
+ - MIT
247
+ post_install_message:
248
+ rdoc_options: []
249
+
250
+ require_paths:
251
+ - lib
252
+ required_ruby_version: !ruby/object:Gem::Requirement
253
+ none: false
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ hash: 3
258
+ segments:
259
+ - 0
260
+ version: "0"
261
+ required_rubygems_version: !ruby/object:Gem::Requirement
262
+ none: false
263
+ requirements:
264
+ - - ">="
265
+ - !ruby/object:Gem::Version
266
+ hash: 3
267
+ segments:
268
+ - 0
269
+ version: "0"
270
+ requirements: []
271
+
272
+ rubyforge_project:
273
+ rubygems_version: 1.3.7
274
+ signing_key:
275
+ specification_version: 3
276
+ summary: Messaging system for rails apps.
277
+ test_files: []
278
+