mail_engine 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (452) hide show
  1. data/.yardoc/checksums +12 -11
  2. data/.yardoc/objects/ActionMailer.dat +0 -0
  3. data/.yardoc/objects/ActionMailer/Base.dat +0 -0
  4. data/.yardoc/objects/ActionMailer/Base/collect_responses_and_parts_order_i.dat +0 -0
  5. data/.yardoc/objects/ActionMailer/Base/mail_i.dat +0 -0
  6. data/.yardoc/objects/ActionMailer/Base/origin_mail_i.dat +0 -0
  7. data/.yardoc/objects/ActionMailer/Base/set_layout_and_partials_i.dat +0 -0
  8. data/.yardoc/objects/ActionMailer/Collector.dat +0 -0
  9. data/.yardoc/objects/ActionMailer/Collector/custom_i.dat +0 -0
  10. data/.yardoc/objects/MailEngine.dat +0 -0
  11. data/.yardoc/objects/MailEngine/ActsAsMailReceiver.dat +0 -0
  12. data/.yardoc/objects/MailEngine/ActsAsMailReceiver/ClassMethods.dat +0 -0
  13. data/.yardoc/objects/MailEngine/ActsAsMailReceiver/ClassMethods/acts_as_mail_receiver_i.dat +0 -0
  14. data/.yardoc/objects/MailEngine/ActsAsMailReceiver/ClassMethods/check_method_existance_21_i.dat +0 -0
  15. data/.yardoc/objects/MailEngine/Base.dat +0 -0
  16. data/.yardoc/objects/MailEngine/Base/_40_40configurations.dat +0 -0
  17. data/.yardoc/objects/MailEngine/Base/current_config_c.dat +0 -0
  18. data/.yardoc/objects/MailEngine/Base/send_marketing_mail_c.dat +0 -0
  19. data/.yardoc/objects/MailEngine/Configuration.dat +0 -0
  20. data/.yardoc/objects/MailEngine/Configuration/load_c.dat +0 -0
  21. data/.yardoc/objects/MailEngine/CopyMigrations.dat +0 -0
  22. data/.yardoc/objects/MailEngine/CopyMigrations/copy_migrations_i.dat +0 -0
  23. data/.yardoc/objects/MailEngine/CopyResources.dat +0 -0
  24. data/.yardoc/objects/MailEngine/CopyResources/copy_resources_i.dat +0 -0
  25. data/.yardoc/objects/MailEngine/CreateConfig.dat +0 -0
  26. data/.yardoc/objects/MailEngine/CreateConfig/create_config_file_i.dat +0 -0
  27. data/.yardoc/objects/MailEngine/Engine.dat +0 -0
  28. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer.dat +0 -0
  29. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/check_21_c.dat +0 -0
  30. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/get_resource_url_c.dat +0 -0
  31. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/process_c.dat +0 -0
  32. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/replace_resource_in_html_c.dat +0 -0
  33. data/.yardoc/objects/MailEngine/Install.dat +0 -0
  34. data/.yardoc/objects/MailEngine/Install/copy_migrations_i.dat +0 -0
  35. data/.yardoc/objects/MailEngine/Install/copy_resources_i.dat +0 -0
  36. data/.yardoc/objects/MailEngine/Install/create_config_i.dat +0 -0
  37. data/.yardoc/objects/MailEngine/MailLogSubscriber.dat +0 -0
  38. data/.yardoc/objects/MailEngine/MailLogSubscriber/deliver_i.dat +0 -0
  39. data/.yardoc/objects/MailEngine/PLACEHOLDERS_IN_LAYOUT.dat +0 -0
  40. data/.yardoc/objects/MailEngine/Sendgrid.dat +0 -0
  41. data/.yardoc/objects/MailEngine/Sendgrid/Base.dat +0 -0
  42. data/.yardoc/objects/MailEngine/Sendgrid/Base/ClassMethods.dat +0 -0
  43. data/.yardoc/objects/MailEngine/Sendgrid/Base/ClassMethods/sendgrid_header_i.dat +0 -0
  44. data/.yardoc/objects/MailEngine/Sendgrid/Base/InstanceMethods.dat +0 -0
  45. data/.yardoc/objects/MailEngine/Sendgrid/FilterSetting.dat +0 -0
  46. data/.yardoc/objects/MailEngine/Sendgrid/FilterSetting/data_3D_i.dat +0 -0
  47. data/.yardoc/objects/MailEngine/Sendgrid/FilterSetting/data_i.dat +0 -0
  48. data/.yardoc/objects/MailEngine/Sendgrid/FilterSetting/initialize_i.dat +0 -0
  49. data/.yardoc/objects/MailEngine/Sendgrid/FilterSetting/validate_config_21_i.dat +0 -0
  50. data/.yardoc/objects/MailEngine/Sendgrid/RestApi.dat +0 -0
  51. data/.yardoc/objects/MailEngine/Sendgrid/RestApi/blocks_c.dat +0 -0
  52. data/.yardoc/objects/MailEngine/Sendgrid/RestApi/bounces_c.dat +0 -0
  53. data/.yardoc/objects/MailEngine/Sendgrid/RestApi/invalidemails_c.dat +0 -0
  54. data/.yardoc/objects/MailEngine/Sendgrid/RestApi/spamreports_c.dat +0 -0
  55. data/.yardoc/objects/MailEngine/Sendgrid/RestApi/stats_c.dat +0 -0
  56. data/.yardoc/objects/MailEngine/Sendgrid/RestApiError.dat +0 -0
  57. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi.dat +0 -0
  58. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/add_sub_val_i.dat +0 -0
  59. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/add_to_i.dat +0 -0
  60. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/category_i.dat +0 -0
  61. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/filters_i.dat +0 -0
  62. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/initialize_i.dat +0 -0
  63. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/set_unique_args_i.dat +0 -0
  64. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/to_hash_i.dat +0 -0
  65. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/to_json_i.dat +0 -0
  66. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/to_s_i.dat +0 -0
  67. data/.yardoc/objects/MailEngine/VERSION.dat +0 -0
  68. data/.yardoc/objects/MailEngine/ZipProcessor.dat +0 -0
  69. data/.yardoc/objects/MailEngine/ZipProcessor/extract_all_files_c.dat +0 -0
  70. data/.yardoc/objects/root.dat +0 -0
  71. data/Gemfile +16 -13
  72. data/Gemfile.lock +69 -46
  73. data/README.mkd +14 -2
  74. data/VERSION +1 -1
  75. data/app/controllers/mail_engine/application_controller.rb +4 -0
  76. data/app/controllers/mail_engine/mail_logs_controller.rb +1 -1
  77. data/app/controllers/mail_engine/mail_schedules_controller.rb +4 -4
  78. data/app/controllers/mail_engine/mail_template_files_controller.rb +4 -4
  79. data/app/controllers/mail_engine/mail_templates_controller.rb +16 -11
  80. data/app/controllers/mail_engine/reports_controller.rb +5 -1
  81. data/app/helpers/mail_engine/mail_engine_helper.rb +1 -1
  82. data/app/mailers/mail_engine/mail_dispatcher.rb +16 -9
  83. data/app/models/mail_engine/mail_log.rb +1 -1
  84. data/app/models/mail_engine/mail_schedule.rb +14 -12
  85. data/app/models/mail_engine/mail_template.rb +81 -55
  86. data/app/models/mail_engine/mail_template_file.rb +4 -3
  87. data/app/views/layouts/mail_engine/mail_engine.html.erb +31 -18
  88. data/app/views/layouts/mail_engine/simple.html.erb +14 -0
  89. data/app/views/mail_engine/dashboard/index.html.erb +18 -1
  90. data/app/views/mail_engine/mail_logs/_related_logs.html.erb +29 -0
  91. data/app/views/mail_engine/mail_logs/index.html.erb +5 -5
  92. data/app/views/mail_engine/mail_schedules/_form.html.erb +6 -5
  93. data/app/views/mail_engine/mail_schedules/index.html.erb +13 -8
  94. data/app/views/mail_engine/mail_schedules/show.html.erb +2 -0
  95. data/app/views/mail_engine/mail_template_files/_form.html.erb +20 -10
  96. data/app/views/mail_engine/mail_template_files/edit.html.erb +2 -0
  97. data/app/views/mail_engine/mail_template_files/new.html.erb +2 -0
  98. data/app/views/mail_engine/mail_templates/_form.html.erb +65 -12
  99. data/app/views/mail_engine/mail_templates/_layout_selector.html.erb +3 -3
  100. data/app/views/mail_engine/mail_templates/duplicate.html.erb +11 -7
  101. data/app/views/mail_engine/mail_templates/index.html.erb +25 -21
  102. data/app/views/mail_engine/mail_templates/new_by_upload.html.erb +11 -5
  103. data/app/views/mail_engine/mail_templates/partial_options.html.erb +2 -2
  104. data/app/views/mail_engine/mail_templates/show.html.erb +19 -29
  105. data/app/views/mail_engine/reports/charts/blocks.html.erb +2 -2
  106. data/app/views/mail_engine/reports/charts/bounces.html.erb +2 -2
  107. data/app/views/mail_engine/reports/charts/invalidemails.html.erb +2 -2
  108. data/app/views/mail_engine/reports/charts/spamreports.html.erb +2 -2
  109. data/app/views/mail_engine/reports/index.html.erb +40 -5
  110. data/config/routes.rb +5 -6
  111. data/db/migrate/20110114030841_create_table_mail_template.rb +1 -0
  112. data/doc/ActionMailer.html +108 -0
  113. data/doc/ActionMailer/Base.html +193 -0
  114. data/doc/ActionMailer/Collector.html +175 -0
  115. data/doc/MailEngine.html +146 -0
  116. data/doc/MailEngine/ActsAsMailReceiver.html +97 -0
  117. data/doc/MailEngine/ActsAsMailReceiver/ClassMethods.html +187 -0
  118. data/doc/MailEngine/Base.html +297 -0
  119. data/doc/MailEngine/Configuration.html +181 -0
  120. data/doc/MailEngine/CopyMigrations.html +187 -0
  121. data/doc/MailEngine/CopyResources.html +171 -0
  122. data/doc/MailEngine/CreateConfig.html +193 -0
  123. data/doc/MailEngine/CreateMigration.html +187 -0
  124. data/doc/MailEngine/Engine.html +100 -0
  125. data/doc/MailEngine/HtmlDocumentAssetsReplacer.html +397 -0
  126. data/doc/MailEngine/Install.html +273 -0
  127. data/doc/MailEngine/MailLogSubscriber.html +204 -0
  128. data/doc/MailEngine/Sendgrid.html +101 -0
  129. data/doc/MailEngine/Sendgrid/Base.html +97 -0
  130. data/doc/MailEngine/Sendgrid/Base/ClassMethods.html +150 -0
  131. data/doc/MailEngine/Sendgrid/Base/InstanceMethods.html +81 -0
  132. data/doc/MailEngine/Sendgrid/FilterSetting.html +257 -0
  133. data/doc/MailEngine/Sendgrid/RestApi.html +476 -0
  134. data/doc/MailEngine/Sendgrid/RestApiError.html +100 -0
  135. data/doc/MailEngine/Sendgrid/SmtpApi.html +604 -0
  136. data/doc/MailEngine/ZipProcessor.html +267 -0
  137. data/doc/_index.html +21 -7
  138. data/doc/class_list.html +1 -1
  139. data/doc/file.README.html +231 -0
  140. data/doc/index.html +231 -0
  141. data/doc/method_list.html +45 -21
  142. data/doc/top-level-namespace.html +88 -0
  143. data/lib/mail_engine.rb +7 -1
  144. data/lib/mail_engine/action_mailer_patch.rb +7 -0
  145. data/lib/mail_engine/acts_as_mail_receiver.rb +40 -6
  146. data/lib/mail_engine/base.rb +28 -7
  147. data/lib/mail_engine/configuration.rb +3 -0
  148. data/lib/mail_engine/engine.rb +5 -5
  149. data/lib/mail_engine/generators/{create_migration.rb → copy_migrations.rb} +4 -3
  150. data/lib/mail_engine/generators/copy_resources.rb +13 -0
  151. data/lib/mail_engine/generators/install.rb +21 -0
  152. data/lib/mail_engine/generators/templates/mail_engine_config.yml +10 -1
  153. data/lib/mail_engine/html_document_assets_replacer.rb +12 -23
  154. data/lib/mail_engine/mail_log_subscriber.rb +13 -5
  155. data/lib/mail_engine/zip_processor.rb +10 -1
  156. data/mail_engine.gemspec +336 -110
  157. data/public/images/mail_engine/header_and_footer_layout.png +0 -0
  158. data/public/images/mail_engine/icons/add.png +0 -0
  159. data/public/images/mail_engine/icons/copy.png +0 -0
  160. data/public/images/mail_engine/icons/delete.png +0 -0
  161. data/public/images/mail_engine/icons/edit.gif +0 -0
  162. data/public/images/mail_engine/icons/missing.png +0 -0
  163. data/public/images/mail_engine/icons/save.png +0 -0
  164. data/public/images/mail_engine/icons/show.png +0 -0
  165. data/public/images/mail_engine/logo.gif +0 -0
  166. data/public/images/mail_engine/logo.png +0 -0
  167. data/public/images/mail_engine/none_layout.png +0 -0
  168. data/public/images/mail_engine/only_footer_layout.png +0 -0
  169. data/public/images/mail_engine/unselect_header_and_footer_layout.png +0 -0
  170. data/public/images/mail_engine/unselect_none_layout.png +0 -0
  171. data/public/images/mail_engine/unselect_only_footer_layout.png +0 -0
  172. data/public/javascripts/mail_engine/fancybox/blank.gif +0 -0
  173. data/public/javascripts/mail_engine/fancybox/fancy_close.png +0 -0
  174. data/public/javascripts/mail_engine/fancybox/fancy_loading.png +0 -0
  175. data/public/javascripts/mail_engine/fancybox/fancy_nav_left.png +0 -0
  176. data/public/javascripts/mail_engine/fancybox/fancy_nav_right.png +0 -0
  177. data/public/javascripts/mail_engine/fancybox/fancy_shadow_e.png +0 -0
  178. data/public/javascripts/mail_engine/fancybox/fancy_shadow_n.png +0 -0
  179. data/public/javascripts/mail_engine/fancybox/fancy_shadow_ne.png +0 -0
  180. data/public/javascripts/mail_engine/fancybox/fancy_shadow_nw.png +0 -0
  181. data/public/javascripts/mail_engine/fancybox/fancy_shadow_s.png +0 -0
  182. data/public/javascripts/mail_engine/fancybox/fancy_shadow_se.png +0 -0
  183. data/public/javascripts/mail_engine/fancybox/fancy_shadow_sw.png +0 -0
  184. data/public/javascripts/mail_engine/fancybox/fancy_shadow_w.png +0 -0
  185. data/public/javascripts/mail_engine/fancybox/fancy_title_left.png +0 -0
  186. data/public/javascripts/mail_engine/fancybox/fancy_title_main.png +0 -0
  187. data/public/javascripts/mail_engine/fancybox/fancy_title_over.png +0 -0
  188. data/public/javascripts/mail_engine/fancybox/fancy_title_right.png +0 -0
  189. data/public/javascripts/mail_engine/fancybox/fancybox-x.png +0 -0
  190. data/public/javascripts/mail_engine/fancybox/fancybox-y.png +0 -0
  191. data/public/javascripts/mail_engine/fancybox/fancybox.png +0 -0
  192. data/public/javascripts/mail_engine/fancybox/jquery.easing-1.3.pack.js +72 -0
  193. data/public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.css +359 -0
  194. data/public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.js +1156 -0
  195. data/public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.pack.js +46 -0
  196. data/public/javascripts/mail_engine/fancybox/jquery.mousewheel-3.0.4.pack.js +14 -0
  197. data/public/javascripts/mail_engine/jquery-ui.min.js +577 -0
  198. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/jquery.iframe-auto-height.plugin.js +0 -0
  199. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/jquery.string.js +0 -0
  200. data/{test/dummy/public/javascripts/mail_engine_application.js → public/javascripts/mail_engine/mail_engine.js} +0 -0
  201. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/jquery.markitup.js +0 -0
  202. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/bold.png +0 -0
  203. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/css.png +0 -0
  204. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/italic.png +0 -0
  205. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/picture.png +0 -0
  206. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/stroke.png +0 -0
  207. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/tag.png +0 -0
  208. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_align_center.png +0 -0
  209. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_align_justify.png +0 -0
  210. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_align_left.png +0 -0
  211. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_align_right.png +0 -0
  212. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_indent.png +0 -0
  213. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_letterspacing.png +0 -0
  214. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_linespacing.png +0 -0
  215. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_lowercase.png +0 -0
  216. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_padding_bottom.png +0 -0
  217. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_padding_left.png +0 -0
  218. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_padding_right.png +0 -0
  219. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_padding_top.png +0 -0
  220. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/images/text_uppercase.png +0 -0
  221. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/readme.txt +0 -0
  222. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/set.js +0 -0
  223. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/css/style.css +0 -0
  224. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/default/images/bold.png +0 -0
  225. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/default/images/clean.png +0 -0
  226. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/default/images/image.png +0 -0
  227. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/default/images/italic.png +0 -0
  228. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/default/images/link.png +0 -0
  229. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/default/images/picture.png +0 -0
  230. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/default/images/preview.png +0 -0
  231. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/default/images/stroke.png +0 -0
  232. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/default/set.js +0 -0
  233. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/default/style.css +0 -0
  234. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/bold.png +0 -0
  235. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/clean.png +0 -0
  236. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/h1.png +0 -0
  237. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/h2.png +0 -0
  238. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/h3.png +0 -0
  239. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/h4.png +0 -0
  240. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/h5.png +0 -0
  241. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/h6.png +0 -0
  242. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/image.png +0 -0
  243. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/italic.png +0 -0
  244. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/link.png +0 -0
  245. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/list-bullet.png +0 -0
  246. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/list-item.png +0 -0
  247. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/list-numeric.png +0 -0
  248. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/paragraph.png +0 -0
  249. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/picture.png +0 -0
  250. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/preview.png +0 -0
  251. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/images/stroke.png +0 -0
  252. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/readme.txt +0 -0
  253. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/set.js +0 -0
  254. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/sets/html/style.css +0 -0
  255. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/bg-container.png +0 -0
  256. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/bg-editor-bbcode.png +0 -0
  257. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/bg-editor-dotclear.png +0 -0
  258. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/bg-editor-html.png +0 -0
  259. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/bg-editor-json.png +0 -0
  260. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/bg-editor-markdown.png +0 -0
  261. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/bg-editor-textile.png +0 -0
  262. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/bg-editor-wiki.png +0 -0
  263. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/bg-editor-xml.png +0 -0
  264. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/bg-editor.png +0 -0
  265. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/handle.png +0 -0
  266. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/menu.png +0 -0
  267. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/images/submenu.png +0 -0
  268. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/markitup/style.css +0 -0
  269. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/simple/images/handle.png +0 -0
  270. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/simple/images/menu.png +0 -0
  271. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/simple/images/submenu.png +0 -0
  272. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/skins/simple/style.css +0 -0
  273. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/templates/preview.css +0 -0
  274. data/{test/dummy/public/javascripts → public/javascripts/mail_engine}/markitup/templates/preview.html +0 -0
  275. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  276. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  277. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  278. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  279. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  280. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  281. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  282. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  283. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_222222_256x240.png +0 -0
  284. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  285. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_454545_256x240.png +0 -0
  286. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_888888_256x240.png +0 -0
  287. data/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  288. data/public/stylesheets/mail_engine/jquery-ui/smoothness/jquery-ui.css +544 -0
  289. data/{test/dummy/public/stylesheets → public/stylesheets/mail_engine}/style.css +6 -2
  290. data/test/dummy/app/controllers/application_controller.rb +0 -8
  291. data/test/dummy/app/models/user.rb +6 -4
  292. data/test/dummy/config/application.rb +2 -2
  293. data/test/dummy/config/database.yml +2 -2
  294. data/test/dummy/db/migrate/20110114030841_create_table_mail_template.rb +1 -0
  295. data/test/dummy/db/migrate/20110206025002_create_mail_logs.rb +1 -1
  296. data/test/dummy/db/schema.rb +1 -0
  297. data/test/dummy/public/images/mail_engine/icons/add.png +0 -0
  298. data/test/dummy/public/images/mail_engine/icons/copy.png +0 -0
  299. data/test/dummy/public/images/mail_engine/icons/delete.png +0 -0
  300. data/test/dummy/public/images/mail_engine/icons/edit.gif +0 -0
  301. data/test/dummy/public/images/mail_engine/icons/missing.png +0 -0
  302. data/test/dummy/public/images/mail_engine/icons/save.png +0 -0
  303. data/test/dummy/public/images/mail_engine/icons/show.png +0 -0
  304. data/test/dummy/public/javascripts/mail_engine/fancybox/blank.gif +0 -0
  305. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_close.png +0 -0
  306. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_loading.png +0 -0
  307. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_nav_left.png +0 -0
  308. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_nav_right.png +0 -0
  309. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_e.png +0 -0
  310. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_n.png +0 -0
  311. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_ne.png +0 -0
  312. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_nw.png +0 -0
  313. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_s.png +0 -0
  314. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_se.png +0 -0
  315. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_sw.png +0 -0
  316. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_w.png +0 -0
  317. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_title_left.png +0 -0
  318. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_title_main.png +0 -0
  319. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_title_over.png +0 -0
  320. data/test/dummy/public/javascripts/mail_engine/fancybox/fancy_title_right.png +0 -0
  321. data/test/dummy/public/javascripts/mail_engine/fancybox/fancybox-x.png +0 -0
  322. data/test/dummy/public/javascripts/mail_engine/fancybox/fancybox-y.png +0 -0
  323. data/test/dummy/public/javascripts/mail_engine/fancybox/fancybox.png +0 -0
  324. data/test/dummy/public/javascripts/mail_engine/fancybox/jquery.easing-1.3.pack.js +72 -0
  325. data/test/dummy/public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.css +359 -0
  326. data/test/dummy/public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.js +1156 -0
  327. data/test/dummy/public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.pack.js +46 -0
  328. data/test/dummy/public/javascripts/mail_engine/fancybox/jquery.mousewheel-3.0.4.pack.js +14 -0
  329. data/test/dummy/public/javascripts/mail_engine/jquery-ui.min.js +577 -0
  330. data/test/dummy/public/javascripts/mail_engine/jquery.iframe-auto-height.plugin.js +50 -0
  331. data/test/dummy/public/javascripts/mail_engine/jquery.string.js +425 -0
  332. data/test/dummy/public/javascripts/mail_engine/mail_engine.js +2 -0
  333. data/test/dummy/public/javascripts/mail_engine/markitup/jquery.markitup.js +564 -0
  334. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/bold.png +0 -0
  335. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/css.png +0 -0
  336. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/italic.png +0 -0
  337. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/picture.png +0 -0
  338. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/stroke.png +0 -0
  339. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/tag.png +0 -0
  340. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_align_center.png +0 -0
  341. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_align_justify.png +0 -0
  342. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_align_left.png +0 -0
  343. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_align_right.png +0 -0
  344. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_indent.png +0 -0
  345. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_letterspacing.png +0 -0
  346. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_linespacing.png +0 -0
  347. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_lowercase.png +0 -0
  348. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_padding_bottom.png +0 -0
  349. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_padding_left.png +0 -0
  350. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_padding_right.png +0 -0
  351. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_padding_top.png +0 -0
  352. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_uppercase.png +0 -0
  353. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/readme.txt +28 -0
  354. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/set.js +52 -0
  355. data/test/dummy/public/javascripts/mail_engine/markitup/sets/css/style.css +72 -0
  356. data/test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/bold.png +0 -0
  357. data/test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/clean.png +0 -0
  358. data/test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/image.png +0 -0
  359. data/test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/italic.png +0 -0
  360. data/test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/link.png +0 -0
  361. data/test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/picture.png +0 -0
  362. data/test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/preview.png +0 -0
  363. data/test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/stroke.png +0 -0
  364. data/test/dummy/public/javascripts/mail_engine/markitup/sets/default/set.js +27 -0
  365. data/test/dummy/public/javascripts/mail_engine/markitup/sets/default/style.css +27 -0
  366. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/bold.png +0 -0
  367. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/clean.png +0 -0
  368. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h1.png +0 -0
  369. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h2.png +0 -0
  370. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h3.png +0 -0
  371. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h4.png +0 -0
  372. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h5.png +0 -0
  373. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h6.png +0 -0
  374. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/image.png +0 -0
  375. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/italic.png +0 -0
  376. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/link.png +0 -0
  377. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/list-bullet.png +0 -0
  378. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/list-item.png +0 -0
  379. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/list-numeric.png +0 -0
  380. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/paragraph.png +0 -0
  381. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/picture.png +0 -0
  382. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/preview.png +0 -0
  383. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/stroke.png +0 -0
  384. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/readme.txt +11 -0
  385. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/set.js +40 -0
  386. data/test/dummy/public/javascripts/mail_engine/markitup/sets/html/style.css +59 -0
  387. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-container.png +0 -0
  388. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-bbcode.png +0 -0
  389. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-dotclear.png +0 -0
  390. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-html.png +0 -0
  391. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-json.png +0 -0
  392. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-markdown.png +0 -0
  393. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-textile.png +0 -0
  394. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-wiki.png +0 -0
  395. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-xml.png +0 -0
  396. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor.png +0 -0
  397. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/handle.png +0 -0
  398. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/menu.png +0 -0
  399. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/submenu.png +0 -0
  400. data/test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/style.css +147 -0
  401. data/test/dummy/public/javascripts/mail_engine/markitup/skins/simple/images/handle.png +0 -0
  402. data/test/dummy/public/javascripts/mail_engine/markitup/skins/simple/images/menu.png +0 -0
  403. data/test/dummy/public/javascripts/mail_engine/markitup/skins/simple/images/submenu.png +0 -0
  404. data/test/dummy/public/javascripts/mail_engine/markitup/skins/simple/style.css +118 -0
  405. data/test/dummy/public/javascripts/mail_engine/markitup/templates/preview.css +5 -0
  406. data/test/dummy/public/javascripts/mail_engine/markitup/templates/preview.html +11 -0
  407. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  408. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  409. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  410. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  411. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  412. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  413. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  414. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  415. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_222222_256x240.png +0 -0
  416. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  417. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_454545_256x240.png +0 -0
  418. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_888888_256x240.png +0 -0
  419. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  420. data/test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/jquery-ui.css +544 -0
  421. data/test/dummy/public/stylesheets/mail_engine/style.css +685 -0
  422. data/test/factories.rb +31 -4
  423. data/test/functional/mail_engine/{mail_schedules_controller_controller_test.rb → dashboard_controller_test.rb} +2 -2
  424. data/test/functional/mail_engine/{mail_templates_controller_controller_test.rb → mail_logs_controller_test.rb} +2 -2
  425. data/test/functional/mail_engine/mail_schedules_controller_test.rb +8 -0
  426. data/test/functional/mail_engine/mail_template_files_controller_test.rb +8 -0
  427. data/test/functional/mail_engine/mail_templates_controller_test.rb +8 -0
  428. data/test/functional/mail_engine/reports_controller_test.rb +8 -0
  429. data/test/functional/user_mailer_test.rb +14 -0
  430. data/test/test_helper.rb +4 -1
  431. data/test/unit/mail_engine/mail_log_test.rb +1 -1
  432. data/test/unit/mail_engine/mail_schedule_test.rb +34 -1
  433. data/test/unit/mail_engine/mail_template_test.rb +51 -12
  434. data/test/unit/user_test.rb +20 -0
  435. metadata +370 -125
  436. data/.yardoc/objects/MailEngine/Base/send_mail_c.dat +0 -0
  437. data/.yardoc/objects/MailEngine/CreateMigration.dat +0 -0
  438. data/.yardoc/objects/MailEngine/CreateMigration/create_migrations_i.dat +0 -0
  439. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/replace_resource_filename_in_html_c.dat +0 -0
  440. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/replace_resource_url_in_html_c.dat +0 -0
  441. data/.yardoc/objects/PLACEHOLDERS_IN_LAYOUT.dat +0 -0
  442. data/lib/mail_engine/placeholders_in_layout.rb +0 -5
  443. data/test/dummy/public/javascripts/jquery.nyroModal/img/ajaxLoader.gif +0 -0
  444. data/test/dummy/public/javascripts/jquery.nyroModal/img/close.gif +0 -0
  445. data/test/dummy/public/javascripts/jquery.nyroModal/img/next.gif +0 -0
  446. data/test/dummy/public/javascripts/jquery.nyroModal/img/prev.gif +0 -0
  447. data/test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal-ie6.js +0 -186
  448. data/test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal-ie6.min.js +0 -9
  449. data/test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal.custom.js +0 -1599
  450. data/test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal.custom.min.js +0 -34
  451. data/test/dummy/public/javascripts/jquery.nyroModal/styles/nyroModal.css +0 -102
  452. data/test/dummy/public/stylesheets/.gitkeep +0 -0
data/lib/mail_engine.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  require 'active_support'
2
2
  require "action_view/template"
3
3
  require 'mail_engine/engine'
4
- require 'mail_engine/placeholders_in_layout'
5
4
  require 'mail_engine/mail_log_subscriber'
6
5
  require 'mail_engine/zip_processor'
7
6
  require 'mail_engine/html_document_assets_replacer'
@@ -9,6 +8,13 @@ require 'mail_engine/html_document_assets_replacer'
9
8
  module MailEngine
10
9
  extend ::ActiveSupport::Autoload
11
10
 
11
+ # used for looking up which layout needs which placeholders.
12
+ PLACEHOLDERS_IN_LAYOUT = {
13
+ :none => [],
14
+ :only_footer => ['footer'],
15
+ :header_and_footer => ['header', 'footer']
16
+ }
17
+
12
18
  autoload :Base
13
19
  autoload :Sendgrid
14
20
  autoload :Mailer
@@ -3,7 +3,11 @@ module ActionMailer
3
3
  class Base
4
4
  alias_method :origin_mail, :mail
5
5
  def mail(headers={}, &block)
6
+ # order by latest uploaded, for get the latest updated 'subject'
7
+ current_template = MailEngine::MailTemplate.where(:path => "#{controller_path}/#{action_name}", :locale => I18n.locale, :partial => false).order("updated_at desc").first
8
+ headers[:subject] = current_template.subject if headers[:subject].blank? && current_template.present?
6
9
  headers[:message_id] = "#{controller_path}/#{action_name}"
10
+
7
11
  # Add sendgrid header before sending mail.
8
12
  # Why here but not add to default_params of action_mailer? because the receiver email [:to] only can get here.
9
13
  if self.sendgrid_config
@@ -35,6 +39,7 @@ module ActionMailer
35
39
  ######################################################################################
36
40
 
37
41
  yield(collector)
42
+ parts_order = collector.responses.map { |r| r[:content_type] }
38
43
  responses = collector.responses
39
44
  elsif headers[:body]
40
45
  responses << {
@@ -61,7 +66,9 @@ module ActionMailer
61
66
 
62
67
  # set layout and partials
63
68
  def set_layout_and_partials(format)
69
+ # looking for system mail.
64
70
  template = MailEngine::MailTemplate.where(:path => "#{controller_path}/#{action_name}", :format => format, :locale => I18n.locale, :partial => false, :for_marketing => false).first
71
+ # looking for marketing mail.
65
72
  template = MailEngine::MailTemplate.where(:path => action_name, :format => format, :locale => I18n.locale, :partial => false, :for_marketing => true).first if template.blank?
66
73
 
67
74
  # if found db template set the layout and partial for it.
@@ -1,22 +1,56 @@
1
1
  require 'active_support/concern'
2
2
 
3
+ # Used for setting a User model as a Mail Receiver Data Provider
3
4
  module MailEngine
4
5
  module ActsAsMailReceiver
5
6
  extend ActiveSupport::Concern
6
7
 
7
8
  included do
8
- cattr_accessor :payload_columns
9
- cattr_accessor :groups
9
+ cattr_accessor :payload_columns, :groups
10
10
  end
11
11
 
12
12
  module ClassMethods
13
+ ###
14
+ # NOTICE: Please put this code below any "scope" statement.
15
+ # Here you can define:
16
+ # 1. Which columns can be acted as payload items.
17
+ # 2. Which methods can be user group scopes.
18
+ #
19
+ # ==== Example
20
+ #
21
+ # class User < AR
22
+ # acts_as_mail_receiver :payload_columns => %w{firstname lastname},
23
+ # :groups => %w{all english_users chinese_users},
24
+ # :skip_method_existance_check => true
25
+ # end
26
+ #
13
27
  def acts_as_mail_receiver(options)
14
- self.payload_columns = options[:payload_columns]
15
- self.groups = options[:groups]
28
+ [:payload_columns, :groups].each do |key|
29
+ methods_array = Array.wrap(options[key]) || []
30
+ self.send("#{key}=", methods_array)
31
+ end
32
+ check_method_existance! unless options[:skip_method_existance_check]
33
+ end
34
+
35
+ private
36
+
37
+ # Check if the methods is existed in the User model.
38
+ # If raise error.
39
+ def check_method_existance!
40
+ return false if defined?(Rake) && Rake.application.top_level_tasks.include?("db:migrate")
41
+
42
+ nonexist_groups = self.groups.select do |group|
43
+ !self.methods.include?(group)
44
+ end
45
+
46
+ nonexist_payload_columns = self.payload_columns.select do |col|
47
+ !self.instance_methods.include?(col) and !self.column_names.include?(col)
48
+ end
49
+
50
+ raise "Doesn't find group methods in #{self.name}:#{nonexist_groups.inspect}" if nonexist_groups.present?
51
+ raise "Doesn't find payload column methods in #{self.name}:#{nonexist_payload_columns.inspect}" if nonexist_payload_columns.present?
16
52
  end
17
53
  end
18
54
 
19
- # module InstanceMethods
20
- # end
21
55
  end
22
56
  end
@@ -4,23 +4,44 @@ module MailEngine
4
4
  @@configurations = HashWithIndifferentAccess.new
5
5
 
6
6
  class << self
7
+ # return current runtime environment config hash.
8
+ # === example
9
+ #
10
+ # log_mail: true
11
+ # sendgrid_user: "xxx@theplant.jp"
12
+ # sendgrid_key: "xxx"
13
+ # sendgrid_category: "development"
14
+ # user_class_name: "User"
15
+ # mount_at: "/admin"
16
+ #
7
17
  def current_config
8
18
  MailEngine::Base.configurations[Rails.env]
9
19
  end
10
20
 
11
- ### send mail template with given data.
12
- # MailEngine::Base.send_mail("gogogo", :to => 'm@theplant.jp', :values => {:users => User.last})
13
- def send_mail(template, *args)
21
+ # send mail template with given data.
22
+ # === example
23
+ #
24
+ # MailEngine::Base.send_marketing_mail("newsletter", :to => 'm@theplant.jp', :values => {:users => MailEngine::USER_MODEL.last})
25
+ #
26
+ def send_marketing_mail(template, *args)
14
27
  options = args.extract_options!
28
+ options[:locale] ||= I18n.locale
29
+
30
+ # ensure the :to parameter.
15
31
  raise "Should specify :to option" if options[:to].blank?
16
32
 
17
- # find if the template was stored in database.
33
+ # find the template from database.
18
34
  template_path = File.join("mail_engine", "mail_dispatcher", template)
19
- raise "Can't find the template: #{template_path}" unless mail_template = MailEngine::MailTemplate.where(:path => template_path).first
35
+ unless mail_template = MailEngine::MailTemplate.where(:path => template_path, :locale => options[:locale], :for_marketing => true, :partial => false).first
36
+ raise "Can't find the template: #{template_path}"
37
+ end
20
38
 
21
- options[:subject] = mail_template.name
22
- MailEngine::MailDispatcher.send(template, options).deliver
39
+ options[:subject] ||= mail_template.subject
40
+ I18n.with_locale(mail_template.locale) do
41
+ MailEngine::MailDispatcher.send(template, options).deliver
42
+ end
23
43
  end
44
+
24
45
  end
25
46
  end
26
47
  end
@@ -1,8 +1,11 @@
1
1
  module MailEngine
2
+ # Load configure file from config/mail_engine_config.yml
3
+ # you can access the config by MailEngine::Base.current_config[]
2
4
  class Configuration
3
5
  class << self
4
6
  def load
5
7
  require 'erb'
8
+
6
9
  config_path = File.join(Rails.root, "config", "mail_engine_config.yml")
7
10
  MailEngine::Base.configurations = YAML::load(ERB.new(IO.read(config_path)).result)
8
11
  end
@@ -22,21 +22,21 @@ module MailEngine
22
22
  ActiveRecord::Base.send(:include, MailEngine::ActsAsMailReceiver)
23
23
  end
24
24
 
25
- # initializer "mail_engine.register_mail_log" do
26
- # ActionMailer::Base.register_interceptor MailEngine::MailLog
27
- # end
28
-
29
25
  rake_tasks do
30
26
  load "mail_engine/tasks/sendmail.rake"
31
27
  end
32
28
 
33
29
  generators do
30
+ require 'mail_engine/generators/install.rb'
34
31
  require 'mail_engine/generators/create_config.rb'
35
- require 'mail_engine/generators/create_migration.rb'
32
+ require 'mail_engine/generators/copy_resources.rb'
33
+ require 'mail_engine/generators/copy_migrations.rb'
36
34
  end
37
35
 
38
36
  config.to_prepare do
39
37
  MailEngine::Configuration.load
38
+ raise "Please add :user_class_name config into mail_engine_config.yml." if MailEngine::Base.current_config["user_class_name"].blank?
39
+ MailEngine::USER_MODEL = MailEngine::Base.current_config["user_class_name"].constantize unless defined?(MailEngine::USER_MODEL)
40
40
  end
41
41
  end
42
42
  end
@@ -1,9 +1,9 @@
1
1
  module MailEngine
2
- class CreateMigration < Rails::Generators::Base
2
+ class CopyMigrations < Rails::Generators::Base
3
3
  desc "Add mail template model migration to your application."
4
4
  source_root File.join(File.dirname(__FILE__))
5
5
 
6
- def create_migrations
6
+ def copy_migrations
7
7
  [
8
8
  "20110114030841_create_table_mail_template",
9
9
  "20110126030525_create_mail_schedules",
@@ -16,5 +16,6 @@ module MailEngine
16
16
  copy_file from, to
17
17
  end
18
18
  end
19
+
19
20
  end # CreateMigration
20
- end
21
+ end # MailEngine
@@ -0,0 +1,13 @@
1
+ module MailEngine
2
+ class CopyResources < Rails::Generators::Base
3
+ desc "Copy javascripts and css files to your application."
4
+ source_root File.join(File.dirname(__FILE__))
5
+
6
+ def copy_resources
7
+ from = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "..", "public"))
8
+ to = File.expand_path(File.join(Rails.root, "public"))
9
+ directory from, to
10
+ end
11
+
12
+ end # CreateMigration
13
+ end
@@ -0,0 +1,21 @@
1
+ module MailEngine
2
+ class Install < Rails::Generators::Base
3
+ desc "Install Mail Engine."
4
+ source_root File.join(File.dirname(__FILE__))
5
+
6
+ def copy_resources
7
+ say "Copying Resource Files to project...", :yellow
8
+ MailEngine::CopyResources.start
9
+ end
10
+
11
+ def copy_migrations
12
+ say "Copying Migration Files to project...", :yellow
13
+ MailEngine::CopyMigrations.start
14
+ end
15
+
16
+ def create_config
17
+ say "Create Configure file to project...", :yellow
18
+ MailEngine::CreateConfig.start
19
+ end
20
+ end
21
+ end # MailEngine
@@ -2,13 +2,22 @@ development:
2
2
  log_mail: false
3
3
  sendgrid_user: "you send grid username"
4
4
  sendgrid_key: "password"
5
+ sendgrid_category: "my sendgrid category"
6
+ user_class_name: "User"
7
+ mount_at: "/admin"
5
8
 
6
9
  test:
7
10
  log_mail: false
8
11
  sendgrid_user: "you send grid username"
9
12
  sendgrid_key: "password"
13
+ sendgrid_category: "my sendgrid category"
14
+ user_class_name: "User"
15
+ mount_at: "/admin"
10
16
 
11
17
  production:
12
18
  log_mail: false
13
19
  sendgrid_user: "you send grid username"
14
- sendgrid_key: "password"
20
+ sendgrid_key: "password"
21
+ sendgrid_category: "my sendgrid category"
22
+ user_class_name: "User"
23
+ mount_at: "/admin"
@@ -2,6 +2,8 @@ module MailEngine
2
2
  class HtmlDocumentAssetsReplacer
3
3
 
4
4
  class << self
5
+ # One requirement:
6
+ # Need one html file in the zip
5
7
  def check! file_paths
6
8
  html_file_pathes = file_paths.select { |path| path =~ /\/[^_\/]+\.htm(l)?$/i }
7
9
  raise "No html was passed in." if html_file_pathes.blank?
@@ -41,20 +43,20 @@ module MailEngine
41
43
  doc.to_html
42
44
  end
43
45
 
44
- def replace_resource_filename_in_html html, original_filename, new_filename
45
- return false if original_filename.blank? or new_filename.blank?
46
-
46
+ # replace the old filename in html by new filename
47
+ def replace_resource_in_html html, original_filename, new_filename, resource_type
48
+ # FIXME better to raise an error, return an unprocessed file maybe not good.
49
+ return html if original_filename.blank? or new_filename.blank?
47
50
  doc = Nokogiri::HTML(html)
48
-
49
51
  doc.css('img, link').each do |element|
50
52
  # FIXME seems will have the problem if have duplicated filename in different dir
51
53
  next if element.name == "link" && element['href'].blank?
52
54
  next if element.name == "img" && element['src'].blank?
53
55
 
54
56
  case
55
- when element.name == "link" && File.basename(element['href']) == original_filename
57
+ when element.name == "link" && get_resource_url(element['href'], resource_type) == original_filename
56
58
  element['href'] = element['href'].sub(original_filename, new_filename)
57
- when element.name == "img" && File.basename(element['src']) == original_filename
59
+ when element.name == "img" && get_resource_url(element['src'], resource_type) == original_filename
58
60
  element['src'] = element['src'].sub(original_filename, new_filename)
59
61
  end
60
62
  end
@@ -62,24 +64,11 @@ module MailEngine
62
64
  doc.to_html
63
65
  end
64
66
 
65
- def replace_resource_url_in_html html, original_file_url, new_file_url
66
- return false if original_file_url.blank? or new_file_url.blank?
67
- doc = Nokogiri::HTML(html)
67
+ private
68
68
 
69
- doc.css('img, link').each do |element|
70
- # FIXME seems will have the problem if have duplicated filename in different dir
71
- next if element.name == "link" && element['href'].blank?
72
- next if element.name == "img" && element['src'].blank?
73
-
74
- case
75
- when element.name == "link" && element['href'].include?(original_file_url)
76
- element['href'] = element['href'].sub(original_file_url, new_file_url)
77
- when element.name == "img" && element['src'].include?(original_file_url)
78
- element['src'] = element['src'].sub(original_file_url, new_file_url)
79
- end
80
- end
81
-
82
- doc.to_html
69
+ def get_resource_url(url, resource_type = :filename)
70
+ resource_type = :filename unless [:filename, :url].include?(resource_type)
71
+ resource_type == :filename ? File.basename(url) : url
83
72
  end
84
73
  end
85
74
  end
@@ -1,3 +1,4 @@
1
+ # real data
1
2
  # {
2
3
  # :mailer=>"UserMailer",
3
4
  # :subject=>"Notify",
@@ -10,6 +11,13 @@
10
11
  # }
11
12
 
12
13
  module MailEngine
14
+
15
+ # I don't know if it's a better solution, Seems below one is another good solution.
16
+ #
17
+ # initializer "mail_engine.register_mail_log" do
18
+ # ActionMailer::Base.register_interceptor MailEngine::MailLog
19
+ # end
20
+ #
13
21
  class MailLogSubscriber < ActiveSupport::LogSubscriber
14
22
  def deliver(event)
15
23
  log_mail_config = MailEngine::Base.current_config["log_mail"]
@@ -17,11 +25,11 @@ module MailEngine
17
25
 
18
26
  MailEngine::MailLog.create!({
19
27
  :mail_template_path => event.payload[:message_id],
20
- :subject => event.payload[:subject],
21
- :raw_body => event.payload[:mail],
22
- :recipient => event.payload[:to].inspect,
23
- :sender => event.payload[:from].inspect,
24
- :mime_type => event.payload[:mail].scan(/Content-Type: ([^;\r\n]*)/).flatten.inspect
28
+ :subject => event.payload[:subject],
29
+ :raw_body => event.payload[:mail],
30
+ :recipient => event.payload[:to].inspect,
31
+ :sender => event.payload[:from].inspect,
32
+ :mime_type => event.payload[:mail].scan(/Content-Type: ([^;\r\n]*)/).flatten.inspect
25
33
  })
26
34
  end
27
35
  end
@@ -11,6 +11,9 @@ module MailEngine
11
11
  # needed_exts => ['jpg', 'jpeg', 'css']
12
12
  #
13
13
  # Result:
14
+ # the first item of array is file paths you needed and extracted from zip file.
15
+ # the second item is the unzip path.
16
+ #
14
17
  # [
15
18
  # [
16
19
  # "/Volumes/documents/projects/work/mail_engine/test/dummy/tmp/zip_processor_tmp_dir/compress_by_dir9671920/compress_by_file/css/example.css",
@@ -22,9 +25,15 @@ module MailEngine
22
25
  def extract_all_files(zip_file_path, needed_exts)
23
26
  return unless zip_file_path =~ /\.zip$/i
24
27
 
28
+ # Create zip_processor_tmp_dir dir
29
+ zip_processor_tmp_dir = File.join(Rails.root, 'tmp', 'zip_processor_tmp_dir')
30
+ unless File.exist?(zip_processor_tmp_dir)
31
+ FileUtils.mkdir_p(zip_processor_tmp_dir)
32
+ end
33
+
25
34
  file_fullname = File.basename(zip_file_path)
26
35
  filename = file_fullname.sub(/.zip$/, "")
27
- unzip_path = File.join(Rails.root, 'tmp', 'zip_processor_tmp_dir', "#{filename}#{rand(10000000)}")
36
+ unzip_path = File.join(zip_processor_tmp_dir, "#{filename}#{rand(10000000)}")
28
37
 
29
38
  unzip_result = system("unzip #{zip_file_path} -d #{unzip_path} > /dev/null")
30
39
  unzip_result = unzip_result && $?.exitstatus == 0
data/mail_engine.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mail_engine}
8
- s.version = "0.0.1"
8
+ s.version = "0.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["michael he"]
12
- s.date = %q{2011-02-25}
12
+ s.date = %q{2011-03-04}
13
13
  s.description = %q{Rails system mail management solution.}
14
14
  s.email = %q{hlxwell@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -29,24 +29,32 @@ Gem::Specification.new do |s|
29
29
  ".yardoc/objects/MailEngine/ActsAsMailReceiver.dat",
30
30
  ".yardoc/objects/MailEngine/ActsAsMailReceiver/ClassMethods.dat",
31
31
  ".yardoc/objects/MailEngine/ActsAsMailReceiver/ClassMethods/acts_as_mail_receiver_i.dat",
32
+ ".yardoc/objects/MailEngine/ActsAsMailReceiver/ClassMethods/check_method_existance_21_i.dat",
32
33
  ".yardoc/objects/MailEngine/Base.dat",
33
34
  ".yardoc/objects/MailEngine/Base/_40_40configurations.dat",
34
35
  ".yardoc/objects/MailEngine/Base/current_config_c.dat",
35
- ".yardoc/objects/MailEngine/Base/send_mail_c.dat",
36
+ ".yardoc/objects/MailEngine/Base/send_marketing_mail_c.dat",
36
37
  ".yardoc/objects/MailEngine/Configuration.dat",
37
38
  ".yardoc/objects/MailEngine/Configuration/load_c.dat",
39
+ ".yardoc/objects/MailEngine/CopyMigrations.dat",
40
+ ".yardoc/objects/MailEngine/CopyMigrations/copy_migrations_i.dat",
41
+ ".yardoc/objects/MailEngine/CopyResources.dat",
42
+ ".yardoc/objects/MailEngine/CopyResources/copy_resources_i.dat",
38
43
  ".yardoc/objects/MailEngine/CreateConfig.dat",
39
44
  ".yardoc/objects/MailEngine/CreateConfig/create_config_file_i.dat",
40
- ".yardoc/objects/MailEngine/CreateMigration.dat",
41
- ".yardoc/objects/MailEngine/CreateMigration/create_migrations_i.dat",
42
45
  ".yardoc/objects/MailEngine/Engine.dat",
43
46
  ".yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer.dat",
44
47
  ".yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/check_21_c.dat",
48
+ ".yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/get_resource_url_c.dat",
45
49
  ".yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/process_c.dat",
46
- ".yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/replace_resource_filename_in_html_c.dat",
47
- ".yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/replace_resource_url_in_html_c.dat",
50
+ ".yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/replace_resource_in_html_c.dat",
51
+ ".yardoc/objects/MailEngine/Install.dat",
52
+ ".yardoc/objects/MailEngine/Install/copy_migrations_i.dat",
53
+ ".yardoc/objects/MailEngine/Install/copy_resources_i.dat",
54
+ ".yardoc/objects/MailEngine/Install/create_config_i.dat",
48
55
  ".yardoc/objects/MailEngine/MailLogSubscriber.dat",
49
56
  ".yardoc/objects/MailEngine/MailLogSubscriber/deliver_i.dat",
57
+ ".yardoc/objects/MailEngine/PLACEHOLDERS_IN_LAYOUT.dat",
50
58
  ".yardoc/objects/MailEngine/Sendgrid.dat",
51
59
  ".yardoc/objects/MailEngine/Sendgrid/Base.dat",
52
60
  ".yardoc/objects/MailEngine/Sendgrid/Base/ClassMethods.dat",
@@ -77,7 +85,6 @@ Gem::Specification.new do |s|
77
85
  ".yardoc/objects/MailEngine/VERSION.dat",
78
86
  ".yardoc/objects/MailEngine/ZipProcessor.dat",
79
87
  ".yardoc/objects/MailEngine/ZipProcessor/extract_all_files_c.dat",
80
- ".yardoc/objects/PLACEHOLDERS_IN_LAYOUT.dat",
81
88
  ".yardoc/objects/root.dat",
82
89
  ".yardoc/proxy_types",
83
90
  "Gemfile",
@@ -109,7 +116,9 @@ Gem::Specification.new do |s|
109
116
  "app/views/layouts/mail_engine/mail_template_layouts/none.text.erb",
110
117
  "app/views/layouts/mail_engine/mail_template_layouts/only_footer.html.erb",
111
118
  "app/views/layouts/mail_engine/mail_template_layouts/only_footer.text.erb",
119
+ "app/views/layouts/mail_engine/simple.html.erb",
112
120
  "app/views/mail_engine/dashboard/index.html.erb",
121
+ "app/views/mail_engine/mail_logs/_related_logs.html.erb",
113
122
  "app/views/mail_engine/mail_logs/index.html.erb",
114
123
  "app/views/mail_engine/mail_logs/show.html.erb",
115
124
  "app/views/mail_engine/mail_schedules/_form.html.erb",
@@ -142,29 +151,58 @@ Gem::Specification.new do |s|
142
151
  "db/migrate/20110204114145_create_template_partials.rb",
143
152
  "db/migrate/20110206025002_create_mail_logs.rb",
144
153
  "db/migrate/20110217062316_create_mail_template_files.rb",
154
+ "doc/ActionMailer.html",
155
+ "doc/ActionMailer/Base.html",
156
+ "doc/ActionMailer/Collector.html",
157
+ "doc/MailEngine.html",
158
+ "doc/MailEngine/ActsAsMailReceiver.html",
159
+ "doc/MailEngine/ActsAsMailReceiver/ClassMethods.html",
160
+ "doc/MailEngine/Base.html",
161
+ "doc/MailEngine/Configuration.html",
162
+ "doc/MailEngine/CopyMigrations.html",
163
+ "doc/MailEngine/CopyResources.html",
164
+ "doc/MailEngine/CreateConfig.html",
165
+ "doc/MailEngine/CreateMigration.html",
166
+ "doc/MailEngine/Engine.html",
167
+ "doc/MailEngine/HtmlDocumentAssetsReplacer.html",
168
+ "doc/MailEngine/Install.html",
169
+ "doc/MailEngine/MailLogSubscriber.html",
170
+ "doc/MailEngine/Sendgrid.html",
171
+ "doc/MailEngine/Sendgrid/Base.html",
172
+ "doc/MailEngine/Sendgrid/Base/ClassMethods.html",
173
+ "doc/MailEngine/Sendgrid/Base/InstanceMethods.html",
174
+ "doc/MailEngine/Sendgrid/FilterSetting.html",
175
+ "doc/MailEngine/Sendgrid/RestApi.html",
176
+ "doc/MailEngine/Sendgrid/RestApiError.html",
177
+ "doc/MailEngine/Sendgrid/SmtpApi.html",
178
+ "doc/MailEngine/ZipProcessor.html",
145
179
  "doc/_index.html",
146
180
  "doc/class_list.html",
147
181
  "doc/css/common.css",
148
182
  "doc/css/full_list.css",
149
183
  "doc/css/style.css",
184
+ "doc/file.README.html",
150
185
  "doc/file_list.html",
151
186
  "doc/frames.html",
187
+ "doc/index.html",
152
188
  "doc/js/app.js",
153
189
  "doc/js/full_list.js",
154
190
  "doc/js/jquery.js",
155
191
  "doc/method_list.html",
192
+ "doc/top-level-namespace.html",
156
193
  "lib/mail_engine.rb",
157
194
  "lib/mail_engine/action_mailer_patch.rb",
158
195
  "lib/mail_engine/acts_as_mail_receiver.rb",
159
196
  "lib/mail_engine/base.rb",
160
197
  "lib/mail_engine/configuration.rb",
161
198
  "lib/mail_engine/engine.rb",
199
+ "lib/mail_engine/generators/copy_migrations.rb",
200
+ "lib/mail_engine/generators/copy_resources.rb",
162
201
  "lib/mail_engine/generators/create_config.rb",
163
- "lib/mail_engine/generators/create_migration.rb",
202
+ "lib/mail_engine/generators/install.rb",
164
203
  "lib/mail_engine/generators/templates/mail_engine_config.yml",
165
204
  "lib/mail_engine/html_document_assets_replacer.rb",
166
205
  "lib/mail_engine/mail_log_subscriber.rb",
167
- "lib/mail_engine/placeholders_in_layout.rb",
168
206
  "lib/mail_engine/sendgrid.rb",
169
207
  "lib/mail_engine/sendgrid/base.rb",
170
208
  "lib/mail_engine/sendgrid/rest_api.rb",
@@ -173,6 +211,139 @@ Gem::Specification.new do |s|
173
211
  "lib/mail_engine/version.rb",
174
212
  "lib/mail_engine/zip_processor.rb",
175
213
  "mail_engine.gemspec",
214
+ "public/images/mail_engine/header_and_footer_layout.png",
215
+ "public/images/mail_engine/icons/add.png",
216
+ "public/images/mail_engine/icons/copy.png",
217
+ "public/images/mail_engine/icons/delete.png",
218
+ "public/images/mail_engine/icons/edit.gif",
219
+ "public/images/mail_engine/icons/missing.png",
220
+ "public/images/mail_engine/icons/save.png",
221
+ "public/images/mail_engine/icons/show.png",
222
+ "public/images/mail_engine/logo.gif",
223
+ "public/images/mail_engine/logo.png",
224
+ "public/images/mail_engine/none_layout.png",
225
+ "public/images/mail_engine/only_footer_layout.png",
226
+ "public/images/mail_engine/unselect_header_and_footer_layout.png",
227
+ "public/images/mail_engine/unselect_none_layout.png",
228
+ "public/images/mail_engine/unselect_only_footer_layout.png",
229
+ "public/javascripts/mail_engine/fancybox/blank.gif",
230
+ "public/javascripts/mail_engine/fancybox/fancy_close.png",
231
+ "public/javascripts/mail_engine/fancybox/fancy_loading.png",
232
+ "public/javascripts/mail_engine/fancybox/fancy_nav_left.png",
233
+ "public/javascripts/mail_engine/fancybox/fancy_nav_right.png",
234
+ "public/javascripts/mail_engine/fancybox/fancy_shadow_e.png",
235
+ "public/javascripts/mail_engine/fancybox/fancy_shadow_n.png",
236
+ "public/javascripts/mail_engine/fancybox/fancy_shadow_ne.png",
237
+ "public/javascripts/mail_engine/fancybox/fancy_shadow_nw.png",
238
+ "public/javascripts/mail_engine/fancybox/fancy_shadow_s.png",
239
+ "public/javascripts/mail_engine/fancybox/fancy_shadow_se.png",
240
+ "public/javascripts/mail_engine/fancybox/fancy_shadow_sw.png",
241
+ "public/javascripts/mail_engine/fancybox/fancy_shadow_w.png",
242
+ "public/javascripts/mail_engine/fancybox/fancy_title_left.png",
243
+ "public/javascripts/mail_engine/fancybox/fancy_title_main.png",
244
+ "public/javascripts/mail_engine/fancybox/fancy_title_over.png",
245
+ "public/javascripts/mail_engine/fancybox/fancy_title_right.png",
246
+ "public/javascripts/mail_engine/fancybox/fancybox-x.png",
247
+ "public/javascripts/mail_engine/fancybox/fancybox-y.png",
248
+ "public/javascripts/mail_engine/fancybox/fancybox.png",
249
+ "public/javascripts/mail_engine/fancybox/jquery.easing-1.3.pack.js",
250
+ "public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.css",
251
+ "public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.js",
252
+ "public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.pack.js",
253
+ "public/javascripts/mail_engine/fancybox/jquery.mousewheel-3.0.4.pack.js",
254
+ "public/javascripts/mail_engine/jquery-ui.min.js",
255
+ "public/javascripts/mail_engine/jquery.iframe-auto-height.plugin.js",
256
+ "public/javascripts/mail_engine/jquery.string.js",
257
+ "public/javascripts/mail_engine/mail_engine.js",
258
+ "public/javascripts/mail_engine/markitup/jquery.markitup.js",
259
+ "public/javascripts/mail_engine/markitup/sets/css/images/bold.png",
260
+ "public/javascripts/mail_engine/markitup/sets/css/images/css.png",
261
+ "public/javascripts/mail_engine/markitup/sets/css/images/italic.png",
262
+ "public/javascripts/mail_engine/markitup/sets/css/images/picture.png",
263
+ "public/javascripts/mail_engine/markitup/sets/css/images/stroke.png",
264
+ "public/javascripts/mail_engine/markitup/sets/css/images/tag.png",
265
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_align_center.png",
266
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_align_justify.png",
267
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_align_left.png",
268
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_align_right.png",
269
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_indent.png",
270
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_letterspacing.png",
271
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_linespacing.png",
272
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_lowercase.png",
273
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_padding_bottom.png",
274
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_padding_left.png",
275
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_padding_right.png",
276
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_padding_top.png",
277
+ "public/javascripts/mail_engine/markitup/sets/css/images/text_uppercase.png",
278
+ "public/javascripts/mail_engine/markitup/sets/css/readme.txt",
279
+ "public/javascripts/mail_engine/markitup/sets/css/set.js",
280
+ "public/javascripts/mail_engine/markitup/sets/css/style.css",
281
+ "public/javascripts/mail_engine/markitup/sets/default/images/bold.png",
282
+ "public/javascripts/mail_engine/markitup/sets/default/images/clean.png",
283
+ "public/javascripts/mail_engine/markitup/sets/default/images/image.png",
284
+ "public/javascripts/mail_engine/markitup/sets/default/images/italic.png",
285
+ "public/javascripts/mail_engine/markitup/sets/default/images/link.png",
286
+ "public/javascripts/mail_engine/markitup/sets/default/images/picture.png",
287
+ "public/javascripts/mail_engine/markitup/sets/default/images/preview.png",
288
+ "public/javascripts/mail_engine/markitup/sets/default/images/stroke.png",
289
+ "public/javascripts/mail_engine/markitup/sets/default/set.js",
290
+ "public/javascripts/mail_engine/markitup/sets/default/style.css",
291
+ "public/javascripts/mail_engine/markitup/sets/html/images/bold.png",
292
+ "public/javascripts/mail_engine/markitup/sets/html/images/clean.png",
293
+ "public/javascripts/mail_engine/markitup/sets/html/images/h1.png",
294
+ "public/javascripts/mail_engine/markitup/sets/html/images/h2.png",
295
+ "public/javascripts/mail_engine/markitup/sets/html/images/h3.png",
296
+ "public/javascripts/mail_engine/markitup/sets/html/images/h4.png",
297
+ "public/javascripts/mail_engine/markitup/sets/html/images/h5.png",
298
+ "public/javascripts/mail_engine/markitup/sets/html/images/h6.png",
299
+ "public/javascripts/mail_engine/markitup/sets/html/images/image.png",
300
+ "public/javascripts/mail_engine/markitup/sets/html/images/italic.png",
301
+ "public/javascripts/mail_engine/markitup/sets/html/images/link.png",
302
+ "public/javascripts/mail_engine/markitup/sets/html/images/list-bullet.png",
303
+ "public/javascripts/mail_engine/markitup/sets/html/images/list-item.png",
304
+ "public/javascripts/mail_engine/markitup/sets/html/images/list-numeric.png",
305
+ "public/javascripts/mail_engine/markitup/sets/html/images/paragraph.png",
306
+ "public/javascripts/mail_engine/markitup/sets/html/images/picture.png",
307
+ "public/javascripts/mail_engine/markitup/sets/html/images/preview.png",
308
+ "public/javascripts/mail_engine/markitup/sets/html/images/stroke.png",
309
+ "public/javascripts/mail_engine/markitup/sets/html/readme.txt",
310
+ "public/javascripts/mail_engine/markitup/sets/html/set.js",
311
+ "public/javascripts/mail_engine/markitup/sets/html/style.css",
312
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/bg-container.png",
313
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-bbcode.png",
314
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-dotclear.png",
315
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-html.png",
316
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-json.png",
317
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-markdown.png",
318
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-textile.png",
319
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-wiki.png",
320
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-xml.png",
321
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor.png",
322
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/handle.png",
323
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/menu.png",
324
+ "public/javascripts/mail_engine/markitup/skins/markitup/images/submenu.png",
325
+ "public/javascripts/mail_engine/markitup/skins/markitup/style.css",
326
+ "public/javascripts/mail_engine/markitup/skins/simple/images/handle.png",
327
+ "public/javascripts/mail_engine/markitup/skins/simple/images/menu.png",
328
+ "public/javascripts/mail_engine/markitup/skins/simple/images/submenu.png",
329
+ "public/javascripts/mail_engine/markitup/skins/simple/style.css",
330
+ "public/javascripts/mail_engine/markitup/templates/preview.css",
331
+ "public/javascripts/mail_engine/markitup/templates/preview.html",
332
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png",
333
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png",
334
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png",
335
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png",
336
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png",
337
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png",
338
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png",
339
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png",
340
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_222222_256x240.png",
341
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_2e83ff_256x240.png",
342
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_454545_256x240.png",
343
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_888888_256x240.png",
344
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_cd0a0a_256x240.png",
345
+ "public/stylesheets/mail_engine/jquery-ui/smoothness/jquery-ui.css",
346
+ "public/stylesheets/mail_engine/style.css",
176
347
  "screenshots/bounce_report.png",
177
348
  "screenshots/dashboard.png",
178
349
  "screenshots/editing_mail_template.png",
@@ -215,6 +386,13 @@ Gem::Specification.new do |s|
215
386
  "test/dummy/public/500.html",
216
387
  "test/dummy/public/favicon.ico",
217
388
  "test/dummy/public/images/mail_engine/header_and_footer_layout.png",
389
+ "test/dummy/public/images/mail_engine/icons/add.png",
390
+ "test/dummy/public/images/mail_engine/icons/copy.png",
391
+ "test/dummy/public/images/mail_engine/icons/delete.png",
392
+ "test/dummy/public/images/mail_engine/icons/edit.gif",
393
+ "test/dummy/public/images/mail_engine/icons/missing.png",
394
+ "test/dummy/public/images/mail_engine/icons/save.png",
395
+ "test/dummy/public/images/mail_engine/icons/show.png",
218
396
  "test/dummy/public/images/mail_engine/logo.gif",
219
397
  "test/dummy/public/images/mail_engine/logo.png",
220
398
  "test/dummy/public/images/mail_engine/none_layout.png",
@@ -222,112 +400,148 @@ Gem::Specification.new do |s|
222
400
  "test/dummy/public/images/mail_engine/unselect_header_and_footer_layout.png",
223
401
  "test/dummy/public/images/mail_engine/unselect_none_layout.png",
224
402
  "test/dummy/public/images/mail_engine/unselect_only_footer_layout.png",
225
- "test/dummy/public/javascripts/jquery.iframe-auto-height.plugin.js",
226
403
  "test/dummy/public/javascripts/jquery.js",
227
- "test/dummy/public/javascripts/jquery.nyroModal/img/ajaxLoader.gif",
228
- "test/dummy/public/javascripts/jquery.nyroModal/img/close.gif",
229
- "test/dummy/public/javascripts/jquery.nyroModal/img/next.gif",
230
- "test/dummy/public/javascripts/jquery.nyroModal/img/prev.gif",
231
- "test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal-ie6.js",
232
- "test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal-ie6.min.js",
233
- "test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal.custom.js",
234
- "test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal.custom.min.js",
235
- "test/dummy/public/javascripts/jquery.nyroModal/styles/nyroModal.css",
236
- "test/dummy/public/javascripts/jquery.string.js",
237
- "test/dummy/public/javascripts/mail_engine_application.js",
238
- "test/dummy/public/javascripts/markitup/jquery.markitup.js",
239
- "test/dummy/public/javascripts/markitup/sets/css/images/bold.png",
240
- "test/dummy/public/javascripts/markitup/sets/css/images/css.png",
241
- "test/dummy/public/javascripts/markitup/sets/css/images/italic.png",
242
- "test/dummy/public/javascripts/markitup/sets/css/images/picture.png",
243
- "test/dummy/public/javascripts/markitup/sets/css/images/stroke.png",
244
- "test/dummy/public/javascripts/markitup/sets/css/images/tag.png",
245
- "test/dummy/public/javascripts/markitup/sets/css/images/text_align_center.png",
246
- "test/dummy/public/javascripts/markitup/sets/css/images/text_align_justify.png",
247
- "test/dummy/public/javascripts/markitup/sets/css/images/text_align_left.png",
248
- "test/dummy/public/javascripts/markitup/sets/css/images/text_align_right.png",
249
- "test/dummy/public/javascripts/markitup/sets/css/images/text_indent.png",
250
- "test/dummy/public/javascripts/markitup/sets/css/images/text_letterspacing.png",
251
- "test/dummy/public/javascripts/markitup/sets/css/images/text_linespacing.png",
252
- "test/dummy/public/javascripts/markitup/sets/css/images/text_lowercase.png",
253
- "test/dummy/public/javascripts/markitup/sets/css/images/text_padding_bottom.png",
254
- "test/dummy/public/javascripts/markitup/sets/css/images/text_padding_left.png",
255
- "test/dummy/public/javascripts/markitup/sets/css/images/text_padding_right.png",
256
- "test/dummy/public/javascripts/markitup/sets/css/images/text_padding_top.png",
257
- "test/dummy/public/javascripts/markitup/sets/css/images/text_uppercase.png",
258
- "test/dummy/public/javascripts/markitup/sets/css/readme.txt",
259
- "test/dummy/public/javascripts/markitup/sets/css/set.js",
260
- "test/dummy/public/javascripts/markitup/sets/css/style.css",
261
- "test/dummy/public/javascripts/markitup/sets/default/images/bold.png",
262
- "test/dummy/public/javascripts/markitup/sets/default/images/clean.png",
263
- "test/dummy/public/javascripts/markitup/sets/default/images/image.png",
264
- "test/dummy/public/javascripts/markitup/sets/default/images/italic.png",
265
- "test/dummy/public/javascripts/markitup/sets/default/images/link.png",
266
- "test/dummy/public/javascripts/markitup/sets/default/images/picture.png",
267
- "test/dummy/public/javascripts/markitup/sets/default/images/preview.png",
268
- "test/dummy/public/javascripts/markitup/sets/default/images/stroke.png",
269
- "test/dummy/public/javascripts/markitup/sets/default/set.js",
270
- "test/dummy/public/javascripts/markitup/sets/default/style.css",
271
- "test/dummy/public/javascripts/markitup/sets/html/images/bold.png",
272
- "test/dummy/public/javascripts/markitup/sets/html/images/clean.png",
273
- "test/dummy/public/javascripts/markitup/sets/html/images/h1.png",
274
- "test/dummy/public/javascripts/markitup/sets/html/images/h2.png",
275
- "test/dummy/public/javascripts/markitup/sets/html/images/h3.png",
276
- "test/dummy/public/javascripts/markitup/sets/html/images/h4.png",
277
- "test/dummy/public/javascripts/markitup/sets/html/images/h5.png",
278
- "test/dummy/public/javascripts/markitup/sets/html/images/h6.png",
279
- "test/dummy/public/javascripts/markitup/sets/html/images/image.png",
280
- "test/dummy/public/javascripts/markitup/sets/html/images/italic.png",
281
- "test/dummy/public/javascripts/markitup/sets/html/images/link.png",
282
- "test/dummy/public/javascripts/markitup/sets/html/images/list-bullet.png",
283
- "test/dummy/public/javascripts/markitup/sets/html/images/list-item.png",
284
- "test/dummy/public/javascripts/markitup/sets/html/images/list-numeric.png",
285
- "test/dummy/public/javascripts/markitup/sets/html/images/paragraph.png",
286
- "test/dummy/public/javascripts/markitup/sets/html/images/picture.png",
287
- "test/dummy/public/javascripts/markitup/sets/html/images/preview.png",
288
- "test/dummy/public/javascripts/markitup/sets/html/images/stroke.png",
289
- "test/dummy/public/javascripts/markitup/sets/html/readme.txt",
290
- "test/dummy/public/javascripts/markitup/sets/html/set.js",
291
- "test/dummy/public/javascripts/markitup/sets/html/style.css",
292
- "test/dummy/public/javascripts/markitup/skins/markitup/images/bg-container.png",
293
- "test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-bbcode.png",
294
- "test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-dotclear.png",
295
- "test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-html.png",
296
- "test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-json.png",
297
- "test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-markdown.png",
298
- "test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-textile.png",
299
- "test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-wiki.png",
300
- "test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-xml.png",
301
- "test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor.png",
302
- "test/dummy/public/javascripts/markitup/skins/markitup/images/handle.png",
303
- "test/dummy/public/javascripts/markitup/skins/markitup/images/menu.png",
304
- "test/dummy/public/javascripts/markitup/skins/markitup/images/submenu.png",
305
- "test/dummy/public/javascripts/markitup/skins/markitup/style.css",
306
- "test/dummy/public/javascripts/markitup/skins/simple/images/handle.png",
307
- "test/dummy/public/javascripts/markitup/skins/simple/images/menu.png",
308
- "test/dummy/public/javascripts/markitup/skins/simple/images/submenu.png",
309
- "test/dummy/public/javascripts/markitup/skins/simple/style.css",
310
- "test/dummy/public/javascripts/markitup/templates/preview.css",
311
- "test/dummy/public/javascripts/markitup/templates/preview.html",
404
+ "test/dummy/public/javascripts/mail_engine/fancybox/blank.gif",
405
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_close.png",
406
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_loading.png",
407
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_nav_left.png",
408
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_nav_right.png",
409
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_e.png",
410
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_n.png",
411
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_ne.png",
412
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_nw.png",
413
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_s.png",
414
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_se.png",
415
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_sw.png",
416
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_shadow_w.png",
417
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_title_left.png",
418
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_title_main.png",
419
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_title_over.png",
420
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancy_title_right.png",
421
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancybox-x.png",
422
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancybox-y.png",
423
+ "test/dummy/public/javascripts/mail_engine/fancybox/fancybox.png",
424
+ "test/dummy/public/javascripts/mail_engine/fancybox/jquery.easing-1.3.pack.js",
425
+ "test/dummy/public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.css",
426
+ "test/dummy/public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.js",
427
+ "test/dummy/public/javascripts/mail_engine/fancybox/jquery.fancybox-1.3.4.pack.js",
428
+ "test/dummy/public/javascripts/mail_engine/fancybox/jquery.mousewheel-3.0.4.pack.js",
429
+ "test/dummy/public/javascripts/mail_engine/jquery-ui.min.js",
430
+ "test/dummy/public/javascripts/mail_engine/jquery.iframe-auto-height.plugin.js",
431
+ "test/dummy/public/javascripts/mail_engine/jquery.string.js",
432
+ "test/dummy/public/javascripts/mail_engine/mail_engine.js",
433
+ "test/dummy/public/javascripts/mail_engine/markitup/jquery.markitup.js",
434
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/bold.png",
435
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/css.png",
436
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/italic.png",
437
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/picture.png",
438
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/stroke.png",
439
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/tag.png",
440
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_align_center.png",
441
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_align_justify.png",
442
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_align_left.png",
443
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_align_right.png",
444
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_indent.png",
445
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_letterspacing.png",
446
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_linespacing.png",
447
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_lowercase.png",
448
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_padding_bottom.png",
449
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_padding_left.png",
450
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_padding_right.png",
451
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_padding_top.png",
452
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/images/text_uppercase.png",
453
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/readme.txt",
454
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/set.js",
455
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/css/style.css",
456
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/bold.png",
457
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/clean.png",
458
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/image.png",
459
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/italic.png",
460
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/link.png",
461
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/picture.png",
462
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/preview.png",
463
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/default/images/stroke.png",
464
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/default/set.js",
465
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/default/style.css",
466
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/bold.png",
467
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/clean.png",
468
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h1.png",
469
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h2.png",
470
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h3.png",
471
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h4.png",
472
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h5.png",
473
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/h6.png",
474
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/image.png",
475
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/italic.png",
476
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/link.png",
477
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/list-bullet.png",
478
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/list-item.png",
479
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/list-numeric.png",
480
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/paragraph.png",
481
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/picture.png",
482
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/preview.png",
483
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/images/stroke.png",
484
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/readme.txt",
485
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/set.js",
486
+ "test/dummy/public/javascripts/mail_engine/markitup/sets/html/style.css",
487
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-container.png",
488
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-bbcode.png",
489
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-dotclear.png",
490
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-html.png",
491
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-json.png",
492
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-markdown.png",
493
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-textile.png",
494
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-wiki.png",
495
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor-xml.png",
496
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/bg-editor.png",
497
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/handle.png",
498
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/menu.png",
499
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/images/submenu.png",
500
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/markitup/style.css",
501
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/simple/images/handle.png",
502
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/simple/images/menu.png",
503
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/simple/images/submenu.png",
504
+ "test/dummy/public/javascripts/mail_engine/markitup/skins/simple/style.css",
505
+ "test/dummy/public/javascripts/mail_engine/markitup/templates/preview.css",
506
+ "test/dummy/public/javascripts/mail_engine/markitup/templates/preview.html",
312
507
  "test/dummy/public/javascripts/rails.js",
313
- "test/dummy/public/stylesheets/.gitkeep",
314
508
  "test/dummy/public/stylesheets/application.css",
315
- "test/dummy/public/stylesheets/style.css",
509
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png",
510
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png",
511
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png",
512
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png",
513
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png",
514
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png",
515
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png",
516
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png",
517
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_222222_256x240.png",
518
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_2e83ff_256x240.png",
519
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_454545_256x240.png",
520
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_888888_256x240.png",
521
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/images/ui-icons_cd0a0a_256x240.png",
522
+ "test/dummy/public/stylesheets/mail_engine/jquery-ui/smoothness/jquery-ui.css",
523
+ "test/dummy/public/stylesheets/mail_engine/style.css",
316
524
  "test/dummy/script/rails",
317
525
  "test/factories.rb",
318
526
  "test/fixtures/files/compress_by_dir.zip",
319
527
  "test/fixtures/files/compress_by_file.zip",
320
528
  "test/fixtures/files/image.png",
529
+ "test/functional/mail_engine/dashboard_controller_test.rb",
321
530
  "test/functional/mail_engine/mail_dispatcher_test.rb",
322
- "test/functional/mail_engine/mail_schedules_controller_controller_test.rb",
323
- "test/functional/mail_engine/mail_templates_controller_controller_test.rb",
531
+ "test/functional/mail_engine/mail_logs_controller_test.rb",
532
+ "test/functional/mail_engine/mail_schedules_controller_test.rb",
533
+ "test/functional/mail_engine/mail_template_files_controller_test.rb",
534
+ "test/functional/mail_engine/mail_templates_controller_test.rb",
535
+ "test/functional/mail_engine/reports_controller_test.rb",
536
+ "test/functional/user_mailer_test.rb",
324
537
  "test/support/integration_case.rb",
325
538
  "test/test_helper.rb",
326
539
  "test/unit/mail_engine/mail_log_test.rb",
327
540
  "test/unit/mail_engine/mail_schedule_test.rb",
328
541
  "test/unit/mail_engine/mail_template_file_test.rb",
329
542
  "test/unit/mail_engine/mail_template_test.rb",
330
- "test/unit/mail_engine/template_partial_test.rb"
543
+ "test/unit/mail_engine/template_partial_test.rb",
544
+ "test/unit/user_test.rb"
331
545
  ]
332
546
  s.homepage = %q{http://github.com/hlxwell/mail-engine}
333
547
  s.licenses = ["MIT"]
@@ -359,44 +573,54 @@ Gem::Specification.new do |s|
359
573
  "test/dummy/db/migrate/20110217062316_create_mail_template_files.rb",
360
574
  "test/dummy/db/schema.rb",
361
575
  "test/factories.rb",
576
+ "test/functional/mail_engine/dashboard_controller_test.rb",
362
577
  "test/functional/mail_engine/mail_dispatcher_test.rb",
363
- "test/functional/mail_engine/mail_schedules_controller_controller_test.rb",
364
- "test/functional/mail_engine/mail_templates_controller_controller_test.rb",
578
+ "test/functional/mail_engine/mail_logs_controller_test.rb",
579
+ "test/functional/mail_engine/mail_schedules_controller_test.rb",
580
+ "test/functional/mail_engine/mail_template_files_controller_test.rb",
581
+ "test/functional/mail_engine/mail_templates_controller_test.rb",
582
+ "test/functional/mail_engine/reports_controller_test.rb",
583
+ "test/functional/user_mailer_test.rb",
365
584
  "test/support/integration_case.rb",
366
585
  "test/test_helper.rb",
367
586
  "test/unit/mail_engine/mail_log_test.rb",
368
587
  "test/unit/mail_engine/mail_schedule_test.rb",
369
588
  "test/unit/mail_engine/mail_template_file_test.rb",
370
589
  "test/unit/mail_engine/mail_template_test.rb",
371
- "test/unit/mail_engine/template_partial_test.rb"
590
+ "test/unit/mail_engine/template_partial_test.rb",
591
+ "test/unit/user_test.rb"
372
592
  ]
373
593
 
374
594
  if s.respond_to? :specification_version then
375
595
  s.specification_version = 3
376
596
 
377
597
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
378
- s.add_runtime_dependency(%q<rails>, ["= 3.0.3"])
598
+ s.add_runtime_dependency(%q<rails>, ["= 3.0.4"])
599
+ s.add_runtime_dependency(%q<rack>, [">= 0"])
379
600
  s.add_runtime_dependency(%q<mysql>, [">= 0"])
380
601
  s.add_runtime_dependency(%q<liquid>, [">= 0"])
381
602
  s.add_runtime_dependency(%q<httparty>, [">= 0"])
382
- s.add_runtime_dependency(%q<will_paginate>, ["~> 3.0.pre2"])
603
+ s.add_runtime_dependency(%q<kaminari>, [">= 0"])
383
604
  s.add_runtime_dependency(%q<carrierwave>, [">= 0"])
384
605
  s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
385
606
  s.add_runtime_dependency(%q<deep_cloneable>, [">= 0"])
607
+ s.add_development_dependency(%q<bluecloth>, [">= 0"])
386
608
  s.add_development_dependency(%q<yard>, [">= 0"])
387
609
  s.add_development_dependency(%q<bundler>, [">= 0"])
388
610
  s.add_development_dependency(%q<jeweler>, [">= 0"])
389
611
  s.add_development_dependency(%q<rcov>, [">= 0"])
390
612
  s.add_development_dependency(%q<reek>, [">= 0"])
391
613
  else
392
- s.add_dependency(%q<rails>, ["= 3.0.3"])
614
+ s.add_dependency(%q<rails>, ["= 3.0.4"])
615
+ s.add_dependency(%q<rack>, [">= 0"])
393
616
  s.add_dependency(%q<mysql>, [">= 0"])
394
617
  s.add_dependency(%q<liquid>, [">= 0"])
395
618
  s.add_dependency(%q<httparty>, [">= 0"])
396
- s.add_dependency(%q<will_paginate>, ["~> 3.0.pre2"])
619
+ s.add_dependency(%q<kaminari>, [">= 0"])
397
620
  s.add_dependency(%q<carrierwave>, [">= 0"])
398
621
  s.add_dependency(%q<nokogiri>, [">= 0"])
399
622
  s.add_dependency(%q<deep_cloneable>, [">= 0"])
623
+ s.add_dependency(%q<bluecloth>, [">= 0"])
400
624
  s.add_dependency(%q<yard>, [">= 0"])
401
625
  s.add_dependency(%q<bundler>, [">= 0"])
402
626
  s.add_dependency(%q<jeweler>, [">= 0"])
@@ -404,14 +628,16 @@ Gem::Specification.new do |s|
404
628
  s.add_dependency(%q<reek>, [">= 0"])
405
629
  end
406
630
  else
407
- s.add_dependency(%q<rails>, ["= 3.0.3"])
631
+ s.add_dependency(%q<rails>, ["= 3.0.4"])
632
+ s.add_dependency(%q<rack>, [">= 0"])
408
633
  s.add_dependency(%q<mysql>, [">= 0"])
409
634
  s.add_dependency(%q<liquid>, [">= 0"])
410
635
  s.add_dependency(%q<httparty>, [">= 0"])
411
- s.add_dependency(%q<will_paginate>, ["~> 3.0.pre2"])
636
+ s.add_dependency(%q<kaminari>, [">= 0"])
412
637
  s.add_dependency(%q<carrierwave>, [">= 0"])
413
638
  s.add_dependency(%q<nokogiri>, [">= 0"])
414
639
  s.add_dependency(%q<deep_cloneable>, [">= 0"])
640
+ s.add_dependency(%q<bluecloth>, [">= 0"])
415
641
  s.add_dependency(%q<yard>, [">= 0"])
416
642
  s.add_dependency(%q<bundler>, [">= 0"])
417
643
  s.add_dependency(%q<jeweler>, [">= 0"])