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
data/doc/js/app.js ADDED
@@ -0,0 +1,203 @@
1
+ function createSourceLinks() {
2
+ $('.method_details_list .source_code').
3
+ before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
4
+ $('.toggleSource').toggle(function() {
5
+ $(this).parent().next().slideDown(100);
6
+ $(this).text("Hide source");
7
+ },
8
+ function() {
9
+ $(this).parent().next().slideUp(100);
10
+ $(this).text("View source");
11
+ });
12
+ }
13
+
14
+ function createDefineLinks() {
15
+ var tHeight = 0;
16
+ $('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
17
+ $('.toggleDefines').toggle(function() {
18
+ tHeight = $(this).parent().prev().height();
19
+ $(this).prev().show();
20
+ $(this).parent().prev().height($(this).parent().height());
21
+ $(this).text("(less)");
22
+ },
23
+ function() {
24
+ $(this).prev().hide();
25
+ $(this).parent().prev().height(tHeight);
26
+ $(this).text("more...")
27
+ });
28
+ }
29
+
30
+ function createFullTreeLinks() {
31
+ var tHeight = 0;
32
+ $('.inheritanceTree').toggle(function() {
33
+ tHeight = $(this).parent().prev().height();
34
+ $(this).parent().toggleClass('showAll');
35
+ $(this).text("(hide)");
36
+ $(this).parent().prev().height($(this).parent().height());
37
+ },
38
+ function() {
39
+ $(this).parent().toggleClass('showAll');
40
+ $(this).parent().prev().height(tHeight);
41
+ $(this).text("show all")
42
+ });
43
+ }
44
+
45
+ function fixBoxInfoHeights() {
46
+ $('dl.box dd.r1, dl.box dd.r2').each(function() {
47
+ $(this).prev().height($(this).height());
48
+ });
49
+ }
50
+
51
+ function searchFrameLinks() {
52
+ $('#method_list_link').click(function() {
53
+ toggleSearchFrame(this, relpath + 'method_list.html');
54
+ });
55
+
56
+ $('#class_list_link').click(function() {
57
+ toggleSearchFrame(this, relpath + 'class_list.html');
58
+ });
59
+
60
+ $('#file_list_link').click(function() {
61
+ toggleSearchFrame(this, relpath + 'file_list.html');
62
+ });
63
+ }
64
+
65
+ function toggleSearchFrame(id, link) {
66
+ var frame = $('#search_frame');
67
+ $('#search a').removeClass('active').addClass('inactive');
68
+ if (frame.attr('src') == link && frame.css('display') != "none") {
69
+ frame.slideUp(100);
70
+ $('#search a').removeClass('active inactive');
71
+ }
72
+ else {
73
+ $(id).addClass('active').removeClass('inactive');
74
+ frame.attr('src', link).slideDown(100);
75
+ }
76
+ }
77
+
78
+ function linkSummaries() {
79
+ $('.summary_signature').click(function() {
80
+ document.location = $(this).find('a').attr('href');
81
+ });
82
+ }
83
+
84
+ function framesInit() {
85
+ if (window.top.frames.main) {
86
+ document.body.className = 'frames';
87
+ $('#menu .noframes a').attr('href', document.location);
88
+ $('html head title', window.parent.document).text($('html head title').text());
89
+ }
90
+ }
91
+
92
+ function keyboardShortcuts() {
93
+ if (window.top.frames.main) return;
94
+ $(document).keypress(function(evt) {
95
+ if (evt.altKey || evt.ctrlKey || evt.metaKey || evt.shiftKey) return;
96
+ if (typeof evt.orignalTarget !== "undefined" &&
97
+ (evt.originalTarget.nodeName == "INPUT" ||
98
+ evt.originalTarget.nodeName == "TEXTAREA")) return;
99
+ switch (evt.charCode) {
100
+ case 67: case 99: $('#class_list_link').click(); break; // 'c'
101
+ case 77: case 109: $('#method_list_link').click(); break; // 'm'
102
+ case 70: case 102: $('#file_list_link').click(); break; // 'f'
103
+ }
104
+ });
105
+ }
106
+
107
+ function summaryToggle() {
108
+ $('.summary_toggle').click(function() {
109
+ localStorage.summaryCollapsed = $(this).text();
110
+ $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
111
+ var next = $(this).parent().parent().next();
112
+ if (next.hasClass('compact')) {
113
+ next.toggle();
114
+ next.next().toggle();
115
+ }
116
+ else if (next.hasClass('summary')) {
117
+ var list = $('<ul class="summary compact" />');
118
+ list.html(next.html());
119
+ list.find('.summary_desc, .note').remove();
120
+ list.find('a').each(function() {
121
+ $(this).html($(this).find('strong').html());
122
+ $(this).parent().html($(this)[0].outerHTML);
123
+ });
124
+ next.before(list);
125
+ next.toggle();
126
+ }
127
+ return false;
128
+ });
129
+ if (localStorage) {
130
+ if (localStorage.summaryCollapsed == "collapse") $('.summary_toggle').click();
131
+ else localStorage.summaryCollapsed = "expand";
132
+ }
133
+ }
134
+
135
+ function fixOutsideWorldLinks() {
136
+ $('a').each(function() {
137
+ if (window.location.host != this.host) this.target = '_parent';
138
+ });
139
+ }
140
+
141
+ function generateTOC() {
142
+ if ($('#filecontents').length == 0) return;
143
+ var _toc = $('<ol class="top"></ol>');
144
+ var show = false;
145
+ var toc = _toc;
146
+ var counter = 0;
147
+ var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
148
+ if ($('#filecontents h1').length > 1) tags.unshift('h1');
149
+ for (i in tags) { tags[i] = '#filecontents ' + tags[i] }
150
+ var lastTag = parseInt(tags[0][1]);
151
+ $(tags.join(', ')).each(function() {
152
+ if (this.id == "filecontents") return;
153
+ show = true;
154
+ var thisTag = parseInt(this.tagName[1]);
155
+ if (this.id.length == 0) {
156
+ var proposedId = $(this).text().replace(/[^a-z0-9:\.()=-]/ig, '_');
157
+ if ($('#' + proposedId).length > 0) proposedId += counter++;
158
+ this.id = proposedId;
159
+ }
160
+ if (thisTag > lastTag) {
161
+ for (var i = 0; i < thisTag - lastTag; i++) {
162
+ var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
163
+ }
164
+ }
165
+ if (thisTag < lastTag) {
166
+ for (var i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
167
+ }
168
+ toc.append('<li><a href="#' + this.id + '">' + $(this).text() + '</a></li>');
169
+ lastTag = thisTag;
170
+ });
171
+ if (!show) return;
172
+ html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
173
+ $('#content').prepend(html);
174
+ $('#toc').append(_toc);
175
+ $('#toc .hide_toc').toggle(function() {
176
+ $('#toc .top').slideUp('fast');
177
+ $('#toc').toggleClass('hidden');
178
+ $('#toc .title small').toggle();
179
+ }, function() {
180
+ $('#toc .top').slideDown('fast');
181
+ $('#toc').toggleClass('hidden');
182
+ $('#toc .title small').toggle();
183
+ });
184
+ $('#toc .float_toc').toggle(function() {
185
+ $(this).text('float');
186
+ $('#toc').toggleClass('nofloat');
187
+ }, function() {
188
+ $(this).text('left')
189
+ $('#toc').toggleClass('nofloat');
190
+ });
191
+ }
192
+
193
+ $(framesInit);
194
+ $(createSourceLinks);
195
+ $(createDefineLinks);
196
+ $(createFullTreeLinks);
197
+ $(fixBoxInfoHeights);
198
+ $(searchFrameLinks);
199
+ $(linkSummaries);
200
+ $(keyboardShortcuts);
201
+ $(summaryToggle);
202
+ $(fixOutsideWorldLinks);
203
+ $(generateTOC);
@@ -0,0 +1,149 @@
1
+ var inSearch = null;
2
+ var searchIndex = 0;
3
+ var searchCache = [];
4
+ var searchString = '';
5
+
6
+ function fullListSearch() {
7
+ // generate cache
8
+ searchCache = [];
9
+ $('#full_list li').each(function() {
10
+ var link = $(this).find('.object_link a');
11
+ searchCache.push({name:link.text(), node:$(this), link:link});
12
+ });
13
+
14
+ $('#search input').keyup(function() {
15
+ searchString = this.value.toLowerCase();
16
+ if (searchString == "") {
17
+ clearTimeout(inSearch);
18
+ inSearch = null;
19
+ $('#full_list, #content').removeClass('insearch');
20
+ $('#full_list li').removeClass('found').each(function() {
21
+
22
+ var link = $(this).find('.object_link a');
23
+ link.text(link.text());
24
+ });
25
+ if (clicked) {
26
+ clicked.parents('ul').each(function() {
27
+ $(this).removeClass('collapsed').prev().removeClass('collapsed');
28
+ });
29
+ }
30
+ highlight();
31
+ }
32
+ else {
33
+ if (inSearch) clearTimeout(inSearch);
34
+ searchIndex = 0;
35
+ lastRowClass = '';
36
+ $('#full_list, #content').addClass('insearch');
37
+ $('#noresults').text('');
38
+ searchItem();
39
+ }
40
+ });
41
+
42
+ $('#search input').focus();
43
+ $('#full_list').after("<div id='noresults'></div>")
44
+ }
45
+
46
+ var lastRowClass = '';
47
+ function searchItem() {
48
+ for (var i = 0; i < searchCache.length / 50; i++) {
49
+ var item = searchCache[searchIndex];
50
+ if (item.name.toLowerCase().indexOf(searchString) == -1) {
51
+ item.node.removeClass('found');
52
+ }
53
+ else {
54
+ item.node.css('padding-left', '10px').addClass('found');
55
+ item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1');
56
+ lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2';
57
+ item.link.html(item.name.replace(new RegExp("(" +
58
+ searchString.replace(/([\/.*+?|()\[\]{}\\])/g, "\\$1") + ")", "ig"),
59
+ '<strong>$1</strong>'));
60
+ }
61
+
62
+ if (searchCache.length == searchIndex + 1) {
63
+ return searchDone();
64
+ }
65
+ else {
66
+ searchIndex++;
67
+ }
68
+ }
69
+ inSearch = setTimeout('searchItem()', 0);
70
+ }
71
+
72
+ function searchDone() {
73
+ highlight(true);
74
+ if ($('#full_list li:visible').size() == 0) {
75
+ $('#noresults').text('No results were found.').hide().fadeIn();
76
+ }
77
+ else {
78
+ $('#noresults').text('');
79
+ }
80
+ $('#content').removeClass('insearch');
81
+ clearTimeout(inSearch);
82
+ inSearch = null;
83
+ }
84
+
85
+ clicked = null;
86
+ function linkList() {
87
+ $('#full_list li, #full_list li a:last').click(function(evt) {
88
+ if ($(this).hasClass('toggle')) return true;
89
+ if (this.tagName.toLowerCase() == "li") {
90
+ var toggle = $(this).children('a.toggle');
91
+ if (toggle.size() > 0 && evt.pageX < toggle.offset().left) {
92
+ toggle.click();
93
+ return false;
94
+ }
95
+ }
96
+ if (clicked) clicked.removeClass('clicked');
97
+ var win = window.top.frames.main ? window.top.frames.main : window.parent;
98
+ if (this.tagName.toLowerCase() == "a") {
99
+ clicked = $(this).parent('li').addClass('clicked');
100
+ win.location = this.href;
101
+ }
102
+ else {
103
+ clicked = $(this).addClass('clicked');
104
+ win.location = $(this).find('a:last').attr('href');
105
+ }
106
+ return false;
107
+ });
108
+ }
109
+
110
+ function collapse() {
111
+ if (!$('#full_list').hasClass('class')) return;
112
+ $('#full_list.class a.toggle').click(function() {
113
+ $(this).parent().toggleClass('collapsed').next().toggleClass('collapsed');
114
+ highlight();
115
+ return false;
116
+ });
117
+ $('#full_list.class ul').each(function() {
118
+ $(this).addClass('collapsed').prev().addClass('collapsed');
119
+ });
120
+ $('#full_list.class').children().removeClass('collapsed');
121
+ highlight();
122
+ }
123
+
124
+ function highlight(no_padding) {
125
+ var n = 1;
126
+ $('#full_list li:visible').each(function() {
127
+ var next = n == 1 ? 2 : 1;
128
+ $(this).removeClass("r" + next).addClass("r" + n);
129
+ if (!no_padding && $('#full_list').hasClass('class')) {
130
+ $(this).css('padding-left', (10 + $(this).parents('ul').size() * 15) + 'px');
131
+ }
132
+ n = next;
133
+ });
134
+ }
135
+
136
+ function escapeShortcut() {
137
+ $(document).keydown(function(evt) {
138
+ if (evt.which == 27) {
139
+ $('#search_frame', window.top.document).slideUp(100);
140
+ $('#search a', window.top.document).removeClass('active inactive')
141
+ $(window.top).focus();
142
+ }
143
+ });
144
+ }
145
+
146
+ $(escapeShortcut);
147
+ $(fullListSearch);
148
+ $(linkList);
149
+ $(collapse);