carrier 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (257) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +27 -0
  4. data/LICENSE.txt +20 -0
  5. data/MIT-LICENSE +20 -0
  6. data/README.textile +111 -0
  7. data/Rakefile +48 -0
  8. data/VERSION +1 -0
  9. data/app/assets/images/.gitkeep +0 -0
  10. data/app/assets/javascripts/autocomplete.js +4 -0
  11. data/app/assets/javascripts/autocomplete/i18n/jquery-ui-i18n.js +1379 -0
  12. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-af.js +23 -0
  13. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ar-DZ.js +23 -0
  14. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ar.js +23 -0
  15. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-az.js +23 -0
  16. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-bg.js +24 -0
  17. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-bs.js +23 -0
  18. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ca.js +23 -0
  19. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-cs.js +23 -0
  20. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-da.js +23 -0
  21. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-de.js +23 -0
  22. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-el.js +23 -0
  23. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-AU.js +23 -0
  24. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-GB.js +23 -0
  25. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-NZ.js +23 -0
  26. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-eo.js +23 -0
  27. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-es.js +23 -0
  28. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-et.js +23 -0
  29. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-eu.js +23 -0
  30. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fa.js +23 -0
  31. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fi.js +23 -0
  32. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fo.js +23 -0
  33. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fr-CH.js +23 -0
  34. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fr.js +25 -0
  35. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-gl.js +23 -0
  36. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-he.js +23 -0
  37. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hr.js +23 -0
  38. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hu.js +23 -0
  39. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hy.js +23 -0
  40. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-id.js +23 -0
  41. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-is.js +23 -0
  42. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-it.js +23 -0
  43. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ja.js +23 -0
  44. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ko.js +23 -0
  45. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-kz.js +23 -0
  46. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-lt.js +23 -0
  47. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-lv.js +23 -0
  48. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ml.js +23 -0
  49. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ms.js +23 -0
  50. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-nl.js +23 -0
  51. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-no.js +23 -0
  52. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pl.js +23 -0
  53. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pt-BR.js +23 -0
  54. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pt.js +22 -0
  55. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-rm.js +21 -0
  56. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ro.js +26 -0
  57. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ru.js +23 -0
  58. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sk.js +23 -0
  59. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sl.js +24 -0
  60. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sq.js +23 -0
  61. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sr-SR.js +23 -0
  62. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sr.js +23 -0
  63. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sv.js +23 -0
  64. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ta.js +23 -0
  65. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-th.js +23 -0
  66. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-tj.js +23 -0
  67. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-tr.js +23 -0
  68. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-uk.js +23 -0
  69. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-vi.js +23 -0
  70. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-CN.js +23 -0
  71. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-HK.js +23 -0
  72. data/app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-TW.js +23 -0
  73. data/app/assets/javascripts/autocomplete/jquery.ui.autocomplete.min.js +32 -0
  74. data/app/assets/javascripts/autocomplete/jquery.ui.core.min.js +17 -0
  75. data/app/assets/javascripts/autocomplete/jquery.ui.position.min.js +16 -0
  76. data/app/assets/javascripts/autocomplete/jquery.ui.widget.min.js +15 -0
  77. data/app/assets/javascripts/carrier.js +8 -0
  78. data/app/assets/javascripts/jquery.min.js +16 -0
  79. data/app/assets/javascripts/rails.js +169 -0
  80. data/app/assets/javascripts/rich-multiselect/jquery-ui.min.js +405 -0
  81. data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-de.js +11 -0
  82. data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-en.js +11 -0
  83. data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-es.js +11 -0
  84. data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-fr.js +11 -0
  85. data/app/assets/javascripts/rich-multiselect/locale/ui-multiselect-it.js +13 -0
  86. data/app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation-min.js +7 -0
  87. data/app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation-pack.js +7 -0
  88. data/app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation.js +99 -0
  89. data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/README.txt +37 -0
  90. data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/changes.txt +82 -0
  91. data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/jquery.scrollTo-min.js +11 -0
  92. data/app/assets/javascripts/rich-multiselect/plugins/scrollTo/jquery.scrollTo.js +207 -0
  93. data/app/assets/javascripts/rich-multiselect/ui.multiselect.js +339 -0
  94. data/app/assets/stylesheets/carrier.css +227 -0
  95. data/app/assets/stylesheets/carrier_rich.css +48 -0
  96. data/app/assets/stylesheets/carrier_simple.css +15 -0
  97. data/app/assets/stylesheets/rich-multiselect/ui.multiselect.css +30 -0
  98. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  99. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_55_fbf9ee_40x100.png +0 -0
  100. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_65_ffffff_40x100.png +0 -0
  101. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_cccccc_40x100.png +0 -0
  102. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_dadada_40x100.png +0 -0
  103. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_e6e6e6_40x100.png +0 -0
  104. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  105. data/app/assets/stylesheets/ui-lightness/images/ui-bg_flat_95_fef1ec_40x100.png +0 -0
  106. data/app/assets/stylesheets/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  107. data/app/assets/stylesheets/ui-lightness/images/ui-icons_2e83ff_256x240.png +0 -0
  108. data/app/assets/stylesheets/ui-lightness/images/ui-icons_454545_256x240.png +0 -0
  109. data/app/assets/stylesheets/ui-lightness/images/ui-icons_888888_256x240.png +0 -0
  110. data/app/assets/stylesheets/ui-lightness/images/ui-icons_cd0a0a_256x240.png +0 -0
  111. data/app/assets/stylesheets/ui-lightness/jquery-ui-1.8.14.custom.css +342 -0
  112. data/app/controllers/carrier/application_controller.rb +5 -0
  113. data/app/controllers/carrier/chains_controller.rb +16 -0
  114. data/app/controllers/carrier/messages_controller.rb +59 -0
  115. data/app/helpers/carrier/application_helper.rb +26 -0
  116. data/app/helpers/carrier/post_helper.rb +4 -0
  117. data/app/models/carrier/chain.rb +59 -0
  118. data/app/models/carrier/message.rb +118 -0
  119. data/app/models/carrier/message/scopes.rb +51 -0
  120. data/app/models/carrier/message/subject.rb +25 -0
  121. data/app/models/carrier/message/validations.rb +7 -0
  122. data/app/validators/recipients/exclude_self.rb +10 -0
  123. data/app/validators/recipients/recipients_validator.rb +10 -0
  124. data/app/views/carrier/chains/archive.js.erb +1 -0
  125. data/app/views/carrier/chains/unarchive.js.erb +1 -0
  126. data/app/views/carrier/messages/_archive_chain.html.erb +6 -0
  127. data/app/views/carrier/messages/_form.html.erb +30 -0
  128. data/app/views/carrier/messages/_head.html.erb +8 -0
  129. data/app/views/carrier/messages/_index_message.html.erb +13 -0
  130. data/app/views/carrier/messages/_message_collapsed.html.erb +12 -0
  131. data/app/views/carrier/messages/_message_expanded.html.erb +10 -0
  132. data/app/views/carrier/messages/_nav_messages.html.erb +15 -0
  133. data/app/views/carrier/messages/_reply.html.erb +19 -0
  134. data/app/views/carrier/messages/as_sent.html.erb +36 -0
  135. data/app/views/carrier/messages/collapsed.js.erb +1 -0
  136. data/app/views/carrier/messages/create.js.erb +1 -0
  137. data/app/views/carrier/messages/expanded.js.erb +1 -0
  138. data/app/views/carrier/messages/index.html.erb +9 -0
  139. data/app/views/carrier/messages/new.html.erb +7 -0
  140. data/app/views/carrier/messages/new.js.erb +1 -0
  141. data/app/views/carrier/messages/reply.js.erb +6 -0
  142. data/app/views/carrier/messages/rich/_multiselect.html.erb +18 -0
  143. data/app/views/carrier/messages/rich/_recipients.html.erb +6 -0
  144. data/app/views/carrier/messages/show.html.erb +35 -0
  145. data/app/views/carrier/messages/simple/_autocomplete.html.erb +45 -0
  146. data/app/views/carrier/messages/simple/_autocomplete_includes.html.erb +7 -0
  147. data/app/views/carrier/messages/simple/_recipients.html.erb +3 -0
  148. data/app/views/layouts/carrier/application.html.erb +16 -0
  149. data/app/views/partials/_error_messages_for.html.erb +9 -0
  150. data/carrier.gemspec +331 -0
  151. data/config/locales/carrier.en.yml +48 -0
  152. data/config/locales/carrier.ru.yml +48 -0
  153. data/config/routes.rb +24 -0
  154. data/db/migrate/001_create_messages.rb +26 -0
  155. data/db/migrate/002_create_chains.rb +34 -0
  156. data/db/migrate/003_create_read_marks +16 -0
  157. data/lib/carrier.rb +22 -0
  158. data/lib/carrier/configuration.rb +35 -0
  159. data/lib/carrier/configuration/models.rb +31 -0
  160. data/lib/carrier/configuration/ui.rb +28 -0
  161. data/lib/carrier/rails.rb +5 -0
  162. data/lib/carrier/rails/engine.rb +50 -0
  163. data/lib/carrier/rails/helpers.rb +30 -0
  164. data/lib/tasks/carrier_tasks.rake +4 -0
  165. data/script/rails +6 -0
  166. data/spec/carrier/app/controllers/application_controller_spec.rb +1 -0
  167. data/spec/carrier/app/models/message_scopes_spec.rb +25 -0
  168. data/spec/carrier/app/models/message_spec.rb +38 -0
  169. data/spec/dummy/Rakefile +7 -0
  170. data/spec/dummy/app/assets/javascripts/application.js +9 -0
  171. data/spec/dummy/app/assets/javascripts/default.js +2 -0
  172. data/spec/dummy/app/assets/javascripts/jquery.js +16 -0
  173. data/spec/dummy/app/assets/javascripts/jquery_ujs.js +169 -0
  174. data/spec/dummy/app/assets/javascripts/posts.js +2 -0
  175. data/spec/dummy/app/assets/stylesheets/application.css +7 -0
  176. data/spec/dummy/app/assets/stylesheets/default.css +4 -0
  177. data/spec/dummy/app/assets/stylesheets/posts.css +4 -0
  178. data/spec/dummy/app/assets/stylesheets/scaffold.css +56 -0
  179. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  180. data/spec/dummy/app/controllers/default_controller.rb +5 -0
  181. data/spec/dummy/app/controllers/posts_controller.rb +83 -0
  182. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  183. data/spec/dummy/app/helpers/default_helper.rb +2 -0
  184. data/spec/dummy/app/helpers/posts_helper.rb +2 -0
  185. data/spec/dummy/app/mailers/.gitkeep +0 -0
  186. data/spec/dummy/app/models/.gitkeep +0 -0
  187. data/spec/dummy/app/models/post.rb +2 -0
  188. data/spec/dummy/app/models/user.rb +15 -0
  189. data/spec/dummy/app/views/default/index.html.erb +4 -0
  190. data/spec/dummy/app/views/devise/confirmations/new.html.erb +12 -0
  191. data/spec/dummy/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  192. data/spec/dummy/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  193. data/spec/dummy/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  194. data/spec/dummy/app/views/devise/passwords/edit.html.erb +16 -0
  195. data/spec/dummy/app/views/devise/passwords/new.html.erb +12 -0
  196. data/spec/dummy/app/views/devise/registrations/edit.html.erb +25 -0
  197. data/spec/dummy/app/views/devise/registrations/new.html.erb +18 -0
  198. data/spec/dummy/app/views/devise/sessions/new.html.erb +17 -0
  199. data/spec/dummy/app/views/devise/shared/_links.erb +25 -0
  200. data/spec/dummy/app/views/devise/unlocks/new.html.erb +12 -0
  201. data/spec/dummy/app/views/layouts/application.html.erb +16 -0
  202. data/spec/dummy/app/views/posts/_form.html.erb +17 -0
  203. data/spec/dummy/app/views/posts/edit.html.erb +6 -0
  204. data/spec/dummy/app/views/posts/index.html.erb +21 -0
  205. data/spec/dummy/app/views/posts/new.html.erb +5 -0
  206. data/spec/dummy/app/views/posts/show.html.erb +5 -0
  207. data/spec/dummy/config.ru +4 -0
  208. data/spec/dummy/config/application.rb +51 -0
  209. data/spec/dummy/config/boot.rb +10 -0
  210. data/spec/dummy/config/database.yml +26 -0
  211. data/spec/dummy/config/database_mysql.yml +29 -0
  212. data/spec/dummy/config/database_pgsql.yml +35 -0
  213. data/spec/dummy/config/environment.rb +5 -0
  214. data/spec/dummy/config/environments/development.rb +24 -0
  215. data/spec/dummy/config/environments/production.rb +52 -0
  216. data/spec/dummy/config/environments/test.rb +39 -0
  217. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  218. data/spec/dummy/config/initializers/carrier.rb +3 -0
  219. data/spec/dummy/config/initializers/devise.rb +204 -0
  220. data/spec/dummy/config/initializers/inflections.rb +10 -0
  221. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  222. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  223. data/spec/dummy/config/initializers/session_store.rb +8 -0
  224. data/spec/dummy/config/initializers/wrap_parameters.rb +12 -0
  225. data/spec/dummy/config/locales/devise.en.yml +53 -0
  226. data/spec/dummy/config/locales/en.yml +5 -0
  227. data/spec/dummy/config/routes.rb +15 -0
  228. data/spec/dummy/db/migrate/007_devise_create_users.rb +29 -0
  229. data/spec/dummy/db/migrate/20110130210000_create_read_marks.rb +16 -0
  230. data/spec/dummy/db/migrate/20110814064637_create_posts.rb +8 -0
  231. data/spec/dummy/db/migrate/20110814164228_create_messages.rb +26 -0
  232. data/spec/dummy/db/migrate/20110814164229_create_chains.rb +34 -0
  233. data/spec/dummy/db/schema.rb +79 -0
  234. data/spec/dummy/db/seeds.rb +26 -0
  235. data/spec/dummy/log/.gitkeep +0 -0
  236. data/spec/dummy/public/404.html +26 -0
  237. data/spec/dummy/public/422.html +26 -0
  238. data/spec/dummy/public/500.html +26 -0
  239. data/spec/dummy/public/favicon.ico +0 -0
  240. data/spec/dummy/script/rails +6 -0
  241. data/spec/dummy/test/fixtures/posts.yml +11 -0
  242. data/spec/dummy/test/fixtures/users.yml +11 -0
  243. data/spec/dummy/test/functional/default_controller_test.rb +9 -0
  244. data/spec/dummy/test/functional/posts_controller_test.rb +49 -0
  245. data/spec/dummy/test/unit/helpers/default_helper_test.rb +4 -0
  246. data/spec/dummy/test/unit/helpers/posts_helper_test.rb +4 -0
  247. data/spec/dummy/test/unit/post_test.rb +7 -0
  248. data/spec/dummy/test/unit/user_test.rb +7 -0
  249. data/spec/dummy_spec_helper.rb +70 -0
  250. data/spec/integration/carrier_spec.rb +71 -0
  251. data/spec/requests/main_spec.rb +31 -0
  252. data/spec/support/controller_macros.rb +10 -0
  253. data/spec/support/factories.rb +47 -0
  254. data/spec/support/rspec_helpers.rb +22 -0
  255. data/test/helper.rb +18 -0
  256. data/test/test_carrier.rb +7 -0
  257. metadata +450 -0
@@ -0,0 +1,8 @@
1
+ <%= content_for :stylesheets do %>
2
+ <%= stylesheet_link_tag "carrier" %>
3
+ <%= stylesheet_link_tag "carrier_#{carrier_ui}" %>
4
+ <% end %>
5
+
6
+ <%= content_for :javascripts do %>
7
+ <% end %>
8
+
@@ -0,0 +1,13 @@
1
+ <%= link_to (action_name == 'sent' ? carrier.as_sent_message_path(message) : message), :class => "message_ma_wrapper #{'ma_has_new' if m > 0 }" do %>
2
+ <div class="message_ma_date"><%= message.date_formatted %></div>
3
+ <div class="message_ma_users">
4
+ <%= truncate(message.sender_name + " + " + message.recipients_names, :length => 20) %>
5
+ <span class="message_ma_branch">
6
+ (<%= message.chain.messages_count %><% if m > 0 %>/<b class="red"><%= m %></b><% end %>)
7
+ </span>
8
+ </div>
9
+ <div class="message_ma_body">
10
+ <%= raw truncate(%| <span class="message_ma_subj %s">%s</span> &raquo; %s | % [('ma_has_new' if m > 0), message.subject, message.content], :length => 140) %>
11
+ </div>
12
+ <% end %>
13
+
@@ -0,0 +1,12 @@
1
+ <%= link_to carrier.expanded_message_path(message), :remote => true, :class => "message_collapse", :id => "message-#{message.id}" do %>
2
+ <div class="message_ma_wrapper">
3
+ <div class="message_ma_date"><%= raw message.date_formatted %></div>
4
+ <div class="message_ma_user"><%= message.sender_name %></div>
5
+ <div>
6
+ <% if unread_messages.include? message %>
7
+ <b class='red'>unread</b>
8
+ <% end %>
9
+ <%= raw truncate("%s &raquo; %s" % [message.subject, message.content], :length => 88) %>
10
+ </div>
11
+ </div>
12
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <%= link_to carrier.collapsed_message_path(message), :remote => true, :class => "message_collapse", :id => "message-#{message.id}" do %>
2
+
3
+ <div class="message_ma_wrapper ma_open">
4
+ <div class="message_ma_date"><%= raw message.date_formatted %></div>
5
+ <div class="message_ma_user"><%= message.sender_name %></div>
6
+ <div class="message_ma_subj"><b><%= message.subject %></b></div>
7
+ <div><%= message.content %></div>
8
+ </div>
9
+
10
+ <% end %>
@@ -0,0 +1,15 @@
1
+ <div class="carrier_nav_line">
2
+ <div class="carrier_nav_line_inner">
3
+
4
+ <div class="carrier_new">
5
+ <%= link_to raw(t 'views.carrier.new_link'), carrier.new_message_path %>
6
+ </div>
7
+ <div class="carrier_nav">
8
+ <ul>
9
+ <li class="<%= 'active' if request.fullpath =~ /messages(\/\d+)?\z/ && !archived?(@message) %>"><%= link_to raw(t 'views.carrier.inbox_link'), carrier.messages_path %></li>
10
+ <li class="<%= 'active' if request.fullpath =~ /messages\/(\d+\/.*)?sent/ %>"><%= link_to raw(t 'views.carrier.sent_link'), carrier.sent_messages_path %></li>
11
+ <li class="<%= 'active' if request.fullpath =~ /messages\/archive/ || archived?(@message) %>"><%= link_to raw(t 'views.carrier.archived_link'), carrier.archive_messages_path %></li>
12
+ </ul>
13
+ </div>
14
+ </div>
15
+ </div>
@@ -0,0 +1,19 @@
1
+ <%= form_for(@message, :remote => true) do |f| %>
2
+
3
+ <%= error_messages_for @message %>
4
+
5
+ <div class="message_ma_new_wrapper replay_message_ma">
6
+ <h4><span class=""><%= current_user.username %></span> &rArr; <span class="red"><%= @message.recipients_names %></span></h4>
7
+ <div class="field">
8
+ <%= f.label "Сообщение:" %><br />
9
+ <%= f.text_area :content, :rows => 6 %>
10
+ </div>
11
+ <%= f.hidden_field :recipients_ids %>
12
+ <%= f.hidden_field :chain_id %>
13
+ <%= f.hidden_field :sender %>
14
+ <%= f.hidden_field :answers_to %>
15
+ <div class="actions">
16
+ <%= f.submit 'Отправить' %>
17
+ </div>
18
+ </div>
19
+ <% end %>
@@ -0,0 +1,36 @@
1
+ <%= render :partial => 'head' %>
2
+ <%= render :partial => 'nav_messages' %>
3
+ <div class="message_ma_box_info">
4
+ <div class="message_ma_archive_chain" id="archive_chain">
5
+ <%= render :partial => 'archive_chain', :locals => {:chain => @message.chain} %>
6
+ </div>
7
+ <h2><%= @message.subject_without_re %></h2>
8
+ <%= raw(t('views.carrier.participants')) %>
9
+ <%= b raw(t('views.carrier.me')) %>,
10
+ <%= b @message.recipients_names %>
11
+ </div>
12
+
13
+ <% @message.answers.each do |message| %>
14
+ <%= render :partial => 'message_expanded', :locals => {:message => message } if message.sender == current_user.id %>
15
+ <%= render :partial => 'message_collapsed', :locals => {:message => message } if message.sender != current_user.id %>
16
+ <% end %>
17
+
18
+ <div class="message_ma_wrapper ma_open">
19
+ <div class="message_ma_date">
20
+ <%= @message.date_formatted %>
21
+ </div>
22
+ <div class="message_ma_user">
23
+ <%= @message.sender_name %>
24
+ </div>
25
+ <div>
26
+ <b><%= @message.subject %></b>
27
+ </div>
28
+ <div>
29
+ <%= @message.content %>
30
+ </div>
31
+ </div>
32
+
33
+ <div class="ma_wrapper">
34
+ <%= link_to raw(t 'views.carrier.reply_link'), reply_message_path(@message), :remote => true %>
35
+ <div id="reply_form"></div>
36
+ </div>
@@ -0,0 +1 @@
1
+ $('#message-<%= @message.id %>').replaceWith('<%= escape_javascript(render :partial => 'message_collapsed.html.erb', :locals => {:message => @message}) %>')
@@ -0,0 +1 @@
1
+ document.location.href = '<%= as_sent_message_path(@message) %>'
@@ -0,0 +1 @@
1
+ $('#message-<%= @message.id %>').replaceWith('<%= escape_javascript(render :partial => 'message_expanded.html.erb', :locals => {:message => @message }) %>')
@@ -0,0 +1,9 @@
1
+ <%= render :partial => 'head' %>
2
+ <%= render :partial => 'nav_messages' %>
3
+ <div class="carrier_messagelist">
4
+ <% @messages.each do |message| %>
5
+ <%= render :partial => 'index_message', :locals => {:message => message, :m => (message & unread_messages).size} %>
6
+ <% end if @messages.size > 0 %>
7
+ <%= paginate @messages, :window => 4 %>
8
+ </div>
9
+
@@ -0,0 +1,7 @@
1
+ <%= render :partial => 'head' %>
2
+ <%= render :partial => 'nav_messages' %>
3
+ <h2><%= t('views.carrier.new_header')%></h2>
4
+
5
+ <div class="ma_wrapper">
6
+ <%= render 'form' %>
7
+ </div>
@@ -0,0 +1 @@
1
+ $('#reply_form').html('<%= escape_javascript(render :partial => 'reply_form.html.erb') %>');
@@ -0,0 +1,6 @@
1
+ $('#reply_form').html('<%= escape_javascript(render :partial => 'reply.html.erb') %>');
2
+
3
+ $(window).scrollTop($('#message_content').offset().top);
4
+ $('#message_content').focus();
5
+
6
+
@@ -0,0 +1,18 @@
1
+ <%= content_for :stylesheets do %>
2
+ <link rel="stylesheet" href="/assets/ui-lightness/jquery-ui-1.8.14.custom.css"/>
3
+ <link rel="stylesheet" href="/assets/rich-multiselect/ui.multiselect.css"/>
4
+ <% end %>
5
+ <% content_for :javascripts do %>
6
+ <script type="text/javascript" src="/assets/rich-multiselect/jquery-ui.min.js"></script>
7
+ <script textype="text/javascript" src="/assets/rich-multiselect/plugins/localisation/jquery.localisation-min.js"></script>
8
+ <script type="text/javascript" src="/assets/rich-multiselect/plugins/scrollTo/jquery.scrollTo-min.js"></script>
9
+ <script type="text/javascript" src="/assets/rich-multiselect/ui.multiselect.js"></script>
10
+ <% end %>
11
+ <script type="text/javascript">
12
+ $(function(){
13
+ //$.localise('ui-multiselect', {/*language: 'en',*/ parent_messageth: 'js/locale/'});
14
+ $("#message_recipients_").multiselect();
15
+ //$('#switcher').themeswitcher();
16
+ });
17
+ </script>
18
+
@@ -0,0 +1,6 @@
1
+ <%= render :partial => 'carrier/messages/rich/multiselect' %>
2
+ <style>
3
+ /* Плагин растягивается на размер исходного select'а, поэтому задаём вручную: */
4
+ #message_recipients_ {width: 460px;height:200px;}
5
+ </style>
6
+ <%= select_tag "message[recipients][]", options_for_select(without_current_user_select , @message.recipients), { :multiple => true, :size =>6, :width => 400 } %>
@@ -0,0 +1,35 @@
1
+ <%= render :partial => 'head' %>
2
+ <%= render :partial => 'nav_messages' %>
3
+ <div class="message_ma_box_info">
4
+ <div class="message_ma_archive_chain" id="archive_chain">
5
+ <%= render :partial => 'archive_chain', :locals => {:chain => @message.chain} %>
6
+ </div>
7
+ <h2><%= @message.subject_without_re %></h2>
8
+ <%= raw(t('views.carrier.participants')) %>
9
+ <%= b raw(t('views.carrier.me')) %>,
10
+ <%= b @message.recipients_names %>
11
+ </div>
12
+
13
+ <% @message.answers.each do |message| %>
14
+ <%= render :partial => 'message_collapsed', :locals => {:message => message} %>
15
+ <% end %>
16
+
17
+ <div class="message_ma_wrapper ma_open">
18
+ <div class="message_ma_date">
19
+ <%= @message.date_formatted %>
20
+ </div>
21
+ <div class="message_ma_user">
22
+ <%= @message.sender_name %>
23
+ </div>
24
+ <div class="message_ma_subj">
25
+ <b><%= @message.subject %></b>
26
+ </div>
27
+ <div>
28
+ <%= @message.content %>
29
+ </div>
30
+ </div>
31
+
32
+ <div class="ma_wrapper">
33
+ <%= link_to raw(t 'views.carrier.reply_link'), reply_message_path(@message), :remote => true %>
34
+ <div id="reply_form"></div>
35
+ </div>
@@ -0,0 +1,45 @@
1
+ <script>
2
+ $(function() {
3
+ var availableTags = [ <%= users_string %> ];
4
+ function split( val ) {
5
+ return val.split( /,\s*/ );
6
+ }
7
+ function extractLast( term ) {
8
+ return split( term ).pop();
9
+ }
10
+
11
+ $( "#message_recipients_names" )
12
+ // don't navigate away from the field on tab when selecting an item
13
+ .bind( "keydown", function( event ) {
14
+ if ( event.keyCode === $.ui.keyCode.TAB &&
15
+ $( this ).data( "autocomplete"
16
+ ).menu.active ) {
17
+ event.preventDefault();
18
+ }
19
+ })
20
+ .autocomplete({
21
+ minLength: 0,
22
+ source: function( request, response ) {
23
+ // delegate back to autocomplete, but extract the last term
24
+ response( $.ui.autocomplete.filter(
25
+ availableTags, extractLast( request.term )
26
+ ));
27
+ },
28
+ focus: function() {
29
+ // prevent value inserted on focus
30
+ return false;
31
+ },
32
+ select: function( event, ui ) {
33
+ var terms = split( this.value );
34
+ // remove the current input
35
+ terms.pop();
36
+ // add the selected item
37
+ terms.push( ui.item.value );
38
+ // add placeholder to get the comma-and-space at the end
39
+ terms.push( "" );
40
+ this.value = terms.join( ", " );
41
+ return false;
42
+ }
43
+ });
44
+ });
45
+ </script>
@@ -0,0 +1,7 @@
1
+ <%= content_for :stylesheets do %>
2
+ <link rel="stylesheet" href="/assets/ui-lightness/jquery-ui-1.8.14.custom.css"/>
3
+ <% end %>
4
+
5
+ <%= content_for :javascripts do %>
6
+ <%= javascript_include_tag :autocomplete %>
7
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <%= render :partial => 'carrier/messages/simple/autocomplete_includes' %>
2
+ <%= f.text_field :recipients_names %>
3
+ <%= render :partial => 'carrier/messages/simple/autocomplete', :locals => {:users_string => without_current_user} %>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Carrier</title>
5
+ <%= yield :stylesheets %>
6
+ <script src="/assets/jquery.min.js" type="text/javascript"></script>
7
+ <script src="/assets/rails.js" type="text/javascript"></script>
8
+ <%= yield :javascripts %>
9
+ <%= csrf_meta_tags %>
10
+ </head>
11
+ <body>
12
+ <div class="carrier_wrapper">
13
+ <%= yield %>
14
+ </div>
15
+ </body>
16
+ </html>
@@ -0,0 +1,9 @@
1
+ <div class="errorExplanation" id="errorExplanation">
2
+ <h2>Заполните поля верно</h2>
3
+ <p>Проверьте правильность заполнения следующих полей:</p>
4
+ <ul>
5
+ <% resource.errors.full_messages.each do |msg| %>
6
+ <li><%= msg %></li>
7
+ <% end %>
8
+ </ul>
9
+ </div>
@@ -0,0 +1,331 @@
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
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "carrier"
8
+ s.version = "0.0.6"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["stanislaw"]
12
+ s.date = "2011-11-15"
13
+ s.description = "Raw github-like messaging system to reuse across Rails apps. Acts as Rails 3.1 mountable engine. Fast and robust."
14
+ s.email = "s.pankevich@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.textile"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "LICENSE.txt",
24
+ "MIT-LICENSE",
25
+ "README.textile",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "app/assets/images/.gitkeep",
29
+ "app/assets/javascripts/autocomplete.js",
30
+ "app/assets/javascripts/autocomplete/i18n/jquery-ui-i18n.js",
31
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-af.js",
32
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ar-DZ.js",
33
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ar.js",
34
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-az.js",
35
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-bg.js",
36
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-bs.js",
37
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ca.js",
38
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-cs.js",
39
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-da.js",
40
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-de.js",
41
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-el.js",
42
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-AU.js",
43
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-GB.js",
44
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-en-NZ.js",
45
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-eo.js",
46
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-es.js",
47
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-et.js",
48
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-eu.js",
49
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fa.js",
50
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fi.js",
51
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fo.js",
52
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fr-CH.js",
53
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-fr.js",
54
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-gl.js",
55
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-he.js",
56
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hr.js",
57
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hu.js",
58
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-hy.js",
59
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-id.js",
60
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-is.js",
61
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-it.js",
62
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ja.js",
63
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ko.js",
64
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-kz.js",
65
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-lt.js",
66
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-lv.js",
67
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ml.js",
68
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ms.js",
69
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-nl.js",
70
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-no.js",
71
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pl.js",
72
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pt-BR.js",
73
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-pt.js",
74
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-rm.js",
75
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ro.js",
76
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ru.js",
77
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sk.js",
78
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sl.js",
79
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sq.js",
80
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sr-SR.js",
81
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sr.js",
82
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-sv.js",
83
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-ta.js",
84
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-th.js",
85
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-tj.js",
86
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-tr.js",
87
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-uk.js",
88
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-vi.js",
89
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-CN.js",
90
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-HK.js",
91
+ "app/assets/javascripts/autocomplete/i18n/jquery.ui.datepicker-zh-TW.js",
92
+ "app/assets/javascripts/autocomplete/jquery.ui.autocomplete.min.js",
93
+ "app/assets/javascripts/autocomplete/jquery.ui.core.min.js",
94
+ "app/assets/javascripts/autocomplete/jquery.ui.position.min.js",
95
+ "app/assets/javascripts/autocomplete/jquery.ui.widget.min.js",
96
+ "app/assets/javascripts/carrier.js",
97
+ "app/assets/javascripts/jquery.min.js",
98
+ "app/assets/javascripts/rails.js",
99
+ "app/assets/javascripts/rich-multiselect/jquery-ui.min.js",
100
+ "app/assets/javascripts/rich-multiselect/locale/ui-multiselect-de.js",
101
+ "app/assets/javascripts/rich-multiselect/locale/ui-multiselect-en.js",
102
+ "app/assets/javascripts/rich-multiselect/locale/ui-multiselect-es.js",
103
+ "app/assets/javascripts/rich-multiselect/locale/ui-multiselect-fr.js",
104
+ "app/assets/javascripts/rich-multiselect/locale/ui-multiselect-it.js",
105
+ "app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation-min.js",
106
+ "app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation-pack.js",
107
+ "app/assets/javascripts/rich-multiselect/plugins/localisation/jquery.localisation.js",
108
+ "app/assets/javascripts/rich-multiselect/plugins/scrollTo/README.txt",
109
+ "app/assets/javascripts/rich-multiselect/plugins/scrollTo/changes.txt",
110
+ "app/assets/javascripts/rich-multiselect/plugins/scrollTo/jquery.scrollTo-min.js",
111
+ "app/assets/javascripts/rich-multiselect/plugins/scrollTo/jquery.scrollTo.js",
112
+ "app/assets/javascripts/rich-multiselect/ui.multiselect.js",
113
+ "app/assets/stylesheets/carrier.css",
114
+ "app/assets/stylesheets/carrier_rich.css",
115
+ "app/assets/stylesheets/carrier_simple.css",
116
+ "app/assets/stylesheets/rich-multiselect/ui.multiselect.css",
117
+ "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_0_aaaaaa_40x100.png",
118
+ "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_55_fbf9ee_40x100.png",
119
+ "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_65_ffffff_40x100.png",
120
+ "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_cccccc_40x100.png",
121
+ "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_dadada_40x100.png",
122
+ "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_e6e6e6_40x100.png",
123
+ "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_75_ffffff_40x100.png",
124
+ "app/assets/stylesheets/ui-lightness/images/ui-bg_flat_95_fef1ec_40x100.png",
125
+ "app/assets/stylesheets/ui-lightness/images/ui-icons_222222_256x240.png",
126
+ "app/assets/stylesheets/ui-lightness/images/ui-icons_2e83ff_256x240.png",
127
+ "app/assets/stylesheets/ui-lightness/images/ui-icons_454545_256x240.png",
128
+ "app/assets/stylesheets/ui-lightness/images/ui-icons_888888_256x240.png",
129
+ "app/assets/stylesheets/ui-lightness/images/ui-icons_cd0a0a_256x240.png",
130
+ "app/assets/stylesheets/ui-lightness/jquery-ui-1.8.14.custom.css",
131
+ "app/controllers/carrier/application_controller.rb",
132
+ "app/controllers/carrier/chains_controller.rb",
133
+ "app/controllers/carrier/messages_controller.rb",
134
+ "app/helpers/carrier/application_helper.rb",
135
+ "app/helpers/carrier/post_helper.rb",
136
+ "app/models/carrier/chain.rb",
137
+ "app/models/carrier/message.rb",
138
+ "app/models/carrier/message/scopes.rb",
139
+ "app/models/carrier/message/subject.rb",
140
+ "app/models/carrier/message/validations.rb",
141
+ "app/validators/recipients/exclude_self.rb",
142
+ "app/validators/recipients/recipients_validator.rb",
143
+ "app/views/carrier/chains/archive.js.erb",
144
+ "app/views/carrier/chains/unarchive.js.erb",
145
+ "app/views/carrier/messages/_archive_chain.html.erb",
146
+ "app/views/carrier/messages/_form.html.erb",
147
+ "app/views/carrier/messages/_head.html.erb",
148
+ "app/views/carrier/messages/_index_message.html.erb",
149
+ "app/views/carrier/messages/_message_collapsed.html.erb",
150
+ "app/views/carrier/messages/_message_expanded.html.erb",
151
+ "app/views/carrier/messages/_nav_messages.html.erb",
152
+ "app/views/carrier/messages/_reply.html.erb",
153
+ "app/views/carrier/messages/as_sent.html.erb",
154
+ "app/views/carrier/messages/collapsed.js.erb",
155
+ "app/views/carrier/messages/create.js.erb",
156
+ "app/views/carrier/messages/expanded.js.erb",
157
+ "app/views/carrier/messages/index.html.erb",
158
+ "app/views/carrier/messages/new.html.erb",
159
+ "app/views/carrier/messages/new.js.erb",
160
+ "app/views/carrier/messages/reply.js.erb",
161
+ "app/views/carrier/messages/rich/_multiselect.html.erb",
162
+ "app/views/carrier/messages/rich/_recipients.html.erb",
163
+ "app/views/carrier/messages/show.html.erb",
164
+ "app/views/carrier/messages/simple/_autocomplete.html.erb",
165
+ "app/views/carrier/messages/simple/_autocomplete_includes.html.erb",
166
+ "app/views/carrier/messages/simple/_recipients.html.erb",
167
+ "app/views/layouts/carrier/application.html.erb",
168
+ "app/views/partials/_error_messages_for.html.erb",
169
+ "carrier.gemspec",
170
+ "config/locales/carrier.en.yml",
171
+ "config/locales/carrier.ru.yml",
172
+ "config/routes.rb",
173
+ "db/migrate/001_create_messages.rb",
174
+ "db/migrate/002_create_chains.rb",
175
+ "db/migrate/003_create_read_marks",
176
+ "lib/carrier.rb",
177
+ "lib/carrier/configuration.rb",
178
+ "lib/carrier/configuration/models.rb",
179
+ "lib/carrier/configuration/ui.rb",
180
+ "lib/carrier/rails.rb",
181
+ "lib/carrier/rails/engine.rb",
182
+ "lib/carrier/rails/helpers.rb",
183
+ "lib/tasks/carrier_tasks.rake",
184
+ "script/rails",
185
+ "spec/carrier/app/controllers/application_controller_spec.rb",
186
+ "spec/carrier/app/models/message_scopes_spec.rb",
187
+ "spec/carrier/app/models/message_spec.rb",
188
+ "spec/dummy/Rakefile",
189
+ "spec/dummy/app/assets/javascripts/application.js",
190
+ "spec/dummy/app/assets/javascripts/default.js",
191
+ "spec/dummy/app/assets/javascripts/jquery.js",
192
+ "spec/dummy/app/assets/javascripts/jquery_ujs.js",
193
+ "spec/dummy/app/assets/javascripts/posts.js",
194
+ "spec/dummy/app/assets/stylesheets/application.css",
195
+ "spec/dummy/app/assets/stylesheets/default.css",
196
+ "spec/dummy/app/assets/stylesheets/posts.css",
197
+ "spec/dummy/app/assets/stylesheets/scaffold.css",
198
+ "spec/dummy/app/controllers/application_controller.rb",
199
+ "spec/dummy/app/controllers/default_controller.rb",
200
+ "spec/dummy/app/controllers/posts_controller.rb",
201
+ "spec/dummy/app/helpers/application_helper.rb",
202
+ "spec/dummy/app/helpers/default_helper.rb",
203
+ "spec/dummy/app/helpers/posts_helper.rb",
204
+ "spec/dummy/app/mailers/.gitkeep",
205
+ "spec/dummy/app/models/.gitkeep",
206
+ "spec/dummy/app/models/post.rb",
207
+ "spec/dummy/app/models/user.rb",
208
+ "spec/dummy/app/views/default/index.html.erb",
209
+ "spec/dummy/app/views/devise/confirmations/new.html.erb",
210
+ "spec/dummy/app/views/devise/mailer/confirmation_instructions.html.erb",
211
+ "spec/dummy/app/views/devise/mailer/reset_password_instructions.html.erb",
212
+ "spec/dummy/app/views/devise/mailer/unlock_instructions.html.erb",
213
+ "spec/dummy/app/views/devise/passwords/edit.html.erb",
214
+ "spec/dummy/app/views/devise/passwords/new.html.erb",
215
+ "spec/dummy/app/views/devise/registrations/edit.html.erb",
216
+ "spec/dummy/app/views/devise/registrations/new.html.erb",
217
+ "spec/dummy/app/views/devise/sessions/new.html.erb",
218
+ "spec/dummy/app/views/devise/shared/_links.erb",
219
+ "spec/dummy/app/views/devise/unlocks/new.html.erb",
220
+ "spec/dummy/app/views/layouts/application.html.erb",
221
+ "spec/dummy/app/views/posts/_form.html.erb",
222
+ "spec/dummy/app/views/posts/edit.html.erb",
223
+ "spec/dummy/app/views/posts/index.html.erb",
224
+ "spec/dummy/app/views/posts/new.html.erb",
225
+ "spec/dummy/app/views/posts/show.html.erb",
226
+ "spec/dummy/config.ru",
227
+ "spec/dummy/config/application.rb",
228
+ "spec/dummy/config/boot.rb",
229
+ "spec/dummy/config/database.yml",
230
+ "spec/dummy/config/database_mysql.yml",
231
+ "spec/dummy/config/database_pgsql.yml",
232
+ "spec/dummy/config/environment.rb",
233
+ "spec/dummy/config/environments/development.rb",
234
+ "spec/dummy/config/environments/production.rb",
235
+ "spec/dummy/config/environments/test.rb",
236
+ "spec/dummy/config/initializers/backtrace_silencers.rb",
237
+ "spec/dummy/config/initializers/carrier.rb",
238
+ "spec/dummy/config/initializers/devise.rb",
239
+ "spec/dummy/config/initializers/inflections.rb",
240
+ "spec/dummy/config/initializers/mime_types.rb",
241
+ "spec/dummy/config/initializers/secret_token.rb",
242
+ "spec/dummy/config/initializers/session_store.rb",
243
+ "spec/dummy/config/initializers/wrap_parameters.rb",
244
+ "spec/dummy/config/locales/devise.en.yml",
245
+ "spec/dummy/config/locales/en.yml",
246
+ "spec/dummy/config/routes.rb",
247
+ "spec/dummy/db/migrate/007_devise_create_users.rb",
248
+ "spec/dummy/db/migrate/20110130210000_create_read_marks.rb",
249
+ "spec/dummy/db/migrate/20110814064637_create_posts.rb",
250
+ "spec/dummy/db/migrate/20110814164228_create_messages.rb",
251
+ "spec/dummy/db/migrate/20110814164229_create_chains.rb",
252
+ "spec/dummy/db/schema.rb",
253
+ "spec/dummy/db/seeds.rb",
254
+ "spec/dummy/log/.gitkeep",
255
+ "spec/dummy/public/404.html",
256
+ "spec/dummy/public/422.html",
257
+ "spec/dummy/public/500.html",
258
+ "spec/dummy/public/favicon.ico",
259
+ "spec/dummy/script/rails",
260
+ "spec/dummy/test/fixtures/posts.yml",
261
+ "spec/dummy/test/fixtures/users.yml",
262
+ "spec/dummy/test/functional/default_controller_test.rb",
263
+ "spec/dummy/test/functional/posts_controller_test.rb",
264
+ "spec/dummy/test/unit/helpers/default_helper_test.rb",
265
+ "spec/dummy/test/unit/helpers/posts_helper_test.rb",
266
+ "spec/dummy/test/unit/post_test.rb",
267
+ "spec/dummy/test/unit/user_test.rb",
268
+ "spec/dummy_spec_helper.rb",
269
+ "spec/integration/carrier_spec.rb",
270
+ "spec/requests/main_spec.rb",
271
+ "spec/support/controller_macros.rb",
272
+ "spec/support/factories.rb",
273
+ "spec/support/rspec_helpers.rb",
274
+ "test/helper.rb",
275
+ "test/test_carrier.rb"
276
+ ]
277
+ s.homepage = "http://github.com/stanislaw/carrier"
278
+ s.licenses = ["MIT"]
279
+ s.require_paths = ["lib"]
280
+ s.rubygems_version = "1.8.11"
281
+ s.summary = "Raw github-like messaging system to reuse across Rails apps"
282
+
283
+ if s.respond_to? :specification_version then
284
+ s.specification_version = 3
285
+
286
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
287
+ s.add_runtime_dependency(%q<require_all>, [">= 0"])
288
+ s.add_runtime_dependency(%q<kaminari>, [">= 0"])
289
+ s.add_runtime_dependency(%q<unread>, [">= 0"])
290
+ s.add_runtime_dependency(%q<sugar-high>, [">= 0"])
291
+ s.add_runtime_dependency(%q<sweetloader>, [">= 0"])
292
+ s.add_development_dependency(%q<rails>, [">= 3.1.0"])
293
+ s.add_development_dependency(%q<unicorn>, [">= 0"])
294
+ s.add_development_dependency(%q<mysql2>, [">= 0"])
295
+ s.add_development_dependency(%q<devise>, [">= 0"])
296
+ s.add_development_dependency(%q<rake-kit>, [">= 0"])
297
+ s.add_development_dependency(%q<cutter>, [">= 0"])
298
+ s.add_development_dependency(%q<jeweler>, [">= 1.6.4"])
299
+ s.add_development_dependency(%q<rspec-rails>, [">= 2.5"])
300
+ else
301
+ s.add_dependency(%q<require_all>, [">= 0"])
302
+ s.add_dependency(%q<kaminari>, [">= 0"])
303
+ s.add_dependency(%q<unread>, [">= 0"])
304
+ s.add_dependency(%q<sugar-high>, [">= 0"])
305
+ s.add_dependency(%q<sweetloader>, [">= 0"])
306
+ s.add_dependency(%q<rails>, [">= 3.1.0"])
307
+ s.add_dependency(%q<unicorn>, [">= 0"])
308
+ s.add_dependency(%q<mysql2>, [">= 0"])
309
+ s.add_dependency(%q<devise>, [">= 0"])
310
+ s.add_dependency(%q<rake-kit>, [">= 0"])
311
+ s.add_dependency(%q<cutter>, [">= 0"])
312
+ s.add_dependency(%q<jeweler>, [">= 1.6.4"])
313
+ s.add_dependency(%q<rspec-rails>, [">= 2.5"])
314
+ end
315
+ else
316
+ s.add_dependency(%q<require_all>, [">= 0"])
317
+ s.add_dependency(%q<kaminari>, [">= 0"])
318
+ s.add_dependency(%q<unread>, [">= 0"])
319
+ s.add_dependency(%q<sugar-high>, [">= 0"])
320
+ s.add_dependency(%q<sweetloader>, [">= 0"])
321
+ s.add_dependency(%q<rails>, [">= 3.1.0"])
322
+ s.add_dependency(%q<unicorn>, [">= 0"])
323
+ s.add_dependency(%q<mysql2>, [">= 0"])
324
+ s.add_dependency(%q<devise>, [">= 0"])
325
+ s.add_dependency(%q<rake-kit>, [">= 0"])
326
+ s.add_dependency(%q<cutter>, [">= 0"])
327
+ s.add_dependency(%q<jeweler>, [">= 1.6.4"])
328
+ s.add_dependency(%q<rspec-rails>, [">= 2.5"])
329
+ end
330
+ end
331
+