message_train 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (214) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.rspec +1 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +7 -0
  7. data/Gemfile +51 -0
  8. data/LICENSE.txt +20 -0
  9. data/README.rdoc +83 -0
  10. data/Rakefile +71 -0
  11. data/VERSION +1 -0
  12. data/app/assets/javascripts/message_train.js +138 -0
  13. data/app/assets/stylesheets/message_train.scss +107 -0
  14. data/app/controllers/message_train/application_controller.rb +64 -0
  15. data/app/controllers/message_train/boxes_controller.rb +37 -0
  16. data/app/controllers/message_train/conversations_controller.rb +38 -0
  17. data/app/controllers/message_train/messages_controller.rb +74 -0
  18. data/app/controllers/message_train/participants_controller.rb +36 -0
  19. data/app/helpers/message_train/application_helper.rb +4 -0
  20. data/app/helpers/message_train/boxes_helper.rb +30 -0
  21. data/app/helpers/message_train/conversations_helper.rb +73 -0
  22. data/app/helpers/message_train/messages_helper.rb +58 -0
  23. data/app/models/message_train/attachment.rb +17 -0
  24. data/app/models/message_train/box.rb +268 -0
  25. data/app/models/message_train/conversation.rb +101 -0
  26. data/app/models/message_train/ignore.rb +18 -0
  27. data/app/models/message_train/message.rb +146 -0
  28. data/app/models/message_train/receipt.rb +70 -0
  29. data/app/views/application/404.html.haml +3 -0
  30. data/app/views/message_train/application/results.json.jbuilder +8 -0
  31. data/app/views/message_train/boxes/_dropdown_list.html.haml +5 -0
  32. data/app/views/message_train/boxes/_list_item.html.haml +5 -0
  33. data/app/views/message_train/boxes/_widget.html.haml +6 -0
  34. data/app/views/message_train/boxes/show.html.haml +47 -0
  35. data/app/views/message_train/conversations/_conversation.html.haml +9 -0
  36. data/app/views/message_train/conversations/_deleted_toggle.html.haml +1 -0
  37. data/app/views/message_train/conversations/_ignored_toggle.html.haml +4 -0
  38. data/app/views/message_train/conversations/_read_toggle.html.haml +4 -0
  39. data/app/views/message_train/conversations/_toggle.html.haml +1 -0
  40. data/app/views/message_train/conversations/_trashed_toggle.html.haml +4 -0
  41. data/app/views/message_train/conversations/show.html.haml +11 -0
  42. data/app/views/message_train/conversations/show.json.jbuilder +2 -0
  43. data/app/views/message_train/messages/_deleted_toggle.html.haml +1 -0
  44. data/app/views/message_train/messages/_form.html.haml +8 -0
  45. data/app/views/message_train/messages/_message.html.haml +35 -0
  46. data/app/views/message_train/messages/_read_toggle.html.haml +4 -0
  47. data/app/views/message_train/messages/_toggle.html.haml +1 -0
  48. data/app/views/message_train/messages/_trashed_toggle.html.haml +4 -0
  49. data/app/views/message_train/messages/edit.html.haml +2 -0
  50. data/app/views/message_train/messages/new.html.haml +2 -0
  51. data/app/views/message_train/messages/show.json.jbuilder +2 -0
  52. data/app/views/message_train/participants/_field.html.haml +4 -0
  53. data/app/views/message_train/participants/_participant.json.jbuilder +5 -0
  54. data/app/views/message_train/participants/index.json.jbuilder +3 -0
  55. data/app/views/message_train/participants/show.json.jbuilder +1 -0
  56. data/bin/rails +12 -0
  57. data/config/initializers/bootstrap_pager_config.rb +10 -0
  58. data/config/initializers/date_time.rb +5 -0
  59. data/config/locales/en.yml +50 -0
  60. data/config/routes.rb +11 -0
  61. data/db/migrate/20150721145319_create_message_train_conversations.rb +9 -0
  62. data/db/migrate/20150721160322_create_message_train_messages.rb +14 -0
  63. data/db/migrate/20150721161144_create_message_train_attachments.rb +10 -0
  64. data/db/migrate/20150721161940_create_message_train_receipts.rb +16 -0
  65. data/db/migrate/20150721163838_create_message_train_ignores.rb +11 -0
  66. data/lib/generators/message_train/install/install_generator.rb +30 -0
  67. data/lib/generators/message_train/install/templates/initializer.rb +10 -0
  68. data/lib/generators/message_train/utils.rb +16 -0
  69. data/lib/message_train/configuration.rb +35 -0
  70. data/lib/message_train/engine.rb +19 -0
  71. data/lib/message_train/localization.rb +31 -0
  72. data/lib/message_train/mixin.rb +83 -0
  73. data/lib/message_train/version.rb +7 -0
  74. data/lib/message_train.rb +20 -0
  75. data/lib/tasks/message_train_tasks.rake +0 -0
  76. data/message_train.gemspec +325 -0
  77. data/night_train.gemspec +274 -0
  78. data/spec/controllers/message_train/boxes_controller_spec.rb +82 -0
  79. data/spec/controllers/message_train/conversations_controller_spec.rb +86 -0
  80. data/spec/controllers/message_train/messages_controller_spec.rb +210 -0
  81. data/spec/controllers/message_train/participants_controller_spec.rb +35 -0
  82. data/spec/dummy/.rspec +2 -0
  83. data/spec/dummy/Rakefile +6 -0
  84. data/spec/dummy/app/assets/files/message_train/attachments/1917-Boys_Race_Above-Wiki.jpg +0 -0
  85. data/spec/dummy/app/assets/files/message_train/attachments/ACD_Silverbarn's_Mayumi.jpg +0 -0
  86. data/spec/dummy/app/assets/files/message_train/attachments/ACD_obedience.jpg +0 -0
  87. data/spec/dummy/app/assets/files/message_train/attachments/A_Man_and_His_Dog.jpg +0 -0
  88. data/spec/dummy/app/assets/files/message_train/attachments/Alaskan_Malamute_agility_a-frame.jpg +0 -0
  89. data/spec/dummy/app/assets/files/message_train/attachments/American_water_spaniel_02.jpg +0 -0
  90. data/spec/dummy/app/assets/files/message_train/attachments/Aport_konkurs_rybnik.jpg +0 -0
  91. data/spec/dummy/app/assets/files/message_train/attachments/Askerhytta.jpg +0 -0
  92. data/spec/dummy/app/assets/files/message_train/attachments/Bambisj.jpg +0 -0
  93. data/spec/dummy/app/assets/files/message_train/attachments/Cattle_dog_skating.jpg +0 -0
  94. data/spec/dummy/app/assets/files/message_train/attachments/Dog's_Olympics_training_ground_-_geograph.org.uk_-_660324.jpg +0 -0
  95. data/spec/dummy/app/assets/files/message_train/attachments/DogShowHierarchy.png +0 -0
  96. data/spec/dummy/app/assets/files/message_train/attachments/Dog_weight_pull.jpg +0 -0
  97. data/spec/dummy/app/assets/files/message_train/attachments/Draghuntpostcard.jpg +0 -0
  98. data/spec/dummy/app/assets/files/message_train/attachments/Esham_51.JPG +0 -0
  99. data/spec/dummy/app/assets/files/message_train/attachments/FastCourseExample.jpg +0 -0
  100. data/spec/dummy/app/assets/files/message_train/attachments/Fotos_joel_141.JPG +0 -0
  101. data/spec/dummy/app/assets/files/message_train/attachments/Galgo_Spanish_male_brindle.jpg +0 -0
  102. data/spec/dummy/app/assets/files/message_train/attachments/Golden-retriever-carlos-bei-der-dummyarbeit.jpg +0 -0
  103. data/spec/dummy/app/assets/files/message_train/attachments/Habavk.jpg +0 -0
  104. data/spec/dummy/app/assets/files/message_train/attachments/Haie_rci.svg +1714 -0
  105. data/spec/dummy/app/assets/files/message_train/attachments/Hanging_18.jpg +0 -0
  106. data/spec/dummy/app/assets/files/message_train/attachments/Hundewa.jpg +0 -0
  107. data/spec/dummy/app/assets/files/message_train/attachments/K9ProSports_AttackOnHandler.jpg +0 -0
  108. data/spec/dummy/app/assets/files/message_train/attachments/K9ProSports_heel.jpg +0 -0
  109. data/spec/dummy/app/assets/files/message_train/attachments/K9Pro_Civil_agitation.JPG +0 -0
  110. data/spec/dummy/app/assets/files/message_train/attachments/TrainingSchutzhundRetrieveOverWall.jpg +0 -0
  111. data/spec/dummy/app/assets/files/message_train/attachments/example.pdf +0 -0
  112. data/spec/dummy/app/assets/files/message_train/attachments/letterlegal5.doc +0 -0
  113. data/spec/dummy/app/assets/files/message_train/attachments/pdf-sample.pdf +0 -0
  114. data/spec/dummy/app/assets/files/message_train/attachments/sample.pdf +0 -0
  115. data/spec/dummy/app/assets/files/message_train/attachments/tips.doc +0 -0
  116. data/spec/dummy/app/assets/files/message_train/attachments/wd-spectools-word-sample-04.doc +0 -0
  117. data/spec/dummy/app/assets/images/logo.svg +140 -0
  118. data/spec/dummy/app/assets/javascripts/application.js +17 -0
  119. data/spec/dummy/app/assets/stylesheets/application.css.scss +35 -0
  120. data/spec/dummy/app/controllers/application_controller.rb +14 -0
  121. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  122. data/spec/dummy/app/mailers/.keep +0 -0
  123. data/spec/dummy/app/models/.keep +0 -0
  124. data/spec/dummy/app/models/group.rb +19 -0
  125. data/spec/dummy/app/models/role.rb +10 -0
  126. data/spec/dummy/app/models/user.rb +23 -0
  127. data/spec/dummy/app/views/layouts/_top_navigation.html.haml +5 -0
  128. data/spec/dummy/app/views/layouts/application.html.haml +29 -0
  129. data/spec/dummy/bin/bundle +3 -0
  130. data/spec/dummy/bin/rails +4 -0
  131. data/spec/dummy/bin/rake +4 -0
  132. data/spec/dummy/bin/setup +29 -0
  133. data/spec/dummy/config/application.rb +40 -0
  134. data/spec/dummy/config/boot.rb +5 -0
  135. data/spec/dummy/config/database.yml +25 -0
  136. data/spec/dummy/config/environment.rb +5 -0
  137. data/spec/dummy/config/environments/development.rb +41 -0
  138. data/spec/dummy/config/environments/production.rb +79 -0
  139. data/spec/dummy/config/environments/test.rb +42 -0
  140. data/spec/dummy/config/initializers/assets.rb +11 -0
  141. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  142. data/spec/dummy/config/initializers/bootstrap_leather.rb +7 -0
  143. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  144. data/spec/dummy/config/initializers/devise.rb +265 -0
  145. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  146. data/spec/dummy/config/initializers/inflections.rb +16 -0
  147. data/spec/dummy/config/initializers/message_train.rb +10 -0
  148. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  149. data/spec/dummy/config/initializers/paperclip.rb +2 -0
  150. data/spec/dummy/config/initializers/rolify.rb +7 -0
  151. data/spec/dummy/config/initializers/session_store.rb +3 -0
  152. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  153. data/spec/dummy/config/locales/devise.en.yml +60 -0
  154. data/spec/dummy/config/locales/en.yml +23 -0
  155. data/spec/dummy/config/routes.rb +5 -0
  156. data/spec/dummy/config/secrets.yml +22 -0
  157. data/spec/dummy/config/unused/temporary_i18n_debugging.rb +12 -0
  158. data/spec/dummy/config.ru +4 -0
  159. data/spec/dummy/db/migrate/20150721140013_devise_create_users.rb +42 -0
  160. data/spec/dummy/db/migrate/20150721141009_rolify_create_roles.rb +19 -0
  161. data/spec/dummy/db/migrate/20150721141128_create_groups.rb +11 -0
  162. data/spec/dummy/db/migrate/20150721150307_add_display_name_column_to_users.rb +6 -0
  163. data/spec/dummy/db/migrate/20150724142846_create_message_train_conversations.night_train.rb +10 -0
  164. data/spec/dummy/db/migrate/20150724142847_create_message_train_messages.night_train.rb +15 -0
  165. data/spec/dummy/db/migrate/20150724142848_create_message_train_attachments.night_train.rb +11 -0
  166. data/spec/dummy/db/migrate/20150724142849_create_message_train_receipts.night_train.rb +17 -0
  167. data/spec/dummy/db/migrate/20150724142850_create_message_train_ignores.night_train.rb +12 -0
  168. data/spec/dummy/db/schema.rb +121 -0
  169. data/spec/dummy/db/seeds/conversations.seeds.rb +86 -0
  170. data/spec/dummy/db/seeds/development/conversations.seeds.rb +9 -0
  171. data/spec/dummy/db/seeds/groups.seeds.rb +9 -0
  172. data/spec/dummy/db/seeds/test/conversations.seeds.rb +9 -0
  173. data/spec/dummy/db/seeds/users.seeds.rb +15 -0
  174. data/spec/dummy/db/seeds.rb +0 -0
  175. data/spec/dummy/db/test.sqlite3 +0 -0
  176. data/spec/dummy/lib/assets/.keep +0 -0
  177. data/spec/dummy/log/.keep +0 -0
  178. data/spec/dummy/public/404.html +67 -0
  179. data/spec/dummy/public/422.html +67 -0
  180. data/spec/dummy/public/500.html +66 -0
  181. data/spec/dummy/public/capybara.html +193 -0
  182. data/spec/dummy/public/favicon.ico +0 -0
  183. data/spec/factories/attachment.rb +6 -0
  184. data/spec/factories/group.rb +20 -0
  185. data/spec/factories/message.rb +68 -0
  186. data/spec/factories/user.rb +8 -0
  187. data/spec/features/boxes_spec.rb +50 -0
  188. data/spec/features/conversations_spec.rb +36 -0
  189. data/spec/features/messages_spec.rb +53 -0
  190. data/spec/helpers/message_train/boxes_helper_spec.rb +44 -0
  191. data/spec/message_train_spec.rb +7 -0
  192. data/spec/models/group_spec.rb +23 -0
  193. data/spec/models/message_train/attachment_spec.rb +12 -0
  194. data/spec/models/message_train/box_spec.rb +195 -0
  195. data/spec/models/message_train/conversation_spec.rb +98 -0
  196. data/spec/models/message_train/ignore_spec.rb +27 -0
  197. data/spec/models/message_train/message_spec.rb +83 -0
  198. data/spec/models/message_train/receipt_spec.rb +73 -0
  199. data/spec/models/user_spec.rb +68 -0
  200. data/spec/rails_helper.rb +83 -0
  201. data/spec/spec_helper.rb +92 -0
  202. data/spec/support/controller_behaviors.rb +88 -0
  203. data/spec/support/controller_macros.rb +13 -0
  204. data/spec/support/conversations.rb +10 -0
  205. data/spec/support/factory_girl.rb +3 -0
  206. data/spec/support/feature_behaviors.rb +62 -0
  207. data/spec/support/groups.rb +3 -0
  208. data/spec/support/loaded_site.rb +5 -0
  209. data/spec/support/shared_connection.rb +13 -0
  210. data/spec/support/users.rb +6 -0
  211. data/spec/support/utilities.rb +8 -0
  212. data/vendor/assets/javascripts/bootstrap-tags.js +623 -0
  213. data/vendor/assets/stylesheets/bootstrap-tags.css +78 -0
  214. metadata +608 -0
@@ -0,0 +1,274 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: message_train 0.0.1 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "message_train"
9
+ s.version = "0.0.1"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
13
+ s.authors = ["Karen Lundgren"]
14
+ s.date = "2015-08-03"
15
+ s.description = "Private/public messaging for any object, such as Users or Groups"
16
+ s.email = "karen.e.lundgren@gmail.com"
17
+ s.executables = ["rails"]
18
+ s.extra_rdoc_files = [
19
+ "LICENSE.txt",
20
+ "README.rdoc"
21
+ ]
22
+ s.files = [
23
+ ".document",
24
+ ".rspec",
25
+ ".ruby-gemset",
26
+ ".ruby-version",
27
+ ".travis.yml",
28
+ "Gemfile",
29
+ "LICENSE.txt",
30
+ "README.rdoc",
31
+ "Rakefile",
32
+ "VERSION",
33
+ "app/assets/javascripts/message_train.js",
34
+ "app/assets/stylesheets/message_train.css.scss",
35
+ "app/controllers/message_train/application_controller.rb",
36
+ "app/controllers/message_train/boxes_controller.rb",
37
+ "app/helpers/message_train/application_helper.rb",
38
+ "app/helpers/message_train/boxes_helper.rb",
39
+ "app/models/message_train/attachment.rb",
40
+ "app/models/message_train/box.rb",
41
+ "app/models/message_train/conversation.rb",
42
+ "app/models/message_train/ignore.rb",
43
+ "app/models/message_train/message.rb",
44
+ "app/models/message_train/receipt.rb",
45
+ "app/views/message_train/boxes/_dropdown_list.html.haml",
46
+ "app/views/message_train/boxes/_list_item.html.haml",
47
+ "app/views/message_train/boxes/_widget.html.haml",
48
+ "app/views/message_train/boxes/show.html.haml",
49
+ "bin/rails",
50
+ "config/locales/en.yml",
51
+ "config/routes.rb",
52
+ "db/migrate/20150721145319_create_message_train_conversations.rb",
53
+ "db/migrate/20150721160322_create_message_train_messages.rb",
54
+ "db/migrate/20150721161144_create_message_train_attachments.rb",
55
+ "db/migrate/20150721161940_create_message_train_receipts.rb",
56
+ "db/migrate/20150721163838_create_message_train_ignores.rb",
57
+ "lib/generators/message_train/install/install_generator.rb",
58
+ "lib/generators/message_train/install/templates/initializer.rb",
59
+ "lib/generators/message_train/utils.rb",
60
+ "lib/message_train.rb",
61
+ "lib/message_train/configuration.rb",
62
+ "lib/message_train/engine.rb",
63
+ "lib/message_train/localization.rb",
64
+ "lib/message_train/mixin.rb",
65
+ "lib/message_train/version.rb",
66
+ "lib/tasks/message_train_tasks.rake",
67
+ "message_train.gemspec",
68
+ "spec/controllers/message_train/boxes_controller_spec.rb",
69
+ "spec/dummy/.rspec",
70
+ "spec/dummy/Rakefile",
71
+ "spec/dummy/app/assets/files/message_train/attachments/1917-Boys_Race_Above-Wiki.jpg",
72
+ "spec/dummy/app/assets/files/message_train/attachments/ACD_Silverbarn's_Mayumi.jpg",
73
+ "spec/dummy/app/assets/files/message_train/attachments/ACD_obedience.jpg",
74
+ "spec/dummy/app/assets/files/message_train/attachments/A_Man_and_His_Dog.jpg",
75
+ "spec/dummy/app/assets/files/message_train/attachments/Alaskan_Malamute_agility_a-frame.jpg",
76
+ "spec/dummy/app/assets/files/message_train/attachments/American_water_spaniel_02.jpg",
77
+ "spec/dummy/app/assets/files/message_train/attachments/Aport_konkurs_rybnik.jpg",
78
+ "spec/dummy/app/assets/files/message_train/attachments/Askerhytta.jpg",
79
+ "spec/dummy/app/assets/files/message_train/attachments/Bambisj.jpg",
80
+ "spec/dummy/app/assets/files/message_train/attachments/Cattle_dog_skating.jpg",
81
+ "spec/dummy/app/assets/files/message_train/attachments/Dog's_Olympics_training_ground_-_geograph.org.uk_-_660324.jpg",
82
+ "spec/dummy/app/assets/files/message_train/attachments/DogShowHierarchy.png",
83
+ "spec/dummy/app/assets/files/message_train/attachments/Dog_weight_pull.jpg",
84
+ "spec/dummy/app/assets/files/message_train/attachments/Draghuntpostcard.jpg",
85
+ "spec/dummy/app/assets/files/message_train/attachments/Esham_51.JPG",
86
+ "spec/dummy/app/assets/files/message_train/attachments/FastCourseExample.jpg",
87
+ "spec/dummy/app/assets/files/message_train/attachments/Fotos_joel_141.JPG",
88
+ "spec/dummy/app/assets/files/message_train/attachments/Galgo_Spanish_male_brindle.jpg",
89
+ "spec/dummy/app/assets/files/message_train/attachments/Golden-retriever-carlos-bei-der-dummyarbeit.jpg",
90
+ "spec/dummy/app/assets/files/message_train/attachments/Habavk.jpg",
91
+ "spec/dummy/app/assets/files/message_train/attachments/Haie_rci.svg",
92
+ "spec/dummy/app/assets/files/message_train/attachments/Hanging_18.jpg",
93
+ "spec/dummy/app/assets/files/message_train/attachments/Hundewa.jpg",
94
+ "spec/dummy/app/assets/files/message_train/attachments/K9ProSports_AttackOnHandler.jpg",
95
+ "spec/dummy/app/assets/files/message_train/attachments/K9ProSports_heel.jpg",
96
+ "spec/dummy/app/assets/files/message_train/attachments/K9Pro_Civil_agitation.JPG",
97
+ "spec/dummy/app/assets/files/message_train/attachments/TrainingSchutzhundRetrieveOverWall.jpg",
98
+ "spec/dummy/app/assets/files/message_train/attachments/example.pdf",
99
+ "spec/dummy/app/assets/files/message_train/attachments/letterlegal5.doc",
100
+ "spec/dummy/app/assets/files/message_train/attachments/pdf-sample.pdf",
101
+ "spec/dummy/app/assets/files/message_train/attachments/sample.pdf",
102
+ "spec/dummy/app/assets/files/message_train/attachments/tips.doc",
103
+ "spec/dummy/app/assets/files/message_train/attachments/wd-spectools-word-sample-04.doc",
104
+ "spec/dummy/app/assets/images/logo.svg",
105
+ "spec/dummy/app/assets/javascripts/application.js",
106
+ "spec/dummy/app/assets/stylesheets/application.css.scss",
107
+ "spec/dummy/app/controllers/application_controller.rb",
108
+ "spec/dummy/app/helpers/application_helper.rb",
109
+ "spec/dummy/app/mailers/.keep",
110
+ "spec/dummy/app/models/.keep",
111
+ "spec/dummy/app/models/group.rb",
112
+ "spec/dummy/app/models/role.rb",
113
+ "spec/dummy/app/models/user.rb",
114
+ "spec/dummy/app/views/layouts/_top_navigation.html.haml",
115
+ "spec/dummy/app/views/layouts/application.html.haml",
116
+ "spec/dummy/bin/bundle",
117
+ "spec/dummy/bin/rails",
118
+ "spec/dummy/bin/rake",
119
+ "spec/dummy/bin/setup",
120
+ "spec/dummy/config.ru",
121
+ "spec/dummy/config/application.rb",
122
+ "spec/dummy/config/boot.rb",
123
+ "spec/dummy/config/database.yml",
124
+ "spec/dummy/config/environment.rb",
125
+ "spec/dummy/config/environments/development.rb",
126
+ "spec/dummy/config/environments/production.rb",
127
+ "spec/dummy/config/environments/test.rb",
128
+ "spec/dummy/config/initializers/assets.rb",
129
+ "spec/dummy/config/initializers/backtrace_silencers.rb",
130
+ "spec/dummy/config/initializers/bootstrap_leather.rb",
131
+ "spec/dummy/config/initializers/cookies_serializer.rb",
132
+ "spec/dummy/config/initializers/devise.rb",
133
+ "spec/dummy/config/initializers/filter_parameter_logging.rb",
134
+ "spec/dummy/config/initializers/inflections.rb",
135
+ "spec/dummy/config/initializers/mime_types.rb",
136
+ "spec/dummy/config/initializers/message_train.rb",
137
+ "spec/dummy/config/initializers/paperclip.rb",
138
+ "spec/dummy/config/initializers/rolify.rb",
139
+ "spec/dummy/config/initializers/session_store.rb",
140
+ "spec/dummy/config/initializers/wrap_parameters.rb",
141
+ "spec/dummy/config/locales/devise.en.yml",
142
+ "spec/dummy/config/locales/en.yml",
143
+ "spec/dummy/config/routes.rb",
144
+ "spec/dummy/config/secrets.yml",
145
+ "spec/dummy/db/development.sqlite3",
146
+ "spec/dummy/db/migrate/20150721140013_devise_create_users.rb",
147
+ "spec/dummy/db/migrate/20150721141009_rolify_create_roles.rb",
148
+ "spec/dummy/db/migrate/20150721141128_create_groups.rb",
149
+ "spec/dummy/db/migrate/20150721150307_add_display_name_column_to_users.rb",
150
+ "spec/dummy/db/migrate/20150724142846_create_message_train_conversations.message_train.rb",
151
+ "spec/dummy/db/migrate/20150724142847_create_message_train_messages.message_train.rb",
152
+ "spec/dummy/db/migrate/20150724142848_create_message_train_attachments.message_train.rb",
153
+ "spec/dummy/db/migrate/20150724142849_create_message_train_receipts.message_train.rb",
154
+ "spec/dummy/db/migrate/20150724142850_create_message_train_ignores.message_train.rb",
155
+ "spec/dummy/db/schema.rb",
156
+ "spec/dummy/db/seeds.rb",
157
+ "spec/dummy/db/seeds/conversations.seeds.rb",
158
+ "spec/dummy/db/seeds/groups.seeds.rb",
159
+ "spec/dummy/db/seeds/users.seeds.rb",
160
+ "spec/dummy/db/test.sqlite3",
161
+ "spec/dummy/lib/assets/.keep",
162
+ "spec/dummy/log/.keep",
163
+ "spec/dummy/public/404.html",
164
+ "spec/dummy/public/422.html",
165
+ "spec/dummy/public/500.html",
166
+ "spec/dummy/public/favicon.ico",
167
+ "spec/factories/attachment.rb",
168
+ "spec/factories/group.rb",
169
+ "spec/factories/message.rb",
170
+ "spec/factories/user.rb",
171
+ "spec/features/boxes_spec.rb",
172
+ "spec/helpers/message_train/boxes_helper_spec.rb",
173
+ "spec/models/group_spec.rb",
174
+ "spec/models/message_train/attachment_spec.rb",
175
+ "spec/models/message_train/box_spec.rb",
176
+ "spec/models/message_train/conversation_spec.rb",
177
+ "spec/models/message_train/ignore_spec.rb",
178
+ "spec/models/message_train/message_spec.rb",
179
+ "spec/models/message_train/receipt_spec.rb",
180
+ "spec/models/user_spec.rb",
181
+ "spec/message_train_spec.rb",
182
+ "spec/rails_helper.rb",
183
+ "spec/routing/message_train/boxes_routing_spec.rb",
184
+ "spec/spec_helper.rb",
185
+ "spec/support/controller_behaviors.rb",
186
+ "spec/support/controller_macros.rb",
187
+ "spec/support/conversations.rb",
188
+ "spec/support/factory_girl.rb",
189
+ "spec/support/feature_behaviors.rb",
190
+ "spec/support/groups.rb",
191
+ "spec/support/loaded_site.rb",
192
+ "spec/support/users.rb"
193
+ ]
194
+ s.homepage = "http://www.gemvein.com/museum/cases/message_train"
195
+ s.licenses = ["MIT"]
196
+ s.rubygems_version = "2.4.5"
197
+ s.summary = "Messaging for any object"
198
+
199
+ if s.respond_to? :specification_version then
200
+ s.specification_version = 4
201
+
202
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
203
+ s.add_runtime_dependency(%q<rails>, ["~> 4"])
204
+ s.add_runtime_dependency(%q<paperclip>, ["~> 4.3"])
205
+ s.add_runtime_dependency(%q<rails-i18n>, ["~> 4"])
206
+ s.add_runtime_dependency(%q<haml-rails>, ["~> 0.9"])
207
+ s.add_runtime_dependency(%q<jquery-rails>, ["~> 4"])
208
+ s.add_runtime_dependency(%q<uglifier>, ["~> 2.7"])
209
+ s.add_runtime_dependency(%q<bootstrap_leather>, ["~> 0.8"])
210
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
211
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
212
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
213
+ s.add_development_dependency(%q<sqlite3>, ["~> 1.3"])
214
+ s.add_development_dependency(%q<devise>, ["~> 3.5"])
215
+ s.add_development_dependency(%q<rolify>, ["~> 4"])
216
+ s.add_development_dependency(%q<faker>, ["~> 1.4"])
217
+ s.add_development_dependency(%q<rspec-rails>, ["~> 3.2"])
218
+ s.add_development_dependency(%q<rspec-its>, ["~> 1.2"])
219
+ s.add_development_dependency(%q<factory_girl_rails>, ["~> 4.5"])
220
+ s.add_development_dependency(%q<seedbank>, ["~> 0.3"])
221
+ s.add_development_dependency(%q<friendly_id>, ["~> 5"])
222
+ s.add_development_dependency(%q<byebug>, ["~> 5"])
223
+ s.add_development_dependency(%q<sass-rails>, ["~> 5"])
224
+ s.add_development_dependency(%q<bootstrap-sass>, ["~> 3.3"])
225
+ else
226
+ s.add_dependency(%q<rails>, ["~> 4"])
227
+ s.add_dependency(%q<paperclip>, ["~> 4.3"])
228
+ s.add_dependency(%q<rails-i18n>, ["~> 4"])
229
+ s.add_dependency(%q<haml-rails>, ["~> 0.9"])
230
+ s.add_dependency(%q<jquery-rails>, ["~> 4"])
231
+ s.add_dependency(%q<uglifier>, ["~> 2.7"])
232
+ s.add_dependency(%q<bootstrap_leather>, ["~> 0.8"])
233
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
234
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
235
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
236
+ s.add_dependency(%q<sqlite3>, ["~> 1.3"])
237
+ s.add_dependency(%q<devise>, ["~> 3.5"])
238
+ s.add_dependency(%q<rolify>, ["~> 4"])
239
+ s.add_dependency(%q<faker>, ["~> 1.4"])
240
+ s.add_dependency(%q<rspec-rails>, ["~> 3.2"])
241
+ s.add_dependency(%q<rspec-its>, ["~> 1.2"])
242
+ s.add_dependency(%q<factory_girl_rails>, ["~> 4.5"])
243
+ s.add_dependency(%q<seedbank>, ["~> 0.3"])
244
+ s.add_dependency(%q<friendly_id>, ["~> 5"])
245
+ s.add_dependency(%q<byebug>, ["~> 5"])
246
+ s.add_dependency(%q<sass-rails>, ["~> 5"])
247
+ s.add_dependency(%q<bootstrap-sass>, ["~> 3.3"])
248
+ end
249
+ else
250
+ s.add_dependency(%q<rails>, ["~> 4"])
251
+ s.add_dependency(%q<paperclip>, ["~> 4.3"])
252
+ s.add_dependency(%q<rails-i18n>, ["~> 4"])
253
+ s.add_dependency(%q<haml-rails>, ["~> 0.9"])
254
+ s.add_dependency(%q<jquery-rails>, ["~> 4"])
255
+ s.add_dependency(%q<uglifier>, ["~> 2.7"])
256
+ s.add_dependency(%q<bootstrap_leather>, ["~> 0.8"])
257
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
258
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
259
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
260
+ s.add_dependency(%q<sqlite3>, ["~> 1.3"])
261
+ s.add_dependency(%q<devise>, ["~> 3.5"])
262
+ s.add_dependency(%q<rolify>, ["~> 4"])
263
+ s.add_dependency(%q<faker>, ["~> 1.4"])
264
+ s.add_dependency(%q<rspec-rails>, ["~> 3.2"])
265
+ s.add_dependency(%q<rspec-its>, ["~> 1.2"])
266
+ s.add_dependency(%q<factory_girl_rails>, ["~> 4.5"])
267
+ s.add_dependency(%q<seedbank>, ["~> 0.3"])
268
+ s.add_dependency(%q<friendly_id>, ["~> 5"])
269
+ s.add_dependency(%q<byebug>, ["~> 5"])
270
+ s.add_dependency(%q<sass-rails>, ["~> 5"])
271
+ s.add_dependency(%q<bootstrap-sass>, ["~> 3.3"])
272
+ end
273
+ end
274
+
@@ -0,0 +1,82 @@
1
+ require 'rails_helper'
2
+
3
+ describe MessageTrain::BoxesController do
4
+ include_context 'loaded site'
5
+ include ControllerMacros
6
+ routes { MessageTrain::Engine.routes }
7
+
8
+ let(:valid_params) { { 'conversations' => {unread_conversation.id.to_s => unread_conversation.id} } }
9
+ let(:invalid_params) { { 'conversations' => {'999' => 999} } }
10
+
11
+ before do
12
+ login_user first_user
13
+ end
14
+
15
+ describe "GET #show" do
16
+ before do
17
+ get :show, division: 'in'
18
+ end
19
+ it_should_behave_like 'a successful page', which_renders: 'show'
20
+
21
+ context 'loads box into @box' do
22
+ subject { assigns(:box) }
23
+ it { should be_a MessageTrain::Box }
24
+ end
25
+
26
+ context 'loads conversations into @conversations' do
27
+ subject { assigns(:conversations) }
28
+ its(:first) { should be_a MessageTrain::Conversation }
29
+ it { should have_at_least(2).items }
30
+ end
31
+ end
32
+
33
+ describe "PATCH/PUT #update" do
34
+ describe 'with invalid params' do
35
+ before do
36
+ put :update, division: 'in', mark_to_set: 'read', objects: invalid_params
37
+ end
38
+ it_should_behave_like 'a page with an error message', "Conversation 999 not found in box"
39
+ end
40
+ describe 'without params' do
41
+ before do
42
+ put :update, division: 'in'
43
+ end
44
+ it_should_behave_like 'a page with an alert message', 'Nothing to do'
45
+ end
46
+ describe 'with valid params' do
47
+ before do
48
+ put :update, division: 'in', mark_to_set: 'read', objects: valid_params
49
+ end
50
+ it_should_behave_like 'a page with a notice message', 'Update successful'
51
+ end
52
+ end
53
+
54
+ describe "DELETE #destroy" do
55
+ describe 'with invalid params' do
56
+ before do
57
+ delete :destroy, division: 'in', mark_to_set: 'ignore', objects: invalid_params
58
+ end
59
+ it_should_behave_like 'a page with an error message', "Conversation 999 not found in box"
60
+ end
61
+ describe 'without params' do
62
+ before do
63
+ delete :destroy, division: 'in'
64
+ end
65
+ it_should_behave_like 'a page with an alert message', 'Nothing to do'
66
+ end
67
+ describe 'with valid params' do
68
+ context 'ignoring' do
69
+ before do
70
+ delete :destroy, division: 'in', mark_to_set: 'ignore', objects: valid_params
71
+ end
72
+ it_should_behave_like 'a page with a notice message', 'Update successful'
73
+ end
74
+ context 'unignoring' do
75
+ before do
76
+ delete :destroy, division: 'in', mark_to_set: 'unignore', objects: valid_params
77
+ end
78
+ it_should_behave_like 'a page with a notice message', 'Update successful'
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,86 @@
1
+ require 'rails_helper'
2
+
3
+ describe MessageTrain::ConversationsController do
4
+ include_context 'loaded site'
5
+ include ControllerMacros
6
+ routes { MessageTrain::Engine.routes }
7
+
8
+ let(:valid_params) { { 'messages' => {unread_conversation.messages.first.id.to_s => unread_conversation.messages.first.id} } }
9
+ let(:invalid_params) { { 'messages' => {'999999' => 999999} } }
10
+
11
+ before do
12
+ login_user first_user
13
+ end
14
+
15
+ describe "GET #show" do
16
+ before do
17
+ get :show, box_division: 'in', id: unread_conversation.id
18
+ end
19
+ it_should_behave_like 'a successful page', which_renders: 'show'
20
+
21
+ context 'loads box into @box' do
22
+ subject { assigns(:box) }
23
+ it { should be_a MessageTrain::Box }
24
+ end
25
+
26
+ context 'loads conversation into @conversation' do
27
+ subject { assigns(:conversation) }
28
+ it { should eq unread_conversation }
29
+ end
30
+
31
+ context 'loads messages into @messages' do
32
+ subject { assigns(:messages) }
33
+ it { should include unread_conversation.messages.first }
34
+ end
35
+ end
36
+
37
+ describe "PATCH/PUT #update" do
38
+ describe 'with invalid params' do
39
+ before do
40
+ put :update, box_division: 'in', id: unread_conversation.id, mark_to_set: 'read', objects: invalid_params
41
+ end
42
+ it_should_behave_like 'a page with an error message', "Message 999999 not found in box"
43
+ end
44
+ describe 'without params' do
45
+ before do
46
+ put :update, box_division: 'in', id: unread_conversation.id
47
+ end
48
+ it_should_behave_like 'a page with an alert message', 'Nothing to do'
49
+ end
50
+ describe 'with valid params' do
51
+ before do
52
+ put :update, box_division: 'in', id: unread_conversation.id, mark_to_set: 'read', objects: valid_params
53
+ end
54
+ it_should_behave_like 'a page with a notice message', 'Update successful'
55
+ end
56
+ end
57
+
58
+ describe "DELETE #destroy" do
59
+ describe 'with invalid params' do
60
+ before do
61
+ delete :destroy, box_division: 'in', id: 999, mark_to_set: 'ignore'
62
+ end
63
+ it_should_behave_like 'a 404 Not Found error'
64
+ end
65
+ describe 'without params' do
66
+ before do
67
+ delete :destroy, box_division: 'in', id: unread_conversation.id
68
+ end
69
+ it_should_behave_like 'a page with an alert message', 'Nothing to do'
70
+ end
71
+ describe 'with valid params' do
72
+ context 'ignoring' do
73
+ before do
74
+ delete :destroy, box_division: 'in', id: unread_conversation.id, mark_to_set: 'ignore'
75
+ end
76
+ it_should_behave_like 'a page with a notice message', 'Update successful'
77
+ end
78
+ context 'unignoring' do
79
+ before do
80
+ delete :destroy, box_division: 'in', id: unread_conversation.id, mark_to_set: 'unignore'
81
+ end
82
+ it_should_behave_like 'a page with a notice message', 'Update successful'
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,210 @@
1
+ require 'rails_helper'
2
+
3
+ describe MessageTrain::MessagesController do
4
+ include_context 'loaded site'
5
+ include ControllerMacros
6
+ routes { MessageTrain::Engine.routes }
7
+
8
+ # This should return the minimal set of attributes required to create a valid
9
+ # Dog. As you add validations to Dog, be sure to
10
+ # adjust the attributes here as well.
11
+ let(:valid_attributes) {
12
+ { subject: 'Test Subject', recipients_to_save: {'users' => 'second-user, third-user'}, draft: false }
13
+ }
14
+
15
+ let(:draft_attributes) {
16
+ { subject: 'Test Subject', recipients_to_save: {'users' => ''} }
17
+ }
18
+
19
+ let(:invalid_attributes) {
20
+ { subject: nil }
21
+ }
22
+
23
+ let(:draft_message) { draft_conversation.messages.first }
24
+
25
+ before do
26
+ login_user first_user
27
+ end
28
+
29
+ describe "GET #show" do
30
+ before do
31
+ get :show, box_division: 'in', id: unread_conversation.messages.first.id, format: :json
32
+ end
33
+ it_should_behave_like 'a successful page', which_renders: 'show'
34
+
35
+ context 'loads box into @box' do
36
+ subject { assigns(:box) }
37
+ it { should be_a MessageTrain::Box }
38
+ end
39
+
40
+ context 'loads message into @message' do
41
+ subject { assigns(:message) }
42
+ it { should eq unread_conversation.messages.first }
43
+ end
44
+ end
45
+
46
+ describe "GET #new" do
47
+ before do
48
+ get :new, box_division: 'in', conversation_id: unread_conversation.messages.first.conversation_id
49
+ end
50
+ it_should_behave_like 'a successful page', which_renders: 'new'
51
+
52
+ context 'loads box into @box' do
53
+ subject { assigns(:box) }
54
+ it { should be_a MessageTrain::Box }
55
+ end
56
+
57
+ context 'loads message into @message' do
58
+ subject { assigns(:message) }
59
+ it { should be_a_new MessageTrain::Message }
60
+ its(:subject) { should eq 'Re: Unread Conversation' }
61
+ end
62
+ end
63
+
64
+ describe "GET #edit" do
65
+ describe 'as someone other than the owner' do
66
+ before do
67
+ get :edit, box_division: 'in', id: someone_elses_conversation.messages.first.id
68
+ end
69
+ it_should_behave_like 'a 404 Not Found error'
70
+ end
71
+ describe 'as the owner' do
72
+ describe 'when message is a not a draft' do
73
+ before do
74
+ get :edit, box_division: 'in', id: unread_conversation.messages.first.id
75
+ end
76
+ it_should_behave_like 'a 404 Not Found error'
77
+ end
78
+ describe 'when message is a draft' do
79
+ before do
80
+ get :edit, box_division: 'in', id: draft_message.id
81
+ end
82
+ it_should_behave_like 'a successful page', which_renders: 'edit'
83
+
84
+ context 'loads requested message into @message' do
85
+ subject { assigns(:message) }
86
+ it { should eq draft_message }
87
+ end
88
+ end
89
+ end
90
+ end
91
+
92
+ describe "POST #create" do
93
+ describe 'with valid attributes' do
94
+ describe 'when draft' do
95
+ before do
96
+ post :create, box_division: 'in', message: draft_attributes
97
+ end
98
+ it_should_behave_like 'a redirect to', '/box/drafts'
99
+ it_should_behave_like 'a response without error'
100
+
101
+ context "sets the flash with an alert of the messages's draft status" do
102
+ subject { flash[:alert] }
103
+ it { should eq 'Message saved as draft.'}
104
+ end
105
+ end
106
+ describe 'when not draft' do
107
+ before do
108
+ post :create, box_division: 'in', message: valid_attributes
109
+ end
110
+ it_should_behave_like 'a redirect to', '/box/sent'
111
+ it_should_behave_like 'a response without error'
112
+
113
+ context "sets the flash with a notice of the messages's creation" do
114
+ subject { flash[:notice] }
115
+ it { should eq 'Message sent.'}
116
+ end
117
+ end
118
+ end
119
+ describe 'with valid attributes, counting' do
120
+ it 'results in a new message' do
121
+ expect { post :create, box_division: 'in', message: valid_attributes }.to change { MessageTrain::Message.count }.by(1)
122
+ end
123
+ end
124
+ describe 'with invalid params' do
125
+ before do
126
+ post :create, box_division: 'in', message: invalid_attributes
127
+ end
128
+ it_should_behave_like 'a successful page', which_renders: 'new'
129
+
130
+ context 'loads the given message into @message' do
131
+ subject { assigns(:message) }
132
+ it { should be_a_new(MessageTrain::Message).with(invalid_attributes) }
133
+ end
134
+
135
+ context "sets the flash with the message's errors" do
136
+ subject { flash[:error] }
137
+ it { should eq "Subject can't be blank"}
138
+ end
139
+ end
140
+
141
+ describe 'with invalid params, counting' do
142
+ it 'does not result in a new message' do
143
+ expect { post :create, box_division: 'in', message: invalid_attributes }.to_not change { MessageTrain::Message.count }
144
+ end
145
+ end
146
+ end
147
+
148
+ describe "PUT #update" do
149
+ describe 'as someone other than the owner' do
150
+ before do
151
+ put :update, box_division: 'in', id: someone_elses_conversation.messages.first.id, message: valid_attributes
152
+ end
153
+ it_should_behave_like 'a 404 Not Found error'
154
+ end
155
+ describe 'as the owner' do
156
+ describe 'with invalid params' do
157
+ before do
158
+ put :update, box_division: 'in', id: draft_message.id, message: invalid_attributes
159
+ end
160
+ it_should_behave_like 'a successful page', which_renders: 'edit'
161
+
162
+ context 'loads the given message into @message' do
163
+ subject { assigns(:message) }
164
+ it { should eq draft_message }
165
+ end
166
+
167
+ context 'does not update @message' do
168
+ subject { draft_message.reload }
169
+ its(:subject) { should eq 'This should turn into a draft' }
170
+ end
171
+
172
+ context "sets the flash with the message's errors" do
173
+ subject { flash[:error] }
174
+ it { should eq "Subject can't be blank"}
175
+ end
176
+ end
177
+ describe 'with valid params' do
178
+ describe 'when not a draft' do
179
+ before do
180
+ put :update, box_division: 'in', id: sent_conversation.messages.first.id, message: valid_attributes
181
+ end
182
+ it_should_behave_like 'a 404 Not Found error'
183
+ end
184
+ describe 'when a draft' do
185
+ before do
186
+ put :update, box_division: 'in', id: draft_message.id, message: valid_attributes
187
+ end
188
+ it_should_behave_like 'a redirect to', '/box/sent'
189
+ it_should_behave_like 'a response without error'
190
+
191
+ context 'updates @message' do
192
+ subject { draft_message.reload }
193
+ its(:subject) { should eq 'Test Subject' }
194
+ end
195
+
196
+ context "sets no alert" do
197
+ subject { flash[:alert] }
198
+ it { should be nil }
199
+ end
200
+
201
+ context "sets the flash with a notice of the message's update" do
202
+ subject { flash[:notice] }
203
+ it { should eq 'Message sent.'}
204
+ end
205
+ end
206
+ end
207
+
208
+ end
209
+ end
210
+ end