mailboxer 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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
+