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,10 @@
1
+ MessageTrain.configure do |config|
2
+ # config.friendly_id_tables << :groups
3
+ # config.friendly_id_tables << :users
4
+ # config.slug_columns[:users] = :slug
5
+ # config.name_columns[:users] = :display_name
6
+ # config.current_user_method = :current_user
7
+ # config.user_sign_in_path = '/user/sign_in'
8
+ # config.user_route_authentication_method = :user
9
+ # self.address_book_method = :address_book
10
+ end
@@ -0,0 +1,16 @@
1
+ module MessageTrain
2
+ module Generators
3
+ module Utils
4
+ def output(output, color = :green)
5
+ say(" - #{output}", color)
6
+ end
7
+
8
+ def ask_for(wording, default_value = nil, override_if_present_value = nil)
9
+ override_if_present_value.present? ?
10
+ display("Using [#{override_if_present_value}] for question '#{wording}'") && override_if_present_value :
11
+ ask(" ? #{wording} Press <enter> for [#{default_value}] >", :yellow).presence || default_value
12
+ end
13
+ end
14
+ end
15
+ end
16
+
@@ -0,0 +1,35 @@
1
+ module MessageTrain
2
+ def self.configure(configuration = MessageTrain::Configuration.new)
3
+ if block_given?
4
+ yield configuration
5
+ end
6
+ @@configuration = configuration
7
+ end
8
+
9
+ def self.configuration
10
+ @@configuration ||= MessageTrain::Configuration.new
11
+ end
12
+
13
+ class Configuration
14
+ attr_accessor :friendly_id_tables,
15
+ :slug_columns,
16
+ :name_columns,
17
+ :current_user_method,
18
+ :user_sign_in_path,
19
+ :user_route_authentication_method,
20
+ :address_book_method,
21
+ :recipient_tables
22
+
23
+ def initialize
24
+ self.friendly_id_tables = []
25
+ self.recipient_tables = [ :users ]
26
+ self.slug_columns = { users: :slug }
27
+ self.name_columns = { users: :display_name }
28
+ self.current_user_method = :current_user
29
+ self.user_sign_in_path = '/users/sign_in'
30
+ self.user_route_authentication_method = :user
31
+ self.address_book_method = :address_book
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,19 @@
1
+ module MessageTrain
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace MessageTrain
4
+ config.generators do |g|
5
+ g.hidden_namespaces << :test_unit << :erb << :mongoid
6
+ g.orm :active_record
7
+ g.template_engine :haml
8
+ g.test_framework :rspec, fixture: false
9
+ g.stylesheets false
10
+ g.javascripts false
11
+ end
12
+
13
+ config.to_prepare do
14
+ # Rails.application.config.assets.paths << File.expand_path("../../assets/stylesheets", __FILE__)
15
+ # Rails.application.config.assets.paths << File.expand_path("../../assets/javascripts", __FILE__)
16
+ # Rails.application.config.assets.precompile << %w( index )
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,31 @@
1
+ module StringExtension
2
+ def localize(*args)
3
+ if args.first.is_a? Symbol
4
+ sym = args.shift
5
+ else
6
+ sym = underscore.tr(' ', '_').gsub(/[^a-z0-9_]+/i, '').to_sym
7
+ end
8
+ args << {:default => self}
9
+
10
+ I18n.t(sym, *args).html_safe
11
+ end
12
+ alias :l :localize
13
+ end
14
+ String.send :include, StringExtension
15
+
16
+
17
+ module SymbolExtensionCustom
18
+
19
+ def localize_with_debugging(*args)
20
+ localized_sym = I18n.translate(self, *args)
21
+ localized_sym.is_a?(String) ? localized_sym.html_safe : localized_sym
22
+ end
23
+ alias_method :l, :localize_with_debugging
24
+
25
+ def l_with_args(*args)
26
+ self.l(*args).html_safe
27
+ end
28
+
29
+ end
30
+
31
+ Symbol.send :include, SymbolExtensionCustom
@@ -0,0 +1,83 @@
1
+ module MessageTrain
2
+ module Mixin
3
+ extend ActiveSupport::Concern
4
+ class_methods do
5
+ def message_train(options = {})
6
+ table_sym = table_name.to_sym
7
+
8
+ relationships = options[:only] ? [options[:only]].flatten : [:sender, :recipient]
9
+ if options[:except]
10
+ relationships = relationships - [options[:except]].flatten
11
+ end
12
+
13
+ if relationships.include? :sender
14
+ has_many :messages, as: :sender, class_name: 'MessageTrain::Message'
15
+ end
16
+
17
+ if relationships.include? :recipient
18
+ has_many :receipts, as: :recipient, class_name: 'MessageTrain::Receipt'
19
+ end
20
+
21
+ MessageTrain.configure(MessageTrain.configuration) do |config|
22
+ if options[:friendly_id]
23
+ config.friendly_id_tables << table_sym
24
+ end
25
+
26
+ if options[:name_column]
27
+ config.name_columns[table_sym] = options[:name_column]
28
+ else
29
+ config.name_columns[table_sym] = :name
30
+ end
31
+
32
+ if relationships.include? :recipient
33
+ config.recipient_tables |= [table_sym] # This adds the table to the array if not present
34
+ end
35
+ end
36
+
37
+ send(:define_method, :box) { |*args|
38
+ case args.count
39
+ when 0
40
+ division = :in
41
+ when 1
42
+ division = args[0]
43
+ else
44
+ raise :wrong_number_of_arguments_for_box_expected_right_got_wrong.l(right: '0..1', wrong: args.count.to_s)
45
+ end
46
+ @box ||= MessageTrain::Box.new(self, division)
47
+ }
48
+
49
+ send(:define_method, :conversations) { |division|
50
+ case division
51
+ when :in
52
+ MessageTrain::Conversation.with_untrashed_to(self)
53
+ when :sent
54
+ MessageTrain::Conversation.with_untrashed_by(self)
55
+ when :all
56
+ MessageTrain::Conversation.with_untrashed_for(self)
57
+ when :drafts
58
+ MessageTrain::Conversation.with_drafts_by(self)
59
+ when :trash
60
+ MessageTrain::Conversation.with_trashed_for(self)
61
+ when :ignored
62
+ MessageTrain::Conversation.ignored(self)
63
+ else
64
+ nil
65
+ end
66
+ }
67
+
68
+ send(:define_method, :all_boxes) {
69
+ divisions = [:in, :sent, :all, :drafts, :trash, :ignored]
70
+ divisions.collect { |division| MessageTrain::Box.new(self, division) }
71
+ }
72
+
73
+ send(:define_method, :all_conversations) {
74
+ MessageTrain::Conversation.with_receipts_for(self)
75
+ }
76
+
77
+ send(:define_method, :all_messages) {
78
+ MessageTrain::Message.with_receipts_for(self)
79
+ }
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,7 @@
1
+ module MessageTrain
2
+ VERSION = File.read(File.expand_path('../../../VERSION', __FILE__))
3
+
4
+ def self.version_string
5
+ "MessageTrain version #{MessageTrain::VERSION}"
6
+ end
7
+ end
@@ -0,0 +1,20 @@
1
+ module MessageTrain
2
+ require "active_record/railtie"
3
+ require "action_controller/railtie"
4
+ require "action_mailer/railtie"
5
+ require "action_view/railtie"
6
+ require "sprockets/railtie"
7
+
8
+ require 'rails-i18n'
9
+
10
+ require 'message_train/configuration'
11
+ require 'message_train/engine'
12
+ require 'message_train/localization'
13
+ require 'message_train/version'
14
+ require 'message_train/mixin'
15
+
16
+ require 'haml-rails'
17
+ require 'bootstrap_leather'
18
+ end
19
+
20
+ ActiveRecord::Base.send(:include, MessageTrain::Mixin)
File without changes
@@ -0,0 +1,325 @@
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.1.0 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "message_train"
9
+ s.version = "0.1.0"
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-23"
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.scss",
35
+ "app/controllers/message_train/application_controller.rb",
36
+ "app/controllers/message_train/boxes_controller.rb",
37
+ "app/controllers/message_train/conversations_controller.rb",
38
+ "app/controllers/message_train/messages_controller.rb",
39
+ "app/controllers/message_train/participants_controller.rb",
40
+ "app/helpers/message_train/application_helper.rb",
41
+ "app/helpers/message_train/boxes_helper.rb",
42
+ "app/helpers/message_train/conversations_helper.rb",
43
+ "app/helpers/message_train/messages_helper.rb",
44
+ "app/models/message_train/attachment.rb",
45
+ "app/models/message_train/box.rb",
46
+ "app/models/message_train/conversation.rb",
47
+ "app/models/message_train/ignore.rb",
48
+ "app/models/message_train/message.rb",
49
+ "app/models/message_train/receipt.rb",
50
+ "app/views/application/404.html.haml",
51
+ "app/views/message_train/application/results.json.jbuilder",
52
+ "app/views/message_train/boxes/_dropdown_list.html.haml",
53
+ "app/views/message_train/boxes/_list_item.html.haml",
54
+ "app/views/message_train/boxes/_widget.html.haml",
55
+ "app/views/message_train/boxes/show.html.haml",
56
+ "app/views/message_train/conversations/_conversation.html.haml",
57
+ "app/views/message_train/conversations/_deleted_toggle.html.haml",
58
+ "app/views/message_train/conversations/_ignored_toggle.html.haml",
59
+ "app/views/message_train/conversations/_read_toggle.html.haml",
60
+ "app/views/message_train/conversations/_toggle.html.haml",
61
+ "app/views/message_train/conversations/_trashed_toggle.html.haml",
62
+ "app/views/message_train/conversations/show.html.haml",
63
+ "app/views/message_train/conversations/show.json.jbuilder",
64
+ "app/views/message_train/messages/_deleted_toggle.html.haml",
65
+ "app/views/message_train/messages/_form.html.haml",
66
+ "app/views/message_train/messages/_message.html.haml",
67
+ "app/views/message_train/messages/_read_toggle.html.haml",
68
+ "app/views/message_train/messages/_toggle.html.haml",
69
+ "app/views/message_train/messages/_trashed_toggle.html.haml",
70
+ "app/views/message_train/messages/edit.html.haml",
71
+ "app/views/message_train/messages/new.html.haml",
72
+ "app/views/message_train/messages/show.json.jbuilder",
73
+ "app/views/message_train/participants/_field.html.haml",
74
+ "app/views/message_train/participants/_participant.json.jbuilder",
75
+ "app/views/message_train/participants/index.json.jbuilder",
76
+ "app/views/message_train/participants/show.json.jbuilder",
77
+ "bin/rails",
78
+ "config/initializers/bootstrap_pager_config.rb",
79
+ "config/initializers/date_time.rb",
80
+ "config/locales/en.yml",
81
+ "config/routes.rb",
82
+ "db/migrate/20150721145319_create_message_train_conversations.rb",
83
+ "db/migrate/20150721160322_create_message_train_messages.rb",
84
+ "db/migrate/20150721161144_create_message_train_attachments.rb",
85
+ "db/migrate/20150721161940_create_message_train_receipts.rb",
86
+ "db/migrate/20150721163838_create_message_train_ignores.rb",
87
+ "lib/generators/message_train/install/install_generator.rb",
88
+ "lib/generators/message_train/install/templates/initializer.rb",
89
+ "lib/generators/message_train/utils.rb",
90
+ "lib/message_train.rb",
91
+ "lib/message_train/configuration.rb",
92
+ "lib/message_train/engine.rb",
93
+ "lib/message_train/localization.rb",
94
+ "lib/message_train/mixin.rb",
95
+ "lib/message_train/version.rb",
96
+ "lib/tasks/message_train_tasks.rake",
97
+ "message_train.gemspec",
98
+ "night_train.gemspec",
99
+ "spec/controllers/message_train/boxes_controller_spec.rb",
100
+ "spec/controllers/message_train/conversations_controller_spec.rb",
101
+ "spec/controllers/message_train/messages_controller_spec.rb",
102
+ "spec/controllers/message_train/participants_controller_spec.rb",
103
+ "spec/dummy/.rspec",
104
+ "spec/dummy/Rakefile",
105
+ "spec/dummy/app/assets/files/message_train/attachments/1917-Boys_Race_Above-Wiki.jpg",
106
+ "spec/dummy/app/assets/files/message_train/attachments/ACD_Silverbarn's_Mayumi.jpg",
107
+ "spec/dummy/app/assets/files/message_train/attachments/ACD_obedience.jpg",
108
+ "spec/dummy/app/assets/files/message_train/attachments/A_Man_and_His_Dog.jpg",
109
+ "spec/dummy/app/assets/files/message_train/attachments/Alaskan_Malamute_agility_a-frame.jpg",
110
+ "spec/dummy/app/assets/files/message_train/attachments/American_water_spaniel_02.jpg",
111
+ "spec/dummy/app/assets/files/message_train/attachments/Aport_konkurs_rybnik.jpg",
112
+ "spec/dummy/app/assets/files/message_train/attachments/Askerhytta.jpg",
113
+ "spec/dummy/app/assets/files/message_train/attachments/Bambisj.jpg",
114
+ "spec/dummy/app/assets/files/message_train/attachments/Cattle_dog_skating.jpg",
115
+ "spec/dummy/app/assets/files/message_train/attachments/Dog's_Olympics_training_ground_-_geograph.org.uk_-_660324.jpg",
116
+ "spec/dummy/app/assets/files/message_train/attachments/DogShowHierarchy.png",
117
+ "spec/dummy/app/assets/files/message_train/attachments/Dog_weight_pull.jpg",
118
+ "spec/dummy/app/assets/files/message_train/attachments/Draghuntpostcard.jpg",
119
+ "spec/dummy/app/assets/files/message_train/attachments/Esham_51.JPG",
120
+ "spec/dummy/app/assets/files/message_train/attachments/FastCourseExample.jpg",
121
+ "spec/dummy/app/assets/files/message_train/attachments/Fotos_joel_141.JPG",
122
+ "spec/dummy/app/assets/files/message_train/attachments/Galgo_Spanish_male_brindle.jpg",
123
+ "spec/dummy/app/assets/files/message_train/attachments/Golden-retriever-carlos-bei-der-dummyarbeit.jpg",
124
+ "spec/dummy/app/assets/files/message_train/attachments/Habavk.jpg",
125
+ "spec/dummy/app/assets/files/message_train/attachments/Haie_rci.svg",
126
+ "spec/dummy/app/assets/files/message_train/attachments/Hanging_18.jpg",
127
+ "spec/dummy/app/assets/files/message_train/attachments/Hundewa.jpg",
128
+ "spec/dummy/app/assets/files/message_train/attachments/K9ProSports_AttackOnHandler.jpg",
129
+ "spec/dummy/app/assets/files/message_train/attachments/K9ProSports_heel.jpg",
130
+ "spec/dummy/app/assets/files/message_train/attachments/K9Pro_Civil_agitation.JPG",
131
+ "spec/dummy/app/assets/files/message_train/attachments/TrainingSchutzhundRetrieveOverWall.jpg",
132
+ "spec/dummy/app/assets/files/message_train/attachments/example.pdf",
133
+ "spec/dummy/app/assets/files/message_train/attachments/letterlegal5.doc",
134
+ "spec/dummy/app/assets/files/message_train/attachments/pdf-sample.pdf",
135
+ "spec/dummy/app/assets/files/message_train/attachments/sample.pdf",
136
+ "spec/dummy/app/assets/files/message_train/attachments/tips.doc",
137
+ "spec/dummy/app/assets/files/message_train/attachments/wd-spectools-word-sample-04.doc",
138
+ "spec/dummy/app/assets/images/logo.svg",
139
+ "spec/dummy/app/assets/javascripts/application.js",
140
+ "spec/dummy/app/assets/stylesheets/application.css.scss",
141
+ "spec/dummy/app/controllers/application_controller.rb",
142
+ "spec/dummy/app/helpers/application_helper.rb",
143
+ "spec/dummy/app/mailers/.keep",
144
+ "spec/dummy/app/models/.keep",
145
+ "spec/dummy/app/models/group.rb",
146
+ "spec/dummy/app/models/role.rb",
147
+ "spec/dummy/app/models/user.rb",
148
+ "spec/dummy/app/views/layouts/_top_navigation.html.haml",
149
+ "spec/dummy/app/views/layouts/application.html.haml",
150
+ "spec/dummy/bin/bundle",
151
+ "spec/dummy/bin/rails",
152
+ "spec/dummy/bin/rake",
153
+ "spec/dummy/bin/setup",
154
+ "spec/dummy/config.ru",
155
+ "spec/dummy/config/application.rb",
156
+ "spec/dummy/config/boot.rb",
157
+ "spec/dummy/config/database.yml",
158
+ "spec/dummy/config/environment.rb",
159
+ "spec/dummy/config/environments/development.rb",
160
+ "spec/dummy/config/environments/production.rb",
161
+ "spec/dummy/config/environments/test.rb",
162
+ "spec/dummy/config/initializers/assets.rb",
163
+ "spec/dummy/config/initializers/backtrace_silencers.rb",
164
+ "spec/dummy/config/initializers/bootstrap_leather.rb",
165
+ "spec/dummy/config/initializers/cookies_serializer.rb",
166
+ "spec/dummy/config/initializers/devise.rb",
167
+ "spec/dummy/config/initializers/filter_parameter_logging.rb",
168
+ "spec/dummy/config/initializers/inflections.rb",
169
+ "spec/dummy/config/initializers/message_train.rb",
170
+ "spec/dummy/config/initializers/mime_types.rb",
171
+ "spec/dummy/config/initializers/paperclip.rb",
172
+ "spec/dummy/config/initializers/rolify.rb",
173
+ "spec/dummy/config/initializers/session_store.rb",
174
+ "spec/dummy/config/initializers/wrap_parameters.rb",
175
+ "spec/dummy/config/locales/devise.en.yml",
176
+ "spec/dummy/config/locales/en.yml",
177
+ "spec/dummy/config/routes.rb",
178
+ "spec/dummy/config/secrets.yml",
179
+ "spec/dummy/config/unused/temporary_i18n_debugging.rb",
180
+ "spec/dummy/db/migrate/20150721140013_devise_create_users.rb",
181
+ "spec/dummy/db/migrate/20150721141009_rolify_create_roles.rb",
182
+ "spec/dummy/db/migrate/20150721141128_create_groups.rb",
183
+ "spec/dummy/db/migrate/20150721150307_add_display_name_column_to_users.rb",
184
+ "spec/dummy/db/migrate/20150724142846_create_message_train_conversations.night_train.rb",
185
+ "spec/dummy/db/migrate/20150724142847_create_message_train_messages.night_train.rb",
186
+ "spec/dummy/db/migrate/20150724142848_create_message_train_attachments.night_train.rb",
187
+ "spec/dummy/db/migrate/20150724142849_create_message_train_receipts.night_train.rb",
188
+ "spec/dummy/db/migrate/20150724142850_create_message_train_ignores.night_train.rb",
189
+ "spec/dummy/db/schema.rb",
190
+ "spec/dummy/db/seeds.rb",
191
+ "spec/dummy/db/seeds/conversations.seeds.rb",
192
+ "spec/dummy/db/seeds/development/conversations.seeds.rb",
193
+ "spec/dummy/db/seeds/groups.seeds.rb",
194
+ "spec/dummy/db/seeds/test/conversations.seeds.rb",
195
+ "spec/dummy/db/seeds/users.seeds.rb",
196
+ "spec/dummy/db/test.sqlite3",
197
+ "spec/dummy/lib/assets/.keep",
198
+ "spec/dummy/log/.keep",
199
+ "spec/dummy/public/404.html",
200
+ "spec/dummy/public/422.html",
201
+ "spec/dummy/public/500.html",
202
+ "spec/dummy/public/capybara.html",
203
+ "spec/dummy/public/favicon.ico",
204
+ "spec/factories/attachment.rb",
205
+ "spec/factories/group.rb",
206
+ "spec/factories/message.rb",
207
+ "spec/factories/user.rb",
208
+ "spec/features/boxes_spec.rb",
209
+ "spec/features/conversations_spec.rb",
210
+ "spec/features/messages_spec.rb",
211
+ "spec/helpers/message_train/boxes_helper_spec.rb",
212
+ "spec/message_train_spec.rb",
213
+ "spec/models/group_spec.rb",
214
+ "spec/models/message_train/attachment_spec.rb",
215
+ "spec/models/message_train/box_spec.rb",
216
+ "spec/models/message_train/conversation_spec.rb",
217
+ "spec/models/message_train/ignore_spec.rb",
218
+ "spec/models/message_train/message_spec.rb",
219
+ "spec/models/message_train/receipt_spec.rb",
220
+ "spec/models/user_spec.rb",
221
+ "spec/rails_helper.rb",
222
+ "spec/spec_helper.rb",
223
+ "spec/support/controller_behaviors.rb",
224
+ "spec/support/controller_macros.rb",
225
+ "spec/support/conversations.rb",
226
+ "spec/support/factory_girl.rb",
227
+ "spec/support/feature_behaviors.rb",
228
+ "spec/support/groups.rb",
229
+ "spec/support/loaded_site.rb",
230
+ "spec/support/shared_connection.rb",
231
+ "spec/support/users.rb",
232
+ "spec/support/utilities.rb",
233
+ "vendor/assets/javascripts/bootstrap-tags.js",
234
+ "vendor/assets/stylesheets/bootstrap-tags.css"
235
+ ]
236
+ s.homepage = "http://www.gemvein.com/museum/cases/message_train"
237
+ s.licenses = ["MIT"]
238
+ s.rubygems_version = "2.4.5"
239
+ s.summary = "Messaging for any object"
240
+
241
+ if s.respond_to? :specification_version then
242
+ s.specification_version = 4
243
+
244
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
245
+ s.add_runtime_dependency(%q<rails>, ["~> 4"])
246
+ s.add_runtime_dependency(%q<paperclip>, ["~> 4.3"])
247
+ s.add_runtime_dependency(%q<rails-i18n>, ["~> 4"])
248
+ s.add_runtime_dependency(%q<haml-rails>, ["~> 0.9"])
249
+ s.add_runtime_dependency(%q<jquery-rails>, ["~> 4"])
250
+ s.add_runtime_dependency(%q<uglifier>, ["~> 2.7"])
251
+ s.add_runtime_dependency(%q<jbuilder>, ["~> 1.0.1"])
252
+ s.add_runtime_dependency(%q<sass-rails>, ["~> 5"])
253
+ s.add_runtime_dependency(%q<bootstrap-sass>, ["~> 3.3"])
254
+ s.add_runtime_dependency(%q<bootstrap_leather>, ["~> 0.8"])
255
+ s.add_runtime_dependency(%q<bootstrap_pager>, ["~> 0.10"])
256
+ s.add_runtime_dependency(%q<bootstrap_form>, ["~> 2.3"])
257
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
258
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
259
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
260
+ s.add_development_dependency(%q<sqlite3>, ["~> 1.3"])
261
+ s.add_development_dependency(%q<devise>, ["~> 3.5"])
262
+ s.add_development_dependency(%q<rolify>, ["~> 4"])
263
+ s.add_development_dependency(%q<faker>, ["~> 1.4"])
264
+ s.add_development_dependency(%q<rspec-rails>, ["~> 3.2"])
265
+ s.add_development_dependency(%q<rspec-its>, ["~> 1.2"])
266
+ s.add_development_dependency(%q<factory_girl_rails>, ["~> 4.5"])
267
+ s.add_development_dependency(%q<seedbank>, ["~> 0.3"])
268
+ s.add_development_dependency(%q<friendly_id>, ["~> 5"])
269
+ s.add_development_dependency(%q<byebug>, ["~> 5"])
270
+ else
271
+ s.add_dependency(%q<rails>, ["~> 4"])
272
+ s.add_dependency(%q<paperclip>, ["~> 4.3"])
273
+ s.add_dependency(%q<rails-i18n>, ["~> 4"])
274
+ s.add_dependency(%q<haml-rails>, ["~> 0.9"])
275
+ s.add_dependency(%q<jquery-rails>, ["~> 4"])
276
+ s.add_dependency(%q<uglifier>, ["~> 2.7"])
277
+ s.add_dependency(%q<jbuilder>, ["~> 1.0.1"])
278
+ s.add_dependency(%q<sass-rails>, ["~> 5"])
279
+ s.add_dependency(%q<bootstrap-sass>, ["~> 3.3"])
280
+ s.add_dependency(%q<bootstrap_leather>, ["~> 0.8"])
281
+ s.add_dependency(%q<bootstrap_pager>, ["~> 0.10"])
282
+ s.add_dependency(%q<bootstrap_form>, ["~> 2.3"])
283
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
284
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
285
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
286
+ s.add_dependency(%q<sqlite3>, ["~> 1.3"])
287
+ s.add_dependency(%q<devise>, ["~> 3.5"])
288
+ s.add_dependency(%q<rolify>, ["~> 4"])
289
+ s.add_dependency(%q<faker>, ["~> 1.4"])
290
+ s.add_dependency(%q<rspec-rails>, ["~> 3.2"])
291
+ s.add_dependency(%q<rspec-its>, ["~> 1.2"])
292
+ s.add_dependency(%q<factory_girl_rails>, ["~> 4.5"])
293
+ s.add_dependency(%q<seedbank>, ["~> 0.3"])
294
+ s.add_dependency(%q<friendly_id>, ["~> 5"])
295
+ s.add_dependency(%q<byebug>, ["~> 5"])
296
+ end
297
+ else
298
+ s.add_dependency(%q<rails>, ["~> 4"])
299
+ s.add_dependency(%q<paperclip>, ["~> 4.3"])
300
+ s.add_dependency(%q<rails-i18n>, ["~> 4"])
301
+ s.add_dependency(%q<haml-rails>, ["~> 0.9"])
302
+ s.add_dependency(%q<jquery-rails>, ["~> 4"])
303
+ s.add_dependency(%q<uglifier>, ["~> 2.7"])
304
+ s.add_dependency(%q<jbuilder>, ["~> 1.0.1"])
305
+ s.add_dependency(%q<sass-rails>, ["~> 5"])
306
+ s.add_dependency(%q<bootstrap-sass>, ["~> 3.3"])
307
+ s.add_dependency(%q<bootstrap_leather>, ["~> 0.8"])
308
+ s.add_dependency(%q<bootstrap_pager>, ["~> 0.10"])
309
+ s.add_dependency(%q<bootstrap_form>, ["~> 2.3"])
310
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
311
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
312
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
313
+ s.add_dependency(%q<sqlite3>, ["~> 1.3"])
314
+ s.add_dependency(%q<devise>, ["~> 3.5"])
315
+ s.add_dependency(%q<rolify>, ["~> 4"])
316
+ s.add_dependency(%q<faker>, ["~> 1.4"])
317
+ s.add_dependency(%q<rspec-rails>, ["~> 3.2"])
318
+ s.add_dependency(%q<rspec-its>, ["~> 1.2"])
319
+ s.add_dependency(%q<factory_girl_rails>, ["~> 4.5"])
320
+ s.add_dependency(%q<seedbank>, ["~> 0.3"])
321
+ s.add_dependency(%q<friendly_id>, ["~> 5"])
322
+ s.add_dependency(%q<byebug>, ["~> 5"])
323
+ end
324
+ end
325
+