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,681 @@
1
+ /*
2
+ Reset
3
+ ------------------------------------------------------------------- */
4
+
5
+ html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, textarea, input, select {margin: 0; padding: 0; border: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline;}
6
+ table {border-collapse: collapse; border-spacing: 0;}
7
+ caption, th, td {text-align: left; font-weight: normal;}
8
+ table, td, th {vertical-align: middle;}
9
+ blockquote:before, blockquote:after, q:before, q:after {content: "";}
10
+ blockquote, q {quotes: "" "";}
11
+ a img {border: none;}
12
+ :focus {outline: 0;}
13
+
14
+
15
+ /*
16
+ General
17
+ ------------------------------------------------------------------- */
18
+
19
+ html {
20
+ height: 100%;
21
+ padding-bottom: 1px; /* force scrollbars */
22
+ }
23
+
24
+ body {
25
+ background: #FFF;
26
+ color: #444;
27
+ font: normal 75% sans-serif;
28
+ line-height: 1.5;
29
+ }
30
+
31
+
32
+ /*
33
+ Typography
34
+ ------------------------------------------------------------------- */
35
+
36
+ /* Headings */
37
+
38
+ h1,h2,h3,h4,h5,h6 {
39
+ color: #444;
40
+ font-weight: normal;
41
+ line-height: 1;
42
+ margin-bottom: 0.3em;
43
+ }
44
+ h4,h5,h6 {font-weight: bold;}
45
+
46
+ h1 {font-size: 2.6em;}
47
+ h2 {font-size: 2em;}
48
+ h3 {font-size: 1.5em;}
49
+ h4 {font-size: 1.25em;}
50
+ h5 {font-size: 1.1em;}
51
+ h6 {font-size: 1em;}
52
+
53
+ h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin: 0;}
54
+
55
+
56
+ /* Links */
57
+
58
+ a:focus,a:hover {color: #039;}
59
+ a {
60
+ color: #456;
61
+ text-decoration: none;
62
+ }
63
+ a:hover {text-decoration: underline;}
64
+
65
+ a.feed {
66
+ background: url('img/icon-feed.gif') no-repeat left center;
67
+ padding-left: 18px;
68
+ }
69
+ a.more {
70
+ color: #579;
71
+ font-weight: bold;
72
+ }
73
+ a.more:hover {color: #234;}
74
+
75
+
76
+ /* Text elements */
77
+
78
+ p {margin-bottom: 1em;}
79
+
80
+ abbr, acronym {border-bottom: 1px dotted #666;}
81
+ address {margin-bottom: 1.5em;}
82
+ blockquote {margin: 1.5em;}
83
+ del, blockquote { color:#666; }
84
+ em, dfn, blockquote, address {font-style: italic;}
85
+ strong, dfn {font-weight: bold;}
86
+ sup, sub {line-height: 0;}
87
+
88
+ pre {
89
+ margin: 1.5em 0;
90
+ white-space: pre;
91
+ }
92
+ pre,code,tt {
93
+ font: 1em monospace;
94
+ line-height: 1.5;
95
+ }
96
+
97
+
98
+ /* Lists */
99
+
100
+ li ul, li ol {margin-left: 1.5em;}
101
+ ul, ol {margin: 0 0 1.5em 1.5em;}
102
+
103
+ ul {list-style-type: disc;}
104
+ ol {
105
+ list-style-type: decimal;
106
+ margin-left: 1.9em;
107
+ }
108
+
109
+ dl {margin: 0 0 1.5em 0;}
110
+ dl dt {font-weight: bold;}
111
+ dd {margin-left: 1.5em;}
112
+
113
+
114
+ /* Special lists */
115
+
116
+ ul.plain-list li, ul.nice-list li, ul.tabbed li {
117
+ list-style: none;
118
+ margin-top: 0;
119
+ }
120
+
121
+ ul.tabbed {
122
+ display: inline;
123
+ margin: 0;
124
+ }
125
+ ul.tabbed li {float: left;}
126
+
127
+ ul.plain-list {margin: 0;}
128
+
129
+ ul.nice-list {margin-left: 0;}
130
+ ul.nice-list li {
131
+ border-top: 1px solid #EEE;
132
+ list-style: none;
133
+ padding: 4px 0;
134
+ }
135
+ ul.nice-list li:first-child {border-top: none;}
136
+ ul.nice-list li .right {color: #999;}
137
+
138
+
139
+ /* Tables */
140
+
141
+ table {margin-bottom: 1.4em; width: 100%;}
142
+ th {font-weight: bold;}
143
+ thead th {background: #C3D9FF;}
144
+ th,td,caption {padding: 4px 10px 4px 5px;}
145
+ tr.even td {background: #F2F6FA;}
146
+ tfoot {font-style: italic;}
147
+ caption {background: #EEE;}
148
+
149
+ table.data-table {
150
+ border: 1px solid #CCB;
151
+ margin-bottom: 2em;
152
+ width: 100%;
153
+ }
154
+ table.data-table th {
155
+ background: #F0F0F0;
156
+ border: 1px solid #DDD;
157
+ color: #555;
158
+ text-align: left;
159
+ }
160
+ table.data-table tr {border-bottom: 1px solid #DDD;}
161
+ table.data-table td, table th {padding: 10px;}
162
+ table.data-table td {
163
+ background: #F6F6F6;
164
+ border: 1px solid #DDD;
165
+ }
166
+ table.data-table tr.even td {background: #FCFCFC;}
167
+
168
+
169
+ /* Misc classes */
170
+
171
+ .small {font-size: 0.9em;}
172
+ .smaller {font-size: 0.8em;}
173
+ .smallest {font-size: 0.7em;}
174
+
175
+ .large {font-size: 1.15em;}
176
+ .larger {font-size: 1.25em;}
177
+ .largest {font-size: 1.35em;}
178
+
179
+ .hidden {display: none;}
180
+
181
+ .quiet, .quiet a {color: #999;}
182
+ .loud, .loud a {color: #000;}
183
+ .highlight, .highlight a {background:#ff0;}
184
+
185
+ .text-left {text-align: left;}
186
+ .text-right {text-align: right;}
187
+ .text-center {text-align: center;}
188
+ .text-separator {padding: 0 5px;}
189
+
190
+ .error, .notice, .success {
191
+ border: 1px solid #DDD;
192
+ margin-bottom: 1em;
193
+ padding: 0.6em 0.8em;
194
+ }
195
+
196
+ .error {background: #FBE3E4; color: #8A1F11; border-color: #FBC2C4;}
197
+ .error a {color: #8A1F11;}
198
+
199
+ .notice {background: #FFF6BF; color: #514721; border-color: #FFD324;}
200
+ .notice a {color: #514721;}
201
+
202
+ .success {background: #E6EFC2; color: #264409; border-color: #C6D880;}
203
+ .success a {color: #264409;}
204
+
205
+
206
+ /* Labels */
207
+ .label {
208
+ border-left-style: solid;
209
+ border-left-width: 4px;
210
+ margin-bottom: 0.2em;
211
+ padding-left: 10px;
212
+ }
213
+
214
+ .label-blue {border-left-color: #55AADA;}
215
+ .label-green {border-left-color: #B7D897;}
216
+ .label-orange {border-left-color: #FA8F6F;}
217
+
218
+
219
+ /*
220
+ Forms
221
+ ------------------------------------------------------------------- */
222
+
223
+ label {
224
+ cursor: pointer;
225
+ font-weight: bold;
226
+ }
227
+ label.checkbox, label.radio {font-weight: normal;}
228
+ legend {
229
+ font-weight: bold;
230
+ font-size: 1.2em;
231
+ }
232
+ textarea {overflow: auto;}
233
+ input.text, textarea, select {
234
+ background: #FCFCFC;
235
+ border: 1px inset #AAA;
236
+ margin: 0.5em 0;
237
+ padding: 4px 5px;
238
+ }
239
+ input.text:focus, textarea:focus, select:focus {background: #FFFFF5;}
240
+
241
+ input.button {
242
+ background: #DDD;
243
+ border: 1px outset #AAA;
244
+ padding: 4px 5px;
245
+ }
246
+ input.button:active {border-style: inset;}
247
+
248
+
249
+ /* Specific */
250
+
251
+ form .required {font-weight: bold;}
252
+
253
+ .form-error {border-color: #F00;}
254
+ .form-row {padding: 5px 0;}
255
+ .form-row-submit {
256
+ border-top: 1px solid #DDD;
257
+ padding: 8px 0 10px 76px;
258
+ margin-top: 10px;
259
+ }
260
+ .legend {
261
+ background: #F0FAF0;
262
+ border: 1px solid #D6DFD6;
263
+ font-size: 1.5em;
264
+ margin: 0;
265
+ padding: 8px 14px;
266
+ }
267
+ .form-property, .form-value {float: left;}
268
+ .form-property {
269
+ padding-top: 8px;
270
+ text-align: right;
271
+ width: 60px;
272
+ }
273
+ .form-value {padding-left: 16px;}
274
+ .form-error {border-color: #F00;}
275
+
276
+ .actions {
277
+ margin-top: 10px;
278
+ }
279
+
280
+ /*
281
+ Alignment
282
+ ------------------------------------------------------------------- */
283
+
284
+ /* General */
285
+
286
+ .center,.aligncenter {
287
+ display: block;
288
+ margin-left: auto;
289
+ margin-right: auto;
290
+ }
291
+
292
+
293
+ /* Images */
294
+
295
+ img.bordered,img.alignleft,img.alignright,img.aligncenter {
296
+ background-color: #FFF;
297
+ border: 1px solid #DDD;
298
+ padding: 3px;
299
+ }
300
+ img.alignleft, img.left {margin: 0 1.5em 1em 0;}
301
+ img.alignright, img.right {margin: 0 0 1em 1.5em;}
302
+
303
+
304
+ /* Floats */
305
+
306
+ .left,.alignleft {float: left;}
307
+ .right,.alignright {float: right;}
308
+
309
+ .clear,.clearer {clear: both;}
310
+ .clearer {
311
+ display: block;
312
+ font-size: 0;
313
+ line-height: 0;
314
+ height: 0;
315
+ }
316
+
317
+
318
+ /*
319
+ Separators
320
+ ------------------------------------------------------------------- */
321
+
322
+ .content-separator, .archive-separator {
323
+ background: #E5E5E5;
324
+ clear: both;
325
+ color: #FFE;
326
+ display: block;
327
+ font-size: 0;
328
+ line-height: 0;
329
+ height: 1px;
330
+ }
331
+ .content-separator {margin: 32px 0;}
332
+ .archive-separator {margin-bottom: 20px;}
333
+
334
+
335
+ /*
336
+ Posts
337
+ ------------------------------------------------------------------- */
338
+
339
+ .post {margin-bottom: 20px;}
340
+
341
+ .post img.left, .post img.right {margin-bottom: 0;}
342
+
343
+ .post-date {
344
+ color: #777;
345
+ margin: 2px 0 10px;
346
+ }
347
+ .post-date a {color: #444;}
348
+
349
+ .post-meta a {color: #345; }
350
+ .post-meta a:hover {color: #001;}
351
+
352
+ .post-body {font-size: 1.1em;}
353
+ .post-body a {color: #039;}
354
+ .post-body a:hover {color: #039;}
355
+
356
+ .post-body img.left, .post-body img.right {margin-bottom: 1em;}
357
+ .post-title { padding-bottom: 15px; }
358
+
359
+ /* Archives */
360
+ .archive-pagination {
361
+ color: #777;
362
+ padding: 10px 0;
363
+ }
364
+ .archive-pagination-top {
365
+ border-bottom: 2px solid #DDD;
366
+ margin-bottom: 24px;
367
+ }
368
+ .archive-pagination-bottom {
369
+ border-top: 2px solid #DDD;
370
+ margin-top: 24px;
371
+ }
372
+
373
+ .archive-post-date {
374
+ background: #F5F5F5;
375
+ border-bottom: 1px solid #C5C5C5;
376
+ border-right: 1px solid #CFCFCF;
377
+ float: left;
378
+ margin-right: 12px;
379
+ padding: 2px 0 5px;
380
+ text-align: center;
381
+ width: 46px;
382
+ }
383
+ .archive-post-title .post-date {margin: 0;}
384
+ .archive-post-title {padding-top: 4px;}
385
+ .archive-post-day {font: normal 1.6em Georgia,serif;}
386
+
387
+
388
+ /*
389
+ Comments
390
+ ------------------------------------------------------------------- */
391
+
392
+ .comment-input-text textarea {width: 80%;}
393
+
394
+ /* Comment list */
395
+
396
+ .comment-list-wrapper {
397
+ background: #F6F6F6;
398
+ margin: 10px 0 0;
399
+ padding: 5px 12px 10px 7px;
400
+ }
401
+ .comment-list {
402
+ margin: 0;
403
+ padding: 0;
404
+ }
405
+ .comment-list li {list-style: none;}
406
+ .comment-list ul {margin-bottom: 0;}
407
+
408
+ .comment-profile-wrapper {
409
+ text-align: center;
410
+ width: 105px;
411
+ }
412
+
413
+ .comment-gravatar {margin-bottom: 3px;}
414
+
415
+ .comment-content-wrapper {
416
+ float: right;
417
+ width: 481px;
418
+ }
419
+
420
+ .comment-parent, .comment-single {margin-top: 15px;}
421
+
422
+ .comment-list ul.children, #comments #respond ul {
423
+ border-left: 1px solid #CCC;
424
+ margin: 0 0 0 130px;
425
+ }
426
+ .comment-list ul.children ul.children {margin-left: 15px;}
427
+
428
+ .comment-list ul.children li {
429
+ background: url('img/comment-reply.gif') no-repeat left top;
430
+ margin: 0;
431
+ padding: 10px 0 0 15px;
432
+ }
433
+
434
+ .comment-body {
435
+ background: #FFF;
436
+ border: 1px solid #DDD;
437
+ padding: 10px 12px 0;
438
+ }
439
+ .comment-list ul.children .comment-body {background: #FCFCFC;}
440
+
441
+ .comment-author {padding-top: 2px;}
442
+
443
+ .comment-text p {margin-bottom: 0.8em;}
444
+
445
+ .comment .post-date, .comment-author {font-size: 0.9em;}
446
+ .comment .post-date .right a {color: #BBB;}
447
+ .comment .post-date .right a:hover {color: #234;}
448
+
449
+ .comment-arrow {
450
+ background: url('img/comment-arrow.gif') no-repeat left top;
451
+ display: block;
452
+ float: left;
453
+ height: 45px;
454
+ margin: 3px 0 -45px -41px;
455
+ position: absolute;
456
+ width: 29px;
457
+ }
458
+
459
+ /* Respond */
460
+
461
+ #respond li {list-style: none;}
462
+ #respond {
463
+ background: #F6F6F6;
464
+ padding: 10px 12px;
465
+ }
466
+ #respond ul {margin: 0;}
467
+ #respond .legend {margin-bottom: 10px;}
468
+
469
+ #comments #respond {padding: 0;}
470
+ #comments #respond .legend {
471
+ border-bottom: 0;
472
+ margin-bottom: 0;
473
+ }
474
+ #comments #respond ul {
475
+ background: url('img/comment-reply.gif') no-repeat left top;
476
+ padding: 10px 0 0 15px;
477
+ }
478
+ #comments ul.children #respond ul {
479
+ margin-left: 30px;
480
+ padding: 0;
481
+ }
482
+
483
+ #comments #respond .comment-profile-wrapper, #comments #respond .comment-arrow {display: none;}
484
+ #comments #respond .comment-body {background: #FFF;}
485
+ #comments #respond .comment-content-wrapper {
486
+ float: none;
487
+ width: 100%;
488
+ }
489
+
490
+
491
+ /*
492
+ Layout
493
+ ------------------------------------------------------------------- */
494
+
495
+ /* Common */
496
+ #top, #sub-nav {border-bottom: 1px solid #DDD;}
497
+
498
+
499
+ /* Wrapper */
500
+ #site-wrapper {
501
+ margin: 0 auto;
502
+ width: 920px;
503
+ }
504
+
505
+
506
+ /* Header */
507
+ #header {padding-top: 24px;}
508
+
509
+ /* Top */
510
+ #top {padding-bottom: 32px;}
511
+
512
+
513
+ /* Logo */
514
+ #logo { border-right: 1px solid #DDD;
515
+ padding: 10px 20px 10px 0;
516
+ margin-right: 30px;
517
+ }
518
+ #logo img {}
519
+
520
+ /* Splash */
521
+ #splash {padding-top: 32px;}
522
+
523
+
524
+ /* Navigation */
525
+ .navigation a {
526
+ color: #888;
527
+ text-decoration: none;
528
+ }
529
+ .navigation a:hover {color: #002;}
530
+ .navigation li.current-tab a {color: #222;}
531
+
532
+ #main-nav li:first-child, #sub-nav li:first-child {margin-left: 0;}
533
+
534
+ /* Main navigation */
535
+ #main-nav {padding-top: 32px;}
536
+ #main-nav li {margin: 0 1em;}
537
+ #main-nav a {
538
+ font-size: 1.8em;
539
+ line-height: 2em;
540
+ padding-bottom: 2px;
541
+ }
542
+ #main-nav li.current-tab a {color: #333;}
543
+ #main-nav a:hover {color: #002;}
544
+ #main-nav li.current-tab a {border-bottom: 2px solid #94CC5F;}
545
+
546
+
547
+ /* Subnav */
548
+ #sub-nav {
549
+ border-bottom: 1px solid #DDD;
550
+ padding: 12px 0;
551
+ }
552
+ #sub-nav a {
553
+ font-size: 1.2em;
554
+ text-decoration: none;
555
+ }
556
+ #sub-nav li {margin: 0 1em;}
557
+ #sub-nav li.current-tab a {font-weight: bold;}
558
+
559
+
560
+ /* Main */
561
+ .main {margin: 24px 0;}
562
+
563
+ .main#main-two-columns {background: url('img/main-two-columns.gif') repeat-y right top;}
564
+ .main#main-two-columns-left {background: url('img/main-two-columns-left.gif') repeat-y left top;}
565
+ .main#main-two-columns #main-content, .main#main-two-columns-left #main-content {width: 620px;}
566
+
567
+ /* Sidebar */
568
+ #sidebar {width: 255px;}
569
+
570
+
571
+ /* Columns */
572
+ .col3, .col3-mid {width: 31%;}
573
+ .col3-mid {margin-left: 3%;}
574
+
575
+ /* Sections */
576
+ .section {margin-bottom: 24px;}
577
+ .section-title {
578
+ background-color: #F9F9F9;
579
+ border-top: 2px solid #DDD;
580
+ color: #7A7A7A;
581
+ font: bold 1.2em sans-serif;
582
+ margin-bottom: 16px;
583
+ padding: 7px 10px 6px;
584
+ }
585
+ #sidebar .section-title {margin-bottom: 8px;}
586
+
587
+
588
+ /* Footer */
589
+
590
+ #footer {
591
+ border-top: 1px solid #DDD;
592
+ color: #777;
593
+ padding: 16px 0 4px;
594
+ }
595
+ #footer-left {width: 459px;}
596
+ #footer-right {
597
+ width: 459px;
598
+ text-align: right;
599
+ }
600
+ #footer p {margin-bottom: 0.4em;}
601
+ #footer .text-separator {
602
+ padding: 0 3px;
603
+ color: #BBB;
604
+ }
605
+ #footer a:hover {color: #000;}
606
+
607
+
608
+
609
+ /*
610
+ Misc overriding classes
611
+ ------------------------------------------------------------------- */
612
+
613
+ /* Border */
614
+
615
+ .noborder {border: 0;}
616
+ .notborder {border-top: 0;}
617
+ .norborder {border-right: 0;}
618
+ .nobborder {border-bottom: 0;}
619
+ .nolborder {border-left: 0;}
620
+
621
+ /* Margin */
622
+
623
+ .nomargin {margin: 0;}
624
+ .notmargin {margin-top: 0;}
625
+ .normargin {margin-right: 0;}
626
+ .nobmargin {margin-bottom: 0;}
627
+ .nolmargin {margin-left: 0;}
628
+
629
+ /* Padding */
630
+
631
+ .nopadding {padding: 0;}
632
+ .notpadding {padding-top: 0;}
633
+ .norpadding {padding-right: 0;}
634
+ .nobpadding {padding-bottom: 0;}
635
+ .nolpadding {padding-left: 0;}
636
+
637
+
638
+ /*
639
+ IE Fixes (zzz)
640
+ ------------------------------------------------------------------- */
641
+
642
+ * html .navigation, * html #footer, * html #splash, * html .comment ul {height: 0.01%;}
643
+ * html #footer-left {width: 500px;}
644
+ .navigation, #splash, .comment ul {min-height: 0.01%;}
645
+
646
+ .w910 {
647
+ width: 910px;
648
+ }
649
+
650
+ .hint {
651
+ font-style: italic;
652
+ color: gray;
653
+ font-size: 10px;
654
+ }
655
+
656
+ .field_with_errors {
657
+ display: inline;
658
+ }
659
+
660
+ iframe.bordered {
661
+ border: 1px solid #ccc;
662
+ }
663
+
664
+ ul.partial_option_list li{
665
+ padding: 10px;
666
+ }
667
+
668
+ /* ajax loading bar */
669
+ #loading {
670
+ z-index: 10000;
671
+ display: none;
672
+ color: white;
673
+ font-weight: bold;
674
+ font-size: 1.2em;
675
+ float: right;
676
+ padding: 5px 10px 5px 10px;
677
+ background-color: red;
678
+ position: fixed;
679
+ right:39%;
680
+ top:0px;
681
+ }
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'