mail_engine 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (313) hide show
  1. data/.yardoc/checksums +17 -0
  2. data/.yardoc/objects/ActionMailer/Base/collect_responses_and_parts_order_i.dat +0 -0
  3. data/.yardoc/objects/ActionMailer/Base/mail_i.dat +0 -0
  4. data/.yardoc/objects/ActionMailer/Base/origin_mail_i.dat +0 -0
  5. data/.yardoc/objects/ActionMailer/Base/set_layout_and_partials_i.dat +0 -0
  6. data/.yardoc/objects/ActionMailer/Base.dat +0 -0
  7. data/.yardoc/objects/ActionMailer/Collector/custom_i.dat +0 -0
  8. data/.yardoc/objects/ActionMailer/Collector.dat +0 -0
  9. data/.yardoc/objects/ActionMailer.dat +0 -0
  10. data/.yardoc/objects/MailEngine/ActsAsMailReceiver/ClassMethods/acts_as_mail_receiver_i.dat +0 -0
  11. data/.yardoc/objects/MailEngine/ActsAsMailReceiver/ClassMethods.dat +0 -0
  12. data/.yardoc/objects/MailEngine/ActsAsMailReceiver.dat +0 -0
  13. data/.yardoc/objects/MailEngine/Base/_40_40configurations.dat +0 -0
  14. data/.yardoc/objects/MailEngine/Base/current_config_c.dat +0 -0
  15. data/.yardoc/objects/MailEngine/Base/send_mail_c.dat +0 -0
  16. data/.yardoc/objects/MailEngine/Base.dat +0 -0
  17. data/.yardoc/objects/MailEngine/Configuration/load_c.dat +0 -0
  18. data/.yardoc/objects/MailEngine/Configuration.dat +0 -0
  19. data/.yardoc/objects/MailEngine/CreateConfig/create_config_file_i.dat +0 -0
  20. data/.yardoc/objects/MailEngine/CreateConfig.dat +0 -0
  21. data/.yardoc/objects/MailEngine/CreateMigration/create_migrations_i.dat +0 -0
  22. data/.yardoc/objects/MailEngine/CreateMigration.dat +0 -0
  23. data/.yardoc/objects/MailEngine/Engine.dat +0 -0
  24. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/check_21_c.dat +0 -0
  25. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/process_c.dat +0 -0
  26. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/replace_resource_filename_in_html_c.dat +0 -0
  27. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/replace_resource_url_in_html_c.dat +0 -0
  28. data/.yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer.dat +0 -0
  29. data/.yardoc/objects/MailEngine/MailLogSubscriber/deliver_i.dat +0 -0
  30. data/.yardoc/objects/MailEngine/MailLogSubscriber.dat +0 -0
  31. data/.yardoc/objects/MailEngine/Sendgrid/Base/ClassMethods/sendgrid_header_i.dat +0 -0
  32. data/.yardoc/objects/MailEngine/Sendgrid/Base/ClassMethods.dat +0 -0
  33. data/.yardoc/objects/MailEngine/Sendgrid/Base/InstanceMethods.dat +0 -0
  34. data/.yardoc/objects/MailEngine/Sendgrid/Base.dat +0 -0
  35. data/.yardoc/objects/MailEngine/Sendgrid/FilterSetting/data_3D_i.dat +0 -0
  36. data/.yardoc/objects/MailEngine/Sendgrid/FilterSetting/data_i.dat +0 -0
  37. data/.yardoc/objects/MailEngine/Sendgrid/FilterSetting/initialize_i.dat +0 -0
  38. data/.yardoc/objects/MailEngine/Sendgrid/FilterSetting/validate_config_21_i.dat +0 -0
  39. data/.yardoc/objects/MailEngine/Sendgrid/FilterSetting.dat +0 -0
  40. data/.yardoc/objects/MailEngine/Sendgrid/RestApi/blocks_c.dat +0 -0
  41. data/.yardoc/objects/MailEngine/Sendgrid/RestApi/bounces_c.dat +0 -0
  42. data/.yardoc/objects/MailEngine/Sendgrid/RestApi/invalidemails_c.dat +0 -0
  43. data/.yardoc/objects/MailEngine/Sendgrid/RestApi/spamreports_c.dat +0 -0
  44. data/.yardoc/objects/MailEngine/Sendgrid/RestApi/stats_c.dat +0 -0
  45. data/.yardoc/objects/MailEngine/Sendgrid/RestApi.dat +0 -0
  46. data/.yardoc/objects/MailEngine/Sendgrid/RestApiError.dat +0 -0
  47. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/add_sub_val_i.dat +0 -0
  48. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/add_to_i.dat +0 -0
  49. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/category_i.dat +0 -0
  50. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/filters_i.dat +0 -0
  51. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/initialize_i.dat +0 -0
  52. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/set_unique_args_i.dat +0 -0
  53. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/to_hash_i.dat +0 -0
  54. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/to_json_i.dat +0 -0
  55. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi/to_s_i.dat +0 -0
  56. data/.yardoc/objects/MailEngine/Sendgrid/SmtpApi.dat +0 -0
  57. data/.yardoc/objects/MailEngine/Sendgrid.dat +0 -0
  58. data/.yardoc/objects/MailEngine/VERSION.dat +0 -0
  59. data/.yardoc/objects/MailEngine/ZipProcessor/extract_all_files_c.dat +0 -0
  60. data/.yardoc/objects/MailEngine/ZipProcessor.dat +0 -0
  61. data/.yardoc/objects/MailEngine.dat +0 -0
  62. data/.yardoc/objects/PLACEHOLDERS_IN_LAYOUT.dat +0 -0
  63. data/.yardoc/objects/root.dat +0 -0
  64. data/.yardoc/proxy_types +0 -0
  65. data/Gemfile +36 -0
  66. data/Gemfile.lock +159 -0
  67. data/MIT-LICENSE +20 -0
  68. data/README.mkd +152 -0
  69. data/Rakefile +57 -0
  70. data/VERSION +1 -0
  71. data/app/controllers/mail_engine/application_controller.rb +7 -0
  72. data/app/controllers/mail_engine/dashboard_controller.rb +9 -0
  73. data/app/controllers/mail_engine/mail_logs_controller.rb +20 -0
  74. data/app/controllers/mail_engine/mail_schedules_controller.rb +56 -0
  75. data/app/controllers/mail_engine/mail_template_files_controller.rb +46 -0
  76. data/app/controllers/mail_engine/mail_templates_controller.rb +141 -0
  77. data/app/controllers/mail_engine/reports_controller.rb +34 -0
  78. data/app/helpers/mail_engine/mail_engine_helper.rb +30 -0
  79. data/app/mailers/mail_engine/mail_dispatcher.rb +59 -0
  80. data/app/models/mail_engine/mail_log.rb +36 -0
  81. data/app/models/mail_engine/mail_schedule.rb +70 -0
  82. data/app/models/mail_engine/mail_template.rb +270 -0
  83. data/app/models/mail_engine/mail_template_file.rb +31 -0
  84. data/app/models/mail_engine/template_partial.rb +9 -0
  85. data/app/uploaders/mail_engine/template_file_uploader.rb +47 -0
  86. data/app/uploaders/mail_engine/zip_file_uploader.rb +47 -0
  87. data/app/views/layouts/mail_engine/mail_engine.html.erb +112 -0
  88. data/app/views/layouts/mail_engine/mail_template_layouts/header_and_footer.html.erb +10 -0
  89. data/app/views/layouts/mail_engine/mail_template_layouts/header_and_footer.text.erb +3 -0
  90. data/app/views/layouts/mail_engine/mail_template_layouts/none.html.erb +8 -0
  91. data/app/views/layouts/mail_engine/mail_template_layouts/none.text.erb +1 -0
  92. data/app/views/layouts/mail_engine/mail_template_layouts/only_footer.html.erb +9 -0
  93. data/app/views/layouts/mail_engine/mail_template_layouts/only_footer.text.erb +2 -0
  94. data/app/views/mail_engine/dashboard/index.html.erb +64 -0
  95. data/app/views/mail_engine/mail_logs/index.html.erb +34 -0
  96. data/app/views/mail_engine/mail_logs/show.html.erb +38 -0
  97. data/app/views/mail_engine/mail_schedules/_form.html.erb +45 -0
  98. data/app/views/mail_engine/mail_schedules/edit.html.erb +16 -0
  99. data/app/views/mail_engine/mail_schedules/index.html.erb +50 -0
  100. data/app/views/mail_engine/mail_schedules/new.html.erb +13 -0
  101. data/app/views/mail_engine/mail_schedules/show.html.erb +44 -0
  102. data/app/views/mail_engine/mail_template_files/_form.html.erb +28 -0
  103. data/app/views/mail_engine/mail_template_files/edit.html.erb +9 -0
  104. data/app/views/mail_engine/mail_template_files/new.html.erb +9 -0
  105. data/app/views/mail_engine/mail_templates/_form.html.erb +97 -0
  106. data/app/views/mail_engine/mail_templates/_layout_selector.html.erb +50 -0
  107. data/app/views/mail_engine/mail_templates/duplicate.html.erb +41 -0
  108. data/app/views/mail_engine/mail_templates/edit.html.erb +16 -0
  109. data/app/views/mail_engine/mail_templates/index.html.erb +69 -0
  110. data/app/views/mail_engine/mail_templates/new.html.erb +12 -0
  111. data/app/views/mail_engine/mail_templates/new_by_upload.html.erb +63 -0
  112. data/app/views/mail_engine/mail_templates/partial_options.html.erb +28 -0
  113. data/app/views/mail_engine/mail_templates/preview.html.erb +1 -0
  114. data/app/views/mail_engine/mail_templates/preview.text.erb +1 -0
  115. data/app/views/mail_engine/mail_templates/show.html.erb +64 -0
  116. data/app/views/mail_engine/reports/charts/blocks.html.erb +21 -0
  117. data/app/views/mail_engine/reports/charts/bounces.html.erb +21 -0
  118. data/app/views/mail_engine/reports/charts/invalidemails.html.erb +19 -0
  119. data/app/views/mail_engine/reports/charts/spamreports.html.erb +17 -0
  120. data/app/views/mail_engine/reports/index.html.erb +67 -0
  121. data/config/routes.rb +48 -0
  122. data/db/migrate/20110114030841_create_table_mail_template.rb +22 -0
  123. data/db/migrate/20110126030525_create_mail_schedules.rb +21 -0
  124. data/db/migrate/20110204114145_create_template_partials.rb +13 -0
  125. data/db/migrate/20110206025002_create_mail_logs.rb +17 -0
  126. data/db/migrate/20110217062316_create_mail_template_files.rb +14 -0
  127. data/doc/_index.html +322 -0
  128. data/doc/class_list.html +36 -0
  129. data/doc/css/common.css +1 -0
  130. data/doc/css/full_list.css +53 -0
  131. data/doc/css/style.css +310 -0
  132. data/doc/file_list.html +38 -0
  133. data/doc/frames.html +13 -0
  134. data/doc/js/app.js +203 -0
  135. data/doc/js/full_list.js +149 -0
  136. data/doc/js/jquery.js +154 -0
  137. data/doc/method_list.html +283 -0
  138. data/lib/mail_engine/action_mailer_patch.rb +104 -0
  139. data/lib/mail_engine/acts_as_mail_receiver.rb +22 -0
  140. data/lib/mail_engine/base.rb +26 -0
  141. data/lib/mail_engine/configuration.rb +11 -0
  142. data/lib/mail_engine/engine.rb +42 -0
  143. data/lib/mail_engine/generators/create_config.rb +20 -0
  144. data/lib/mail_engine/generators/create_migration.rb +20 -0
  145. data/lib/mail_engine/generators/templates/mail_engine_config.yml +14 -0
  146. data/lib/mail_engine/html_document_assets_replacer.rb +86 -0
  147. data/lib/mail_engine/mail_log_subscriber.rb +30 -0
  148. data/lib/mail_engine/placeholders_in_layout.rb +5 -0
  149. data/lib/mail_engine/sendgrid/base.rb +45 -0
  150. data/lib/mail_engine/sendgrid/rest_api.rb +85 -0
  151. data/lib/mail_engine/sendgrid/smtp_api.rb +85 -0
  152. data/lib/mail_engine/sendgrid.rb +9 -0
  153. data/lib/mail_engine/tasks/sendmail.rake +8 -0
  154. data/lib/mail_engine/version.rb +3 -0
  155. data/lib/mail_engine/zip_processor.rb +51 -0
  156. data/lib/mail_engine.rb +17 -0
  157. data/mail_engine.gemspec +422 -0
  158. data/screenshots/bounce_report.png +0 -0
  159. data/screenshots/dashboard.png +0 -0
  160. data/screenshots/editing_mail_template.png +0 -0
  161. data/screenshots/logs.png +0 -0
  162. data/screenshots/new_by_upload.png +0 -0
  163. data/screenshots/reports.png +0 -0
  164. data/screenshots/schedule.png +0 -0
  165. data/screenshots/select_layout_partial.png +0 -0
  166. data/screenshots/templates.png +0 -0
  167. data/test/dummy/Rakefile +7 -0
  168. data/test/dummy/app/controllers/application_controller.rb +11 -0
  169. data/test/dummy/app/helpers/application_helper.rb +2 -0
  170. data/test/dummy/app/mailers/user_mailer.rb +36 -0
  171. data/test/dummy/app/models/user.rb +10 -0
  172. data/test/dummy/config/application.rb +52 -0
  173. data/test/dummy/config/boot.rb +10 -0
  174. data/test/dummy/config/database.yml +52 -0
  175. data/test/dummy/config/environment.rb +5 -0
  176. data/test/dummy/config/environments/development.rb +47 -0
  177. data/test/dummy/config/environments/production.rb +49 -0
  178. data/test/dummy/config/environments/test.rb +43 -0
  179. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  180. data/test/dummy/config/initializers/inflections.rb +10 -0
  181. data/test/dummy/config/initializers/mime_types.rb +5 -0
  182. data/test/dummy/config/initializers/secret_token.rb +7 -0
  183. data/test/dummy/config/initializers/session_store.rb +8 -0
  184. data/test/dummy/config/locales/en.yml +5 -0
  185. data/test/dummy/config/locales/zh.yml +2 -0
  186. data/test/dummy/config/routes.rb +58 -0
  187. data/test/dummy/config.ru +4 -0
  188. data/test/dummy/db/migrate/20110114030841_create_table_mail_template.rb +22 -0
  189. data/test/dummy/db/migrate/20110125094530_create_users.rb +16 -0
  190. data/test/dummy/db/migrate/20110126030525_create_mail_schedules.rb +21 -0
  191. data/test/dummy/db/migrate/20110204114145_create_template_partials.rb +13 -0
  192. data/test/dummy/db/migrate/20110206025002_create_mail_logs.rb +17 -0
  193. data/test/dummy/db/migrate/20110217062316_create_mail_template_files.rb +14 -0
  194. data/test/dummy/db/schema.rb +78 -0
  195. data/test/dummy/public/404.html +26 -0
  196. data/test/dummy/public/422.html +26 -0
  197. data/test/dummy/public/500.html +26 -0
  198. data/test/dummy/public/favicon.ico +0 -0
  199. data/test/dummy/public/images/mail_engine/header_and_footer_layout.png +0 -0
  200. data/test/dummy/public/images/mail_engine/logo.gif +0 -0
  201. data/test/dummy/public/images/mail_engine/logo.png +0 -0
  202. data/test/dummy/public/images/mail_engine/none_layout.png +0 -0
  203. data/test/dummy/public/images/mail_engine/only_footer_layout.png +0 -0
  204. data/test/dummy/public/images/mail_engine/unselect_header_and_footer_layout.png +0 -0
  205. data/test/dummy/public/images/mail_engine/unselect_none_layout.png +0 -0
  206. data/test/dummy/public/images/mail_engine/unselect_only_footer_layout.png +0 -0
  207. data/test/dummy/public/javascripts/jquery.iframe-auto-height.plugin.js +50 -0
  208. data/test/dummy/public/javascripts/jquery.js +16 -0
  209. data/test/dummy/public/javascripts/jquery.nyroModal/img/ajaxLoader.gif +0 -0
  210. data/test/dummy/public/javascripts/jquery.nyroModal/img/close.gif +0 -0
  211. data/test/dummy/public/javascripts/jquery.nyroModal/img/next.gif +0 -0
  212. data/test/dummy/public/javascripts/jquery.nyroModal/img/prev.gif +0 -0
  213. data/test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal-ie6.js +186 -0
  214. data/test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal-ie6.min.js +9 -0
  215. data/test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal.custom.js +1599 -0
  216. data/test/dummy/public/javascripts/jquery.nyroModal/js/jquery.nyroModal.custom.min.js +34 -0
  217. data/test/dummy/public/javascripts/jquery.nyroModal/styles/nyroModal.css +102 -0
  218. data/test/dummy/public/javascripts/jquery.string.js +425 -0
  219. data/test/dummy/public/javascripts/mail_engine_application.js +2 -0
  220. data/test/dummy/public/javascripts/markitup/jquery.markitup.js +564 -0
  221. data/test/dummy/public/javascripts/markitup/sets/css/images/bold.png +0 -0
  222. data/test/dummy/public/javascripts/markitup/sets/css/images/css.png +0 -0
  223. data/test/dummy/public/javascripts/markitup/sets/css/images/italic.png +0 -0
  224. data/test/dummy/public/javascripts/markitup/sets/css/images/picture.png +0 -0
  225. data/test/dummy/public/javascripts/markitup/sets/css/images/stroke.png +0 -0
  226. data/test/dummy/public/javascripts/markitup/sets/css/images/tag.png +0 -0
  227. data/test/dummy/public/javascripts/markitup/sets/css/images/text_align_center.png +0 -0
  228. data/test/dummy/public/javascripts/markitup/sets/css/images/text_align_justify.png +0 -0
  229. data/test/dummy/public/javascripts/markitup/sets/css/images/text_align_left.png +0 -0
  230. data/test/dummy/public/javascripts/markitup/sets/css/images/text_align_right.png +0 -0
  231. data/test/dummy/public/javascripts/markitup/sets/css/images/text_indent.png +0 -0
  232. data/test/dummy/public/javascripts/markitup/sets/css/images/text_letterspacing.png +0 -0
  233. data/test/dummy/public/javascripts/markitup/sets/css/images/text_linespacing.png +0 -0
  234. data/test/dummy/public/javascripts/markitup/sets/css/images/text_lowercase.png +0 -0
  235. data/test/dummy/public/javascripts/markitup/sets/css/images/text_padding_bottom.png +0 -0
  236. data/test/dummy/public/javascripts/markitup/sets/css/images/text_padding_left.png +0 -0
  237. data/test/dummy/public/javascripts/markitup/sets/css/images/text_padding_right.png +0 -0
  238. data/test/dummy/public/javascripts/markitup/sets/css/images/text_padding_top.png +0 -0
  239. data/test/dummy/public/javascripts/markitup/sets/css/images/text_uppercase.png +0 -0
  240. data/test/dummy/public/javascripts/markitup/sets/css/readme.txt +28 -0
  241. data/test/dummy/public/javascripts/markitup/sets/css/set.js +52 -0
  242. data/test/dummy/public/javascripts/markitup/sets/css/style.css +72 -0
  243. data/test/dummy/public/javascripts/markitup/sets/default/images/bold.png +0 -0
  244. data/test/dummy/public/javascripts/markitup/sets/default/images/clean.png +0 -0
  245. data/test/dummy/public/javascripts/markitup/sets/default/images/image.png +0 -0
  246. data/test/dummy/public/javascripts/markitup/sets/default/images/italic.png +0 -0
  247. data/test/dummy/public/javascripts/markitup/sets/default/images/link.png +0 -0
  248. data/test/dummy/public/javascripts/markitup/sets/default/images/picture.png +0 -0
  249. data/test/dummy/public/javascripts/markitup/sets/default/images/preview.png +0 -0
  250. data/test/dummy/public/javascripts/markitup/sets/default/images/stroke.png +0 -0
  251. data/test/dummy/public/javascripts/markitup/sets/default/set.js +27 -0
  252. data/test/dummy/public/javascripts/markitup/sets/default/style.css +27 -0
  253. data/test/dummy/public/javascripts/markitup/sets/html/images/bold.png +0 -0
  254. data/test/dummy/public/javascripts/markitup/sets/html/images/clean.png +0 -0
  255. data/test/dummy/public/javascripts/markitup/sets/html/images/h1.png +0 -0
  256. data/test/dummy/public/javascripts/markitup/sets/html/images/h2.png +0 -0
  257. data/test/dummy/public/javascripts/markitup/sets/html/images/h3.png +0 -0
  258. data/test/dummy/public/javascripts/markitup/sets/html/images/h4.png +0 -0
  259. data/test/dummy/public/javascripts/markitup/sets/html/images/h5.png +0 -0
  260. data/test/dummy/public/javascripts/markitup/sets/html/images/h6.png +0 -0
  261. data/test/dummy/public/javascripts/markitup/sets/html/images/image.png +0 -0
  262. data/test/dummy/public/javascripts/markitup/sets/html/images/italic.png +0 -0
  263. data/test/dummy/public/javascripts/markitup/sets/html/images/link.png +0 -0
  264. data/test/dummy/public/javascripts/markitup/sets/html/images/list-bullet.png +0 -0
  265. data/test/dummy/public/javascripts/markitup/sets/html/images/list-item.png +0 -0
  266. data/test/dummy/public/javascripts/markitup/sets/html/images/list-numeric.png +0 -0
  267. data/test/dummy/public/javascripts/markitup/sets/html/images/paragraph.png +0 -0
  268. data/test/dummy/public/javascripts/markitup/sets/html/images/picture.png +0 -0
  269. data/test/dummy/public/javascripts/markitup/sets/html/images/preview.png +0 -0
  270. data/test/dummy/public/javascripts/markitup/sets/html/images/stroke.png +0 -0
  271. data/test/dummy/public/javascripts/markitup/sets/html/readme.txt +11 -0
  272. data/test/dummy/public/javascripts/markitup/sets/html/set.js +40 -0
  273. data/test/dummy/public/javascripts/markitup/sets/html/style.css +59 -0
  274. data/test/dummy/public/javascripts/markitup/skins/markitup/images/bg-container.png +0 -0
  275. data/test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-bbcode.png +0 -0
  276. data/test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-dotclear.png +0 -0
  277. data/test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-html.png +0 -0
  278. data/test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-json.png +0 -0
  279. data/test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-markdown.png +0 -0
  280. data/test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-textile.png +0 -0
  281. data/test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-wiki.png +0 -0
  282. data/test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor-xml.png +0 -0
  283. data/test/dummy/public/javascripts/markitup/skins/markitup/images/bg-editor.png +0 -0
  284. data/test/dummy/public/javascripts/markitup/skins/markitup/images/handle.png +0 -0
  285. data/test/dummy/public/javascripts/markitup/skins/markitup/images/menu.png +0 -0
  286. data/test/dummy/public/javascripts/markitup/skins/markitup/images/submenu.png +0 -0
  287. data/test/dummy/public/javascripts/markitup/skins/markitup/style.css +147 -0
  288. data/test/dummy/public/javascripts/markitup/skins/simple/images/handle.png +0 -0
  289. data/test/dummy/public/javascripts/markitup/skins/simple/images/menu.png +0 -0
  290. data/test/dummy/public/javascripts/markitup/skins/simple/images/submenu.png +0 -0
  291. data/test/dummy/public/javascripts/markitup/skins/simple/style.css +118 -0
  292. data/test/dummy/public/javascripts/markitup/templates/preview.css +5 -0
  293. data/test/dummy/public/javascripts/markitup/templates/preview.html +11 -0
  294. data/test/dummy/public/javascripts/rails.js +132 -0
  295. data/test/dummy/public/stylesheets/.gitkeep +0 -0
  296. data/test/dummy/public/stylesheets/application.css +0 -0
  297. data/test/dummy/public/stylesheets/style.css +681 -0
  298. data/test/dummy/script/rails +6 -0
  299. data/test/factories.rb +88 -0
  300. data/test/fixtures/files/compress_by_dir.zip +0 -0
  301. data/test/fixtures/files/compress_by_file.zip +0 -0
  302. data/test/fixtures/files/image.png +0 -0
  303. data/test/functional/mail_engine/mail_dispatcher_test.rb +8 -0
  304. data/test/functional/mail_engine/mail_schedules_controller_controller_test.rb +8 -0
  305. data/test/functional/mail_engine/mail_templates_controller_controller_test.rb +8 -0
  306. data/test/support/integration_case.rb +5 -0
  307. data/test/test_helper.rb +35 -0
  308. data/test/unit/mail_engine/mail_log_test.rb +8 -0
  309. data/test/unit/mail_engine/mail_schedule_test.rb +40 -0
  310. data/test/unit/mail_engine/mail_template_file_test.rb +21 -0
  311. data/test/unit/mail_engine/mail_template_test.rb +77 -0
  312. data/test/unit/mail_engine/template_partial_test.rb +8 -0
  313. metadata +597 -0
@@ -0,0 +1,51 @@
1
+ module MailEngine
2
+ class ZipProcessor
3
+ class << self
4
+ # Usage:
5
+ # MailEngine::ZipProcessor.extract_all_files(path, ["css", "jpg", "gif"]) do |file_path|
6
+ # Image.create :file => File.open(file_path)
7
+ # end
8
+ #
9
+ # Params:
10
+ # zip_file_path => /path/to/your/zip_file
11
+ # needed_exts => ['jpg', 'jpeg', 'css']
12
+ #
13
+ # Result:
14
+ # [
15
+ # [
16
+ # "/Volumes/documents/projects/work/mail_engine/test/dummy/tmp/zip_processor_tmp_dir/compress_by_dir9671920/compress_by_file/css/example.css",
17
+ # "/Volumes/documents/projects/work/mail_engine/test/dummy/tmp/zip_processor_tmp_dir/compress_by_dir9671920/compress_by_file/images/logo.png",
18
+ # "/Volumes/documents/projects/work/mail_engine/test/dummy/tmp/zip_processor_tmp_dir/compress_by_dir9671920/compress_by_file/index.html"
19
+ # ],
20
+ # "/Volumes/documents/projects/work/mail_engine/test/dummy/tmp/zip_processor_tmp_dir/compress_by_dir9671920"
21
+ # ]
22
+ def extract_all_files(zip_file_path, needed_exts)
23
+ return unless zip_file_path =~ /\.zip$/i
24
+
25
+ file_fullname = File.basename(zip_file_path)
26
+ filename = file_fullname.sub(/.zip$/, "")
27
+ unzip_path = File.join(Rails.root, 'tmp', 'zip_processor_tmp_dir', "#{filename}#{rand(10000000)}")
28
+
29
+ unzip_result = system("unzip #{zip_file_path} -d #{unzip_path} > /dev/null")
30
+ unzip_result = unzip_result && $?.exitstatus == 0
31
+
32
+ return unless unzip_result
33
+
34
+ file_ext_param_str = needed_exts.map {|ext| "-iname '*.#{ext}'" }.join(" -o ")
35
+
36
+ result_list_string = `find #{unzip_path} #{file_ext_param_str}`
37
+ result_list = result_list_string.split("\n")
38
+
39
+ if block_given?
40
+ result_list.each do |file_path|
41
+ yield file_path
42
+ end
43
+ # remove the unzip tmp files.
44
+ system("rm -rf #{unzip_path}")
45
+ else
46
+ [result_list, unzip_path]
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,17 @@
1
+ require 'active_support'
2
+ require "action_view/template"
3
+ require 'mail_engine/engine'
4
+ require 'mail_engine/placeholders_in_layout'
5
+ require 'mail_engine/mail_log_subscriber'
6
+ require 'mail_engine/zip_processor'
7
+ require 'mail_engine/html_document_assets_replacer'
8
+
9
+ module MailEngine
10
+ extend ::ActiveSupport::Autoload
11
+
12
+ autoload :Base
13
+ autoload :Sendgrid
14
+ autoload :Mailer
15
+ autoload :ActsAsMailReceiver
16
+ autoload :Configuration
17
+ end
@@ -0,0 +1,422 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{mail_engine}
8
+ s.version = "0.0.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["michael he"]
12
+ s.date = %q{2011-02-25}
13
+ s.description = %q{Rails system mail management solution.}
14
+ s.email = %q{hlxwell@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "README.mkd"
17
+ ]
18
+ s.files = [
19
+ ".yardoc/checksums",
20
+ ".yardoc/objects/ActionMailer.dat",
21
+ ".yardoc/objects/ActionMailer/Base.dat",
22
+ ".yardoc/objects/ActionMailer/Base/collect_responses_and_parts_order_i.dat",
23
+ ".yardoc/objects/ActionMailer/Base/mail_i.dat",
24
+ ".yardoc/objects/ActionMailer/Base/origin_mail_i.dat",
25
+ ".yardoc/objects/ActionMailer/Base/set_layout_and_partials_i.dat",
26
+ ".yardoc/objects/ActionMailer/Collector.dat",
27
+ ".yardoc/objects/ActionMailer/Collector/custom_i.dat",
28
+ ".yardoc/objects/MailEngine.dat",
29
+ ".yardoc/objects/MailEngine/ActsAsMailReceiver.dat",
30
+ ".yardoc/objects/MailEngine/ActsAsMailReceiver/ClassMethods.dat",
31
+ ".yardoc/objects/MailEngine/ActsAsMailReceiver/ClassMethods/acts_as_mail_receiver_i.dat",
32
+ ".yardoc/objects/MailEngine/Base.dat",
33
+ ".yardoc/objects/MailEngine/Base/_40_40configurations.dat",
34
+ ".yardoc/objects/MailEngine/Base/current_config_c.dat",
35
+ ".yardoc/objects/MailEngine/Base/send_mail_c.dat",
36
+ ".yardoc/objects/MailEngine/Configuration.dat",
37
+ ".yardoc/objects/MailEngine/Configuration/load_c.dat",
38
+ ".yardoc/objects/MailEngine/CreateConfig.dat",
39
+ ".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
+ ".yardoc/objects/MailEngine/Engine.dat",
43
+ ".yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer.dat",
44
+ ".yardoc/objects/MailEngine/HtmlDocumentAssetsReplacer/check_21_c.dat",
45
+ ".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",
48
+ ".yardoc/objects/MailEngine/MailLogSubscriber.dat",
49
+ ".yardoc/objects/MailEngine/MailLogSubscriber/deliver_i.dat",
50
+ ".yardoc/objects/MailEngine/Sendgrid.dat",
51
+ ".yardoc/objects/MailEngine/Sendgrid/Base.dat",
52
+ ".yardoc/objects/MailEngine/Sendgrid/Base/ClassMethods.dat",
53
+ ".yardoc/objects/MailEngine/Sendgrid/Base/ClassMethods/sendgrid_header_i.dat",
54
+ ".yardoc/objects/MailEngine/Sendgrid/Base/InstanceMethods.dat",
55
+ ".yardoc/objects/MailEngine/Sendgrid/FilterSetting.dat",
56
+ ".yardoc/objects/MailEngine/Sendgrid/FilterSetting/data_3D_i.dat",
57
+ ".yardoc/objects/MailEngine/Sendgrid/FilterSetting/data_i.dat",
58
+ ".yardoc/objects/MailEngine/Sendgrid/FilterSetting/initialize_i.dat",
59
+ ".yardoc/objects/MailEngine/Sendgrid/FilterSetting/validate_config_21_i.dat",
60
+ ".yardoc/objects/MailEngine/Sendgrid/RestApi.dat",
61
+ ".yardoc/objects/MailEngine/Sendgrid/RestApi/blocks_c.dat",
62
+ ".yardoc/objects/MailEngine/Sendgrid/RestApi/bounces_c.dat",
63
+ ".yardoc/objects/MailEngine/Sendgrid/RestApi/invalidemails_c.dat",
64
+ ".yardoc/objects/MailEngine/Sendgrid/RestApi/spamreports_c.dat",
65
+ ".yardoc/objects/MailEngine/Sendgrid/RestApi/stats_c.dat",
66
+ ".yardoc/objects/MailEngine/Sendgrid/RestApiError.dat",
67
+ ".yardoc/objects/MailEngine/Sendgrid/SmtpApi.dat",
68
+ ".yardoc/objects/MailEngine/Sendgrid/SmtpApi/add_sub_val_i.dat",
69
+ ".yardoc/objects/MailEngine/Sendgrid/SmtpApi/add_to_i.dat",
70
+ ".yardoc/objects/MailEngine/Sendgrid/SmtpApi/category_i.dat",
71
+ ".yardoc/objects/MailEngine/Sendgrid/SmtpApi/filters_i.dat",
72
+ ".yardoc/objects/MailEngine/Sendgrid/SmtpApi/initialize_i.dat",
73
+ ".yardoc/objects/MailEngine/Sendgrid/SmtpApi/set_unique_args_i.dat",
74
+ ".yardoc/objects/MailEngine/Sendgrid/SmtpApi/to_hash_i.dat",
75
+ ".yardoc/objects/MailEngine/Sendgrid/SmtpApi/to_json_i.dat",
76
+ ".yardoc/objects/MailEngine/Sendgrid/SmtpApi/to_s_i.dat",
77
+ ".yardoc/objects/MailEngine/VERSION.dat",
78
+ ".yardoc/objects/MailEngine/ZipProcessor.dat",
79
+ ".yardoc/objects/MailEngine/ZipProcessor/extract_all_files_c.dat",
80
+ ".yardoc/objects/PLACEHOLDERS_IN_LAYOUT.dat",
81
+ ".yardoc/objects/root.dat",
82
+ ".yardoc/proxy_types",
83
+ "Gemfile",
84
+ "Gemfile.lock",
85
+ "MIT-LICENSE",
86
+ "README.mkd",
87
+ "Rakefile",
88
+ "VERSION",
89
+ "app/controllers/mail_engine/application_controller.rb",
90
+ "app/controllers/mail_engine/dashboard_controller.rb",
91
+ "app/controllers/mail_engine/mail_logs_controller.rb",
92
+ "app/controllers/mail_engine/mail_schedules_controller.rb",
93
+ "app/controllers/mail_engine/mail_template_files_controller.rb",
94
+ "app/controllers/mail_engine/mail_templates_controller.rb",
95
+ "app/controllers/mail_engine/reports_controller.rb",
96
+ "app/helpers/mail_engine/mail_engine_helper.rb",
97
+ "app/mailers/mail_engine/mail_dispatcher.rb",
98
+ "app/models/mail_engine/mail_log.rb",
99
+ "app/models/mail_engine/mail_schedule.rb",
100
+ "app/models/mail_engine/mail_template.rb",
101
+ "app/models/mail_engine/mail_template_file.rb",
102
+ "app/models/mail_engine/template_partial.rb",
103
+ "app/uploaders/mail_engine/template_file_uploader.rb",
104
+ "app/uploaders/mail_engine/zip_file_uploader.rb",
105
+ "app/views/layouts/mail_engine/mail_engine.html.erb",
106
+ "app/views/layouts/mail_engine/mail_template_layouts/header_and_footer.html.erb",
107
+ "app/views/layouts/mail_engine/mail_template_layouts/header_and_footer.text.erb",
108
+ "app/views/layouts/mail_engine/mail_template_layouts/none.html.erb",
109
+ "app/views/layouts/mail_engine/mail_template_layouts/none.text.erb",
110
+ "app/views/layouts/mail_engine/mail_template_layouts/only_footer.html.erb",
111
+ "app/views/layouts/mail_engine/mail_template_layouts/only_footer.text.erb",
112
+ "app/views/mail_engine/dashboard/index.html.erb",
113
+ "app/views/mail_engine/mail_logs/index.html.erb",
114
+ "app/views/mail_engine/mail_logs/show.html.erb",
115
+ "app/views/mail_engine/mail_schedules/_form.html.erb",
116
+ "app/views/mail_engine/mail_schedules/edit.html.erb",
117
+ "app/views/mail_engine/mail_schedules/index.html.erb",
118
+ "app/views/mail_engine/mail_schedules/new.html.erb",
119
+ "app/views/mail_engine/mail_schedules/show.html.erb",
120
+ "app/views/mail_engine/mail_template_files/_form.html.erb",
121
+ "app/views/mail_engine/mail_template_files/edit.html.erb",
122
+ "app/views/mail_engine/mail_template_files/new.html.erb",
123
+ "app/views/mail_engine/mail_templates/_form.html.erb",
124
+ "app/views/mail_engine/mail_templates/_layout_selector.html.erb",
125
+ "app/views/mail_engine/mail_templates/duplicate.html.erb",
126
+ "app/views/mail_engine/mail_templates/edit.html.erb",
127
+ "app/views/mail_engine/mail_templates/index.html.erb",
128
+ "app/views/mail_engine/mail_templates/new.html.erb",
129
+ "app/views/mail_engine/mail_templates/new_by_upload.html.erb",
130
+ "app/views/mail_engine/mail_templates/partial_options.html.erb",
131
+ "app/views/mail_engine/mail_templates/preview.html.erb",
132
+ "app/views/mail_engine/mail_templates/preview.text.erb",
133
+ "app/views/mail_engine/mail_templates/show.html.erb",
134
+ "app/views/mail_engine/reports/charts/blocks.html.erb",
135
+ "app/views/mail_engine/reports/charts/bounces.html.erb",
136
+ "app/views/mail_engine/reports/charts/invalidemails.html.erb",
137
+ "app/views/mail_engine/reports/charts/spamreports.html.erb",
138
+ "app/views/mail_engine/reports/index.html.erb",
139
+ "config/routes.rb",
140
+ "db/migrate/20110114030841_create_table_mail_template.rb",
141
+ "db/migrate/20110126030525_create_mail_schedules.rb",
142
+ "db/migrate/20110204114145_create_template_partials.rb",
143
+ "db/migrate/20110206025002_create_mail_logs.rb",
144
+ "db/migrate/20110217062316_create_mail_template_files.rb",
145
+ "doc/_index.html",
146
+ "doc/class_list.html",
147
+ "doc/css/common.css",
148
+ "doc/css/full_list.css",
149
+ "doc/css/style.css",
150
+ "doc/file_list.html",
151
+ "doc/frames.html",
152
+ "doc/js/app.js",
153
+ "doc/js/full_list.js",
154
+ "doc/js/jquery.js",
155
+ "doc/method_list.html",
156
+ "lib/mail_engine.rb",
157
+ "lib/mail_engine/action_mailer_patch.rb",
158
+ "lib/mail_engine/acts_as_mail_receiver.rb",
159
+ "lib/mail_engine/base.rb",
160
+ "lib/mail_engine/configuration.rb",
161
+ "lib/mail_engine/engine.rb",
162
+ "lib/mail_engine/generators/create_config.rb",
163
+ "lib/mail_engine/generators/create_migration.rb",
164
+ "lib/mail_engine/generators/templates/mail_engine_config.yml",
165
+ "lib/mail_engine/html_document_assets_replacer.rb",
166
+ "lib/mail_engine/mail_log_subscriber.rb",
167
+ "lib/mail_engine/placeholders_in_layout.rb",
168
+ "lib/mail_engine/sendgrid.rb",
169
+ "lib/mail_engine/sendgrid/base.rb",
170
+ "lib/mail_engine/sendgrid/rest_api.rb",
171
+ "lib/mail_engine/sendgrid/smtp_api.rb",
172
+ "lib/mail_engine/tasks/sendmail.rake",
173
+ "lib/mail_engine/version.rb",
174
+ "lib/mail_engine/zip_processor.rb",
175
+ "mail_engine.gemspec",
176
+ "screenshots/bounce_report.png",
177
+ "screenshots/dashboard.png",
178
+ "screenshots/editing_mail_template.png",
179
+ "screenshots/logs.png",
180
+ "screenshots/new_by_upload.png",
181
+ "screenshots/reports.png",
182
+ "screenshots/schedule.png",
183
+ "screenshots/select_layout_partial.png",
184
+ "screenshots/templates.png",
185
+ "test/dummy/Rakefile",
186
+ "test/dummy/app/controllers/application_controller.rb",
187
+ "test/dummy/app/helpers/application_helper.rb",
188
+ "test/dummy/app/mailers/user_mailer.rb",
189
+ "test/dummy/app/models/user.rb",
190
+ "test/dummy/config.ru",
191
+ "test/dummy/config/application.rb",
192
+ "test/dummy/config/boot.rb",
193
+ "test/dummy/config/database.yml",
194
+ "test/dummy/config/environment.rb",
195
+ "test/dummy/config/environments/development.rb",
196
+ "test/dummy/config/environments/production.rb",
197
+ "test/dummy/config/environments/test.rb",
198
+ "test/dummy/config/initializers/backtrace_silencers.rb",
199
+ "test/dummy/config/initializers/inflections.rb",
200
+ "test/dummy/config/initializers/mime_types.rb",
201
+ "test/dummy/config/initializers/secret_token.rb",
202
+ "test/dummy/config/initializers/session_store.rb",
203
+ "test/dummy/config/locales/en.yml",
204
+ "test/dummy/config/locales/zh.yml",
205
+ "test/dummy/config/routes.rb",
206
+ "test/dummy/db/migrate/20110114030841_create_table_mail_template.rb",
207
+ "test/dummy/db/migrate/20110125094530_create_users.rb",
208
+ "test/dummy/db/migrate/20110126030525_create_mail_schedules.rb",
209
+ "test/dummy/db/migrate/20110204114145_create_template_partials.rb",
210
+ "test/dummy/db/migrate/20110206025002_create_mail_logs.rb",
211
+ "test/dummy/db/migrate/20110217062316_create_mail_template_files.rb",
212
+ "test/dummy/db/schema.rb",
213
+ "test/dummy/public/404.html",
214
+ "test/dummy/public/422.html",
215
+ "test/dummy/public/500.html",
216
+ "test/dummy/public/favicon.ico",
217
+ "test/dummy/public/images/mail_engine/header_and_footer_layout.png",
218
+ "test/dummy/public/images/mail_engine/logo.gif",
219
+ "test/dummy/public/images/mail_engine/logo.png",
220
+ "test/dummy/public/images/mail_engine/none_layout.png",
221
+ "test/dummy/public/images/mail_engine/only_footer_layout.png",
222
+ "test/dummy/public/images/mail_engine/unselect_header_and_footer_layout.png",
223
+ "test/dummy/public/images/mail_engine/unselect_none_layout.png",
224
+ "test/dummy/public/images/mail_engine/unselect_only_footer_layout.png",
225
+ "test/dummy/public/javascripts/jquery.iframe-auto-height.plugin.js",
226
+ "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",
312
+ "test/dummy/public/javascripts/rails.js",
313
+ "test/dummy/public/stylesheets/.gitkeep",
314
+ "test/dummy/public/stylesheets/application.css",
315
+ "test/dummy/public/stylesheets/style.css",
316
+ "test/dummy/script/rails",
317
+ "test/factories.rb",
318
+ "test/fixtures/files/compress_by_dir.zip",
319
+ "test/fixtures/files/compress_by_file.zip",
320
+ "test/fixtures/files/image.png",
321
+ "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",
324
+ "test/support/integration_case.rb",
325
+ "test/test_helper.rb",
326
+ "test/unit/mail_engine/mail_log_test.rb",
327
+ "test/unit/mail_engine/mail_schedule_test.rb",
328
+ "test/unit/mail_engine/mail_template_file_test.rb",
329
+ "test/unit/mail_engine/mail_template_test.rb",
330
+ "test/unit/mail_engine/template_partial_test.rb"
331
+ ]
332
+ s.homepage = %q{http://github.com/hlxwell/mail-engine}
333
+ s.licenses = ["MIT"]
334
+ s.require_paths = ["lib"]
335
+ s.rubygems_version = %q{1.4.1}
336
+ s.summary = %q{Mail Management Solution}
337
+ s.test_files = [
338
+ "test/dummy/app/controllers/application_controller.rb",
339
+ "test/dummy/app/helpers/application_helper.rb",
340
+ "test/dummy/app/mailers/user_mailer.rb",
341
+ "test/dummy/app/models/user.rb",
342
+ "test/dummy/config/application.rb",
343
+ "test/dummy/config/boot.rb",
344
+ "test/dummy/config/environment.rb",
345
+ "test/dummy/config/environments/development.rb",
346
+ "test/dummy/config/environments/production.rb",
347
+ "test/dummy/config/environments/test.rb",
348
+ "test/dummy/config/initializers/backtrace_silencers.rb",
349
+ "test/dummy/config/initializers/inflections.rb",
350
+ "test/dummy/config/initializers/mime_types.rb",
351
+ "test/dummy/config/initializers/secret_token.rb",
352
+ "test/dummy/config/initializers/session_store.rb",
353
+ "test/dummy/config/routes.rb",
354
+ "test/dummy/db/migrate/20110114030841_create_table_mail_template.rb",
355
+ "test/dummy/db/migrate/20110125094530_create_users.rb",
356
+ "test/dummy/db/migrate/20110126030525_create_mail_schedules.rb",
357
+ "test/dummy/db/migrate/20110204114145_create_template_partials.rb",
358
+ "test/dummy/db/migrate/20110206025002_create_mail_logs.rb",
359
+ "test/dummy/db/migrate/20110217062316_create_mail_template_files.rb",
360
+ "test/dummy/db/schema.rb",
361
+ "test/factories.rb",
362
+ "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",
365
+ "test/support/integration_case.rb",
366
+ "test/test_helper.rb",
367
+ "test/unit/mail_engine/mail_log_test.rb",
368
+ "test/unit/mail_engine/mail_schedule_test.rb",
369
+ "test/unit/mail_engine/mail_template_file_test.rb",
370
+ "test/unit/mail_engine/mail_template_test.rb",
371
+ "test/unit/mail_engine/template_partial_test.rb"
372
+ ]
373
+
374
+ if s.respond_to? :specification_version then
375
+ s.specification_version = 3
376
+
377
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
378
+ s.add_runtime_dependency(%q<rails>, ["= 3.0.3"])
379
+ s.add_runtime_dependency(%q<mysql>, [">= 0"])
380
+ s.add_runtime_dependency(%q<liquid>, [">= 0"])
381
+ s.add_runtime_dependency(%q<httparty>, [">= 0"])
382
+ s.add_runtime_dependency(%q<will_paginate>, ["~> 3.0.pre2"])
383
+ s.add_runtime_dependency(%q<carrierwave>, [">= 0"])
384
+ s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
385
+ s.add_runtime_dependency(%q<deep_cloneable>, [">= 0"])
386
+ s.add_development_dependency(%q<yard>, [">= 0"])
387
+ s.add_development_dependency(%q<bundler>, [">= 0"])
388
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
389
+ s.add_development_dependency(%q<rcov>, [">= 0"])
390
+ s.add_development_dependency(%q<reek>, [">= 0"])
391
+ else
392
+ s.add_dependency(%q<rails>, ["= 3.0.3"])
393
+ s.add_dependency(%q<mysql>, [">= 0"])
394
+ s.add_dependency(%q<liquid>, [">= 0"])
395
+ s.add_dependency(%q<httparty>, [">= 0"])
396
+ s.add_dependency(%q<will_paginate>, ["~> 3.0.pre2"])
397
+ s.add_dependency(%q<carrierwave>, [">= 0"])
398
+ s.add_dependency(%q<nokogiri>, [">= 0"])
399
+ s.add_dependency(%q<deep_cloneable>, [">= 0"])
400
+ s.add_dependency(%q<yard>, [">= 0"])
401
+ s.add_dependency(%q<bundler>, [">= 0"])
402
+ s.add_dependency(%q<jeweler>, [">= 0"])
403
+ s.add_dependency(%q<rcov>, [">= 0"])
404
+ s.add_dependency(%q<reek>, [">= 0"])
405
+ end
406
+ else
407
+ s.add_dependency(%q<rails>, ["= 3.0.3"])
408
+ s.add_dependency(%q<mysql>, [">= 0"])
409
+ s.add_dependency(%q<liquid>, [">= 0"])
410
+ s.add_dependency(%q<httparty>, [">= 0"])
411
+ s.add_dependency(%q<will_paginate>, ["~> 3.0.pre2"])
412
+ s.add_dependency(%q<carrierwave>, [">= 0"])
413
+ s.add_dependency(%q<nokogiri>, [">= 0"])
414
+ s.add_dependency(%q<deep_cloneable>, [">= 0"])
415
+ s.add_dependency(%q<yard>, [">= 0"])
416
+ s.add_dependency(%q<bundler>, [">= 0"])
417
+ s.add_dependency(%q<jeweler>, [">= 0"])
418
+ s.add_dependency(%q<rcov>, [">= 0"])
419
+ s.add_dependency(%q<reek>, [">= 0"])
420
+ end
421
+ end
422
+
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,7 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+ require 'rake'
6
+
7
+ Dummy::Application.load_tasks
@@ -0,0 +1,11 @@
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery
3
+
4
+ # before_filter :set_locale
5
+ #
6
+ # def set_locale
7
+ # if %{zh en}.include?(params[:locale].to_s)
8
+ # I18n.locale = params[:locale]
9
+ # end
10
+ # end
11
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,36 @@
1
+ class UserMailer < ActionMailer::Base
2
+ default :from => "info@itjob.fm"
3
+
4
+ sendgrid_header do
5
+ category "itjob"
6
+
7
+ filters {
8
+ opentrack "enable" => 1
9
+ clicktrack "enable" => 1
10
+ subscriptiontrack "enable" => 0
11
+ template "enable" => 0
12
+ footer "enable" => 0
13
+ }
14
+ end
15
+
16
+ def notify(to = "hlxwell@gmail.com")
17
+ @username = "Michael He"
18
+
19
+ # html must below text
20
+ mail :to => to do |f|
21
+ f.html
22
+ f.text
23
+ end
24
+ end
25
+
26
+ def notify_to_user(user)
27
+ @firstname = user.firstname
28
+ @lastname = user.lastname
29
+
30
+ # html must below text
31
+ mail :to => user.email do |f|
32
+ f.html
33
+ f.text
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,10 @@
1
+ class User < ActiveRecord::Base
2
+ ###
3
+ # here you can define:
4
+ # 1. Which columns can be acted as payload columns.
5
+ # 2. Which scope can be user group.
6
+ acts_as_mail_receiver :payload_columns => ['firstname', 'lastname'], :groups => [:all, :english_users, :chinese_users]
7
+
8
+ scope :english_users, where(:locale => 'en')
9
+ scope :chinese_users, where(:locale => 'zh')
10
+ end
@@ -0,0 +1,52 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require "active_model/railtie"
4
+ require "active_record/railtie"
5
+ require "action_controller/railtie"
6
+ require "action_view/railtie"
7
+ require "action_mailer/railtie"
8
+
9
+ Bundler.require
10
+ require "mail_engine"
11
+
12
+ module Dummy
13
+ class Application < Rails::Application
14
+ # Settings in config/environments/* take precedence over those specified here.
15
+ # Application configuration should go into files in config/initializers
16
+ # -- all .rb files in that directory are automatically loaded.
17
+
18
+ # Custom directories with classes and modules you want to be autoloadable.
19
+ # config.autoload_paths += %W(#{config.root}/extras)
20
+
21
+ # Only load the plugins named here, in the order given (default is alphabetical).
22
+ # :all can be used as a placeholder for all plugins not explicitly named.
23
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
24
+
25
+ # Activate observers that should always be running.
26
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
27
+
28
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
29
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
30
+ # config.time_zone = 'Central Time (US & Canada)'
31
+
32
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
33
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
34
+ # config.i18n.default_locale = :zh
35
+
36
+ # JavaScript files you want as :defaults (application.js is always included).
37
+ # config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
38
+
39
+ # Configure the default encoding used in templates for Ruby 1.9.
40
+ config.encoding = "utf-8"
41
+
42
+ # Configure sensitive parameters which will be filtered from the log file.
43
+ config.filter_parameters += [:password]
44
+
45
+ config.generators do |g|
46
+ g.test_framework :shoulda
47
+ g.fallbacks[:shoulda] = :test_unit
48
+ g.fixture_replacement :factory_girl
49
+ end
50
+ end
51
+ end
52
+ require 'pp'