classiccms 0.2.4.pre → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1474) hide show
  1. data/.gitignore +1 -0
  2. data/README.md +11 -19
  3. data/classiccms.gemspec +10 -1
  4. data/lib/classiccms/application.rb +33 -3
  5. data/lib/classiccms/cli.rb +4 -10
  6. data/lib/classiccms/controllers/application.rb +4 -3
  7. data/lib/classiccms/controllers/cms.rb +36 -20
  8. data/lib/classiccms/controllers/website.rb +13 -5
  9. data/lib/classiccms/custom.rb +16 -0
  10. data/lib/classiccms/helpers.rb +20 -8
  11. data/lib/classiccms/lib/routing.rb +1 -1
  12. data/lib/classiccms/models/base.rb +14 -0
  13. data/lib/classiccms/models/image.rb +9 -0
  14. data/lib/classiccms/models/uploader.rb +17 -0
  15. data/lib/classiccms/public/css/images.sass +20 -0
  16. data/lib/classiccms/public/css/style.sass +115 -5
  17. data/lib/classiccms/public/images/image_delete.png +0 -0
  18. data/lib/classiccms/public/images/logout.png +0 -0
  19. data/lib/classiccms/public/images/logout_hover.png +0 -0
  20. data/lib/classiccms/public/js/images.coffee +46 -0
  21. data/lib/classiccms/public/js/index.coffee +61 -109
  22. data/lib/classiccms/public/js/uploadify/jquery.uploadify-3.1.js +975 -0
  23. data/lib/classiccms/public/js/uploadify/jquery.uploadify-3.1.min.js +16 -0
  24. data/lib/classiccms/public/js/uploadify/uploadify-cancel.png +0 -0
  25. data/lib/classiccms/public/js/uploadify/uploadify.css +88 -0
  26. data/lib/classiccms/public/js/uploadify/uploadify.swf +0 -0
  27. data/lib/classiccms/resque.yml +3 -0
  28. data/lib/classiccms/scaffold/Gemfile +2 -0
  29. data/lib/classiccms/scaffold/Rakefile +9 -0
  30. data/lib/classiccms/scaffold/app/controllers/form.rb +9 -0
  31. data/lib/classiccms/scaffold/app/models/Article.rb +4 -0
  32. data/lib/classiccms/scaffold/app/queue/mail.rb +11 -0
  33. data/lib/classiccms/scaffold/app/views/application/index.haml +16 -0
  34. data/lib/classiccms/scaffold/config/application.rb +2 -1
  35. data/lib/classiccms/scaffold/config/config.yml +1 -0
  36. data/lib/classiccms/scaffold/config.ru +7 -7
  37. data/lib/classiccms/scaffold/public/favicon.ico +0 -0
  38. data/lib/classiccms/scaffold/public/javascripts/index.coffee +1 -0
  39. data/lib/classiccms/scaffold/public/stylesheets/reset.sass +47 -0
  40. data/lib/classiccms/version.rb +1 -1
  41. data/lib/classiccms/views/cms/404.haml +16 -0
  42. data/lib/classiccms/views/cms/browse.haml +3 -0
  43. data/lib/classiccms/views/cms/ckeditor.haml +23 -0
  44. data/lib/classiccms/views/cms/form.haml +27 -24
  45. data/lib/classiccms/views/cms/header.haml +12 -7
  46. data/lib/classiccms/views/cms/images.haml +5 -0
  47. data/lib/classiccms/views/cms/login.haml +2 -1
  48. data/lib/classiccms/views/cms/logout.haml +1 -0
  49. data/lib/classiccms.rb +2 -2
  50. data/spec/assets/cat.jpg +0 -0
  51. data/spec/assets/cat.txt +1 -0
  52. data/spec/cli_spec.rb +8 -20
  53. data/spec/controllers/appliction_spec.rb +4 -4
  54. data/spec/controllers/cms_spec.rb +42 -19
  55. data/spec/controllers/website_spec.rb +24 -16
  56. data/spec/helpers_spec.rb +21 -10
  57. data/spec/methods.rb +4 -3
  58. data/spec/models/base_spec.rb +14 -0
  59. data/spec/models/connection_spec.rb +13 -1
  60. data/spec/models/image_spec.rb +28 -0
  61. data/spec/models/slug_spec.rb +13 -1
  62. data/spec/models/user_spec.rb +12 -1
  63. data/spec/queue_spec.rb +50 -0
  64. data/spec/spec_helper.rb +2 -1
  65. data/vendor/bundle/bin/classiccms +3 -3
  66. data/vendor/bundle/bin/resque +19 -0
  67. data/vendor/bundle/bin/resque-web +19 -0
  68. data/vendor/bundle/bin/tt +19 -0
  69. data/vendor/bundle/gems/carrierwave-0.6.2/README.md +785 -0
  70. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/compatibility/paperclip.rb +95 -0
  71. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/locale/en.yml +9 -0
  72. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/mount.rb +382 -0
  73. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/orm/activerecord.rb +66 -0
  74. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/processing/mime_types.rb +58 -0
  75. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/processing/mini_magick.rb +254 -0
  76. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/processing/rmagick.rb +284 -0
  77. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/sanitized_file.rb +315 -0
  78. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/storage/abstract.rb +30 -0
  79. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/storage/file.rb +56 -0
  80. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/storage/fog.rb +358 -0
  81. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/test/matchers.rb +241 -0
  82. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/cache.rb +169 -0
  83. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/callbacks.rb +35 -0
  84. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/configuration.rb +136 -0
  85. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/default_url.rb +19 -0
  86. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/download.rb +75 -0
  87. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/extension_whitelist.rb +49 -0
  88. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/mountable.rb +39 -0
  89. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/processing.rb +92 -0
  90. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/proxy.rb +77 -0
  91. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/remove.rb +23 -0
  92. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/serialization.rb +30 -0
  93. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/store.rb +111 -0
  94. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/url.rb +32 -0
  95. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader/versions.rb +254 -0
  96. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/uploader.rb +45 -0
  97. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/validations/active_model.rb +63 -0
  98. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave/version.rb +3 -0
  99. data/vendor/bundle/gems/carrierwave-0.6.2/lib/carrierwave.rb +111 -0
  100. data/vendor/bundle/gems/carrierwave-0.6.2/lib/generators/templates/uploader.rb +55 -0
  101. data/vendor/bundle/gems/carrierwave-0.6.2/lib/generators/uploader_generator.rb +7 -0
  102. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/.gitignore +7 -0
  103. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/Gemfile +4 -0
  104. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/LICENSE +20 -0
  105. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/README.md +102 -0
  106. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/Rakefile +12 -0
  107. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/carrierwave-mongoid.gemspec +28 -0
  108. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/lib/carrierwave/mongoid/version.rb +5 -0
  109. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/lib/carrierwave/mongoid.rb +94 -0
  110. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/lib/carrierwave/storage/grid_fs.rb +134 -0
  111. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/spec/fixtures/new.jpeg +1 -0
  112. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/spec/fixtures/new.txt +1 -0
  113. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/spec/fixtures/old.jpeg +1 -0
  114. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/spec/fixtures/old.txt +1 -0
  115. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/spec/fixtures/portrait.jpg +0 -0
  116. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/spec/fixtures/test.jpeg +1 -0
  117. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/spec/fixtures/test.jpg +1 -0
  118. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/spec/mongoid_spec.rb +754 -0
  119. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/spec/spec_helper.rb +67 -0
  120. data/vendor/bundle/gems/carrierwave-mongoid-0.2.1/spec/storage/grid_fs_spec.rb +200 -0
  121. data/vendor/bundle/gems/coffee-script-source-1.3.3/lib/coffee_script/coffee-script.js +8 -0
  122. data/vendor/bundle/gems/coffee-script-source-1.3.3/lib/coffee_script/source.rb +7 -0
  123. data/vendor/bundle/gems/dragonfly-0.9.12/.yardopts +29 -0
  124. data/vendor/bundle/gems/dragonfly-0.9.12/Gemfile +31 -0
  125. data/vendor/bundle/gems/dragonfly-0.9.12/History.md +485 -0
  126. data/vendor/bundle/gems/dragonfly-0.9.12/LICENSE +20 -0
  127. data/vendor/bundle/gems/dragonfly-0.9.12/README.md +130 -0
  128. data/vendor/bundle/gems/dragonfly-0.9.12/Rakefile +49 -0
  129. data/vendor/bundle/gems/dragonfly-0.9.12/VERSION +1 -0
  130. data/vendor/bundle/gems/dragonfly-0.9.12/config.ru +14 -0
  131. data/vendor/bundle/gems/dragonfly-0.9.12/docs.watchr +1 -0
  132. data/vendor/bundle/gems/dragonfly-0.9.12/dragonfly.gemspec +311 -0
  133. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Analysers.md +68 -0
  134. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Caching.md +23 -0
  135. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Configuration.md +149 -0
  136. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Couch.md +49 -0
  137. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/DataStorage.md +226 -0
  138. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Encoding.md +67 -0
  139. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/ExampleUseCases.md +116 -0
  140. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/GeneralUsage.md +105 -0
  141. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Generators.md +68 -0
  142. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Heroku.md +57 -0
  143. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/ImageMagick.md +136 -0
  144. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Index.md +33 -0
  145. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/MimeTypes.md +40 -0
  146. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Models.md +441 -0
  147. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Mongo.md +42 -0
  148. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Processing.md +77 -0
  149. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Rack.md +52 -0
  150. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Rails2.md +57 -0
  151. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Rails3.md +56 -0
  152. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/ServingRemotely.md +104 -0
  153. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/Sinatra.md +25 -0
  154. data/vendor/bundle/gems/dragonfly-0.9.12/extra_docs/URLs.md +203 -0
  155. data/vendor/bundle/gems/dragonfly-0.9.12/features/images.feature +47 -0
  156. data/vendor/bundle/gems/dragonfly-0.9.12/features/no_processing.feature +14 -0
  157. data/vendor/bundle/gems/dragonfly-0.9.12/features/rails.feature +8 -0
  158. data/vendor/bundle/gems/dragonfly-0.9.12/features/steps/common_steps.rb +8 -0
  159. data/vendor/bundle/gems/dragonfly-0.9.12/features/steps/dragonfly_steps.rb +66 -0
  160. data/vendor/bundle/gems/dragonfly-0.9.12/features/steps/rails_steps.rb +40 -0
  161. data/vendor/bundle/gems/dragonfly-0.9.12/features/support/env.rb +13 -0
  162. data/vendor/bundle/gems/dragonfly-0.9.12/features/support/setup.rb +41 -0
  163. data/vendor/bundle/gems/dragonfly-0.9.12/fixtures/rails/files/app/models/album.rb +5 -0
  164. data/vendor/bundle/gems/dragonfly-0.9.12/fixtures/rails/files/app/views/albums/new.html.erb +7 -0
  165. data/vendor/bundle/gems/dragonfly-0.9.12/fixtures/rails/files/app/views/albums/show.html.erb +6 -0
  166. data/vendor/bundle/gems/dragonfly-0.9.12/fixtures/rails/files/config/initializers/dragonfly.rb +4 -0
  167. data/vendor/bundle/gems/dragonfly-0.9.12/fixtures/rails/files/features/manage_album_images.feature +38 -0
  168. data/vendor/bundle/gems/dragonfly-0.9.12/fixtures/rails/files/features/step_definitions/helper_steps.rb +7 -0
  169. data/vendor/bundle/gems/dragonfly-0.9.12/fixtures/rails/files/features/step_definitions/image_steps.rb +25 -0
  170. data/vendor/bundle/gems/dragonfly-0.9.12/fixtures/rails/files/features/support/paths.rb +17 -0
  171. data/vendor/bundle/gems/dragonfly-0.9.12/fixtures/rails/files/features/text_images.feature +7 -0
  172. data/vendor/bundle/gems/dragonfly-0.9.12/fixtures/rails/template.rb +20 -0
  173. data/vendor/bundle/gems/dragonfly-0.9.12/irbrc.rb +19 -0
  174. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/active_model_extensions/attachment.rb +279 -0
  175. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/active_model_extensions/attachment_class_methods.rb +144 -0
  176. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/active_model_extensions/class_methods.rb +98 -0
  177. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/active_model_extensions/instance_methods.rb +28 -0
  178. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/active_model_extensions/validations.rb +68 -0
  179. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/active_model_extensions.rb +13 -0
  180. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/analyser.rb +58 -0
  181. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/analysis/file_command_analyser.rb +33 -0
  182. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/analysis/image_magick_analyser.rb +6 -0
  183. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/app.rb +203 -0
  184. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/config/heroku.rb +26 -0
  185. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/config/image_magick.rb +6 -0
  186. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/config/rails.rb +20 -0
  187. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/configurable.rb +206 -0
  188. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/cookie_monster.rb +15 -0
  189. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/core_ext/array.rb +7 -0
  190. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/core_ext/hash.rb +7 -0
  191. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/core_ext/object.rb +12 -0
  192. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/data_storage/couch_data_store.rb +83 -0
  193. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/data_storage/file_data_store.rb +144 -0
  194. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/data_storage/mongo_data_store.rb +96 -0
  195. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/data_storage/s3data_store.rb +168 -0
  196. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/data_storage.rb +11 -0
  197. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/encoder.rb +13 -0
  198. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/encoding/image_magick_encoder.rb +6 -0
  199. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/function_manager.rb +67 -0
  200. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/generation/image_magick_generator.rb +6 -0
  201. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/generator.rb +9 -0
  202. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/has_filename.rb +24 -0
  203. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/hash_with_css_style_keys.rb +21 -0
  204. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/image_magick/analyser.rb +53 -0
  205. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/image_magick/config.rb +44 -0
  206. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/image_magick/encoder.rb +57 -0
  207. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/image_magick/generator.rb +145 -0
  208. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/image_magick/processor.rb +108 -0
  209. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/image_magick/utils.rb +46 -0
  210. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/image_magick_utils.rb +4 -0
  211. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/job.rb +427 -0
  212. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/job_builder.rb +39 -0
  213. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/job_definitions.rb +30 -0
  214. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/job_endpoint.rb +19 -0
  215. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/loggable.rb +28 -0
  216. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/middleware.rb +20 -0
  217. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/processing/image_magick_processor.rb +6 -0
  218. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/processor.rb +9 -0
  219. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/rails/images.rb +32 -0
  220. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/railtie.rb +10 -0
  221. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/response.rb +107 -0
  222. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/routed_endpoint.rb +44 -0
  223. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/serializer.rb +32 -0
  224. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/server.rb +120 -0
  225. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/shell.rb +44 -0
  226. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/simple_cache.rb +23 -0
  227. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/temp_object.rb +216 -0
  228. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/url_attributes.rb +30 -0
  229. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly/url_mapper.rb +78 -0
  230. data/vendor/bundle/gems/dragonfly-0.9.12/lib/dragonfly.rb +59 -0
  231. data/vendor/bundle/gems/dragonfly-0.9.12/samples/DSC02119.JPG +0 -0
  232. data/vendor/bundle/gems/dragonfly-0.9.12/samples/a.jp2 +0 -0
  233. data/vendor/bundle/gems/dragonfly-0.9.12/samples/beach.jpg +0 -0
  234. data/vendor/bundle/gems/dragonfly-0.9.12/samples/beach.png +0 -0
  235. data/vendor/bundle/gems/dragonfly-0.9.12/samples/egg.png +0 -0
  236. data/vendor/bundle/gems/dragonfly-0.9.12/samples/round.gif +0 -0
  237. data/vendor/bundle/gems/dragonfly-0.9.12/samples/sample.docx +0 -0
  238. data/vendor/bundle/gems/dragonfly-0.9.12/samples/taj.jpg +0 -0
  239. data/vendor/bundle/gems/dragonfly-0.9.12/samples/white pixel.png +0 -0
  240. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/active_model_extensions/model_spec.rb +1478 -0
  241. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/active_model_extensions/spec_helper.rb +95 -0
  242. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/analyser_spec.rb +123 -0
  243. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/analysis/file_command_analyser_spec.rb +49 -0
  244. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/app_spec.rb +173 -0
  245. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/configurable_spec.rb +479 -0
  246. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/cookie_monster_spec.rb +29 -0
  247. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/core_ext/array_spec.rb +19 -0
  248. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/core_ext/hash_spec.rb +19 -0
  249. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/data_storage/couch_data_store_spec.rb +84 -0
  250. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/data_storage/file_data_store_spec.rb +308 -0
  251. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/data_storage/mongo_data_store_spec.rb +81 -0
  252. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/data_storage/s3_data_store_spec.rb +277 -0
  253. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/data_storage/shared_data_store_examples.rb +77 -0
  254. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/function_manager_spec.rb +154 -0
  255. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/has_filename_spec.rb +88 -0
  256. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/hash_with_css_style_keys_spec.rb +24 -0
  257. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/image_magick/analyser_spec.rb +78 -0
  258. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/image_magick/encoder_spec.rb +41 -0
  259. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/image_magick/generator_spec.rb +167 -0
  260. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/image_magick/processor_spec.rb +293 -0
  261. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/job_builder_spec.rb +37 -0
  262. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/job_definitions_spec.rb +57 -0
  263. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/job_endpoint_spec.rb +235 -0
  264. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/job_spec.rb +1059 -0
  265. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/loggable_spec.rb +80 -0
  266. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/middleware_spec.rb +47 -0
  267. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/routed_endpoint_spec.rb +52 -0
  268. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/serializer_spec.rb +75 -0
  269. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/server_spec.rb +286 -0
  270. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/shell_spec.rb +34 -0
  271. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/simple_cache_spec.rb +27 -0
  272. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/temp_object_spec.rb +442 -0
  273. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/url_attributes.rb +47 -0
  274. data/vendor/bundle/gems/dragonfly-0.9.12/spec/dragonfly/url_mapper_spec.rb +138 -0
  275. data/vendor/bundle/gems/dragonfly-0.9.12/spec/functional/deprecations_spec.rb +51 -0
  276. data/vendor/bundle/gems/dragonfly-0.9.12/spec/functional/image_magick_app_spec.rb +27 -0
  277. data/vendor/bundle/gems/dragonfly-0.9.12/spec/functional/model_urls_spec.rb +120 -0
  278. data/vendor/bundle/gems/dragonfly-0.9.12/spec/functional/remote_on_the_fly_spec.rb +51 -0
  279. data/vendor/bundle/gems/dragonfly-0.9.12/spec/functional/shell_commands_spec.rb +23 -0
  280. data/vendor/bundle/gems/dragonfly-0.9.12/spec/functional/to_response_spec.rb +31 -0
  281. data/vendor/bundle/gems/dragonfly-0.9.12/spec/spec_helper.rb +55 -0
  282. data/vendor/bundle/gems/dragonfly-0.9.12/spec/support/argument_matchers.rb +19 -0
  283. data/vendor/bundle/gems/dragonfly-0.9.12/spec/support/image_matchers.rb +58 -0
  284. data/vendor/bundle/gems/dragonfly-0.9.12/spec/support/simple_matchers.rb +53 -0
  285. data/vendor/bundle/gems/dragonfly-0.9.12/spec/test_imagemagick.ru +49 -0
  286. data/vendor/bundle/gems/dragonfly-0.9.12/yard/handlers/configurable_attr_handler.rb +38 -0
  287. data/vendor/bundle/gems/dragonfly-0.9.12/yard/setup.rb +15 -0
  288. data/vendor/bundle/gems/dragonfly-0.9.12/yard/templates/default/fulldoc/html/css/common.css +109 -0
  289. data/vendor/bundle/gems/dragonfly-0.9.12/yard/templates/default/layout/html/layout.erb +93 -0
  290. data/vendor/bundle/gems/dragonfly-0.9.12/yard/templates/default/module/html/configuration_summary.erb +31 -0
  291. data/vendor/bundle/gems/dragonfly-0.9.12/yard/templates/default/module/setup.rb +17 -0
  292. data/vendor/bundle/gems/execjs-1.4.0/LICENSE +21 -0
  293. data/vendor/bundle/gems/execjs-1.4.0/README.md +42 -0
  294. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/disabled_runtime.rb +29 -0
  295. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/encoding.rb +33 -0
  296. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/external_runtime.rb +205 -0
  297. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/johnson_runtime.rb +106 -0
  298. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/json.rb +23 -0
  299. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/module.rb +38 -0
  300. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/mustang_runtime.rb +76 -0
  301. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/ruby_racer_runtime.rb +105 -0
  302. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/ruby_rhino_runtime.rb +89 -0
  303. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/runtime.rb +55 -0
  304. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/runtimes.rb +94 -0
  305. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/support/jsc_runner.js +19 -0
  306. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/support/jscript_runner.js +22 -0
  307. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/support/json2.js +481 -0
  308. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/support/node_runner.js +20 -0
  309. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/support/spidermonkey_runner.js +19 -0
  310. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs/version.rb +3 -0
  311. data/vendor/bundle/gems/execjs-1.4.0/lib/execjs.rb +6 -0
  312. data/vendor/bundle/gems/haml-3.1.6/.yardopts +11 -0
  313. data/vendor/bundle/gems/haml-3.1.6/CONTRIBUTING +3 -0
  314. data/vendor/bundle/gems/haml-3.1.6/MIT-LICENSE +20 -0
  315. data/vendor/bundle/gems/haml-3.1.6/README.md +133 -0
  316. data/vendor/bundle/gems/haml-3.1.6/REVISION +1 -0
  317. data/vendor/bundle/gems/haml-3.1.6/Rakefile +419 -0
  318. data/vendor/bundle/gems/haml-3.1.6/VERSION +1 -0
  319. data/vendor/bundle/gems/haml-3.1.6/VERSION_NAME +1 -0
  320. data/vendor/bundle/gems/haml-3.1.6/bin/haml +9 -0
  321. data/vendor/bundle/gems/haml-3.1.6/bin/html2haml +7 -0
  322. data/vendor/bundle/gems/haml-3.1.6/extra/update_watch.rb +13 -0
  323. data/vendor/bundle/gems/haml-3.1.6/init.rb +18 -0
  324. data/vendor/bundle/gems/haml-3.1.6/lib/haml/buffer.rb +301 -0
  325. data/vendor/bundle/gems/haml-3.1.6/lib/haml/compiler.rb +452 -0
  326. data/vendor/bundle/gems/haml-3.1.6/lib/haml/engine.rb +312 -0
  327. data/vendor/bundle/gems/haml-3.1.6/lib/haml/error.rb +22 -0
  328. data/vendor/bundle/gems/haml-3.1.6/lib/haml/exec.rb +362 -0
  329. data/vendor/bundle/gems/haml-3.1.6/lib/haml/filters.rb +385 -0
  330. data/vendor/bundle/gems/haml-3.1.6/lib/haml/helpers/action_view_extensions.rb +57 -0
  331. data/vendor/bundle/gems/haml-3.1.6/lib/haml/helpers/action_view_mods.rb +260 -0
  332. data/vendor/bundle/gems/haml-3.1.6/lib/haml/helpers/rails_323_textarea_fix.rb +41 -0
  333. data/vendor/bundle/gems/haml-3.1.6/lib/haml/helpers/xss_mods.rb +165 -0
  334. data/vendor/bundle/gems/haml-3.1.6/lib/haml/helpers.rb +608 -0
  335. data/vendor/bundle/gems/haml-3.1.6/lib/haml/html/erb.rb +141 -0
  336. data/vendor/bundle/gems/haml-3.1.6/lib/haml/html.rb +412 -0
  337. data/vendor/bundle/gems/haml-3.1.6/lib/haml/parser.rb +711 -0
  338. data/vendor/bundle/gems/haml-3.1.6/lib/haml/railtie.rb +19 -0
  339. data/vendor/bundle/gems/haml-3.1.6/lib/haml/root.rb +7 -0
  340. data/vendor/bundle/gems/haml-3.1.6/lib/haml/shared.rb +78 -0
  341. data/vendor/bundle/gems/haml-3.1.6/lib/haml/template/options.rb +16 -0
  342. data/vendor/bundle/gems/haml-3.1.6/lib/haml/template/patch.rb +58 -0
  343. data/vendor/bundle/gems/haml-3.1.6/lib/haml/template/plugin.rb +123 -0
  344. data/vendor/bundle/gems/haml-3.1.6/lib/haml/template.rb +99 -0
  345. data/vendor/bundle/gems/haml-3.1.6/lib/haml/util.rb +842 -0
  346. data/vendor/bundle/gems/haml-3.1.6/lib/haml/version.rb +109 -0
  347. data/vendor/bundle/gems/haml-3.1.6/lib/haml.rb +47 -0
  348. data/vendor/bundle/gems/haml-3.1.6/lib/sass/plugin.rb +10 -0
  349. data/vendor/bundle/gems/haml-3.1.6/lib/sass/rails2_shim.rb +9 -0
  350. data/vendor/bundle/gems/haml-3.1.6/lib/sass/rails3_shim.rb +16 -0
  351. data/vendor/bundle/gems/haml-3.1.6/lib/sass.rb +8 -0
  352. data/vendor/bundle/gems/haml-3.1.6/rails/init.rb +1 -0
  353. data/vendor/bundle/gems/haml-3.1.6/test/benchmark.rb +91 -0
  354. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-2.0.x +8 -0
  355. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-2.0.x.lock +38 -0
  356. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-2.1.x +8 -0
  357. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-2.1.x.lock +38 -0
  358. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-2.2.x +8 -0
  359. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-2.2.x.lock +38 -0
  360. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-2.3.x +8 -0
  361. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-2.3.x.lock +40 -0
  362. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-3.0.x +8 -0
  363. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-3.0.x.lock +85 -0
  364. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-3.1.x +8 -0
  365. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-3.1.x.lock +97 -0
  366. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-3.2.x +8 -0
  367. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-3.2.x.lock +95 -0
  368. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-xss-2.3.x +9 -0
  369. data/vendor/bundle/gems/haml-3.1.6/test/gemfiles/Gemfile.rails-xss-2.3.x.lock +42 -0
  370. data/vendor/bundle/gems/haml-3.1.6/test/haml/engine_test.rb +1944 -0
  371. data/vendor/bundle/gems/haml-3.1.6/test/haml/erb/_av_partial_1.erb +12 -0
  372. data/vendor/bundle/gems/haml-3.1.6/test/haml/erb/_av_partial_2.erb +8 -0
  373. data/vendor/bundle/gems/haml-3.1.6/test/haml/erb/action_view.erb +62 -0
  374. data/vendor/bundle/gems/haml-3.1.6/test/haml/erb/standard.erb +55 -0
  375. data/vendor/bundle/gems/haml-3.1.6/test/haml/helper_test.rb +467 -0
  376. data/vendor/bundle/gems/haml-3.1.6/test/haml/html2haml/erb_tests.rb +440 -0
  377. data/vendor/bundle/gems/haml-3.1.6/test/haml/html2haml_test.rb +336 -0
  378. data/vendor/bundle/gems/haml-3.1.6/test/haml/markaby/standard.mab +52 -0
  379. data/vendor/bundle/gems/haml-3.1.6/test/haml/mocks/article.rb +6 -0
  380. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/content_for_layout.xhtml +12 -0
  381. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/eval_suppressed.xhtml +9 -0
  382. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/filters.xhtml +62 -0
  383. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/helpers.xhtml +70 -0
  384. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/helpful.xhtml +10 -0
  385. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/just_stuff.xhtml +70 -0
  386. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/list.xhtml +12 -0
  387. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/nuke_inner_whitespace.xhtml +40 -0
  388. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/nuke_outer_whitespace.xhtml +148 -0
  389. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/original_engine.xhtml +20 -0
  390. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/partial_layout.xhtml +5 -0
  391. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/partials.xhtml +21 -0
  392. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/render_layout.xhtml +3 -0
  393. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/silent_script.xhtml +74 -0
  394. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/standard.xhtml +162 -0
  395. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/tag_parsing.xhtml +23 -0
  396. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/very_basic.xhtml +5 -0
  397. data/vendor/bundle/gems/haml-3.1.6/test/haml/results/whitespace_handling.xhtml +85 -0
  398. data/vendor/bundle/gems/haml-3.1.6/test/haml/spec/README.md +97 -0
  399. data/vendor/bundle/gems/haml-3.1.6/test/haml/spec/lua_haml_spec.lua +30 -0
  400. data/vendor/bundle/gems/haml-3.1.6/test/haml/spec/ruby_haml_test.rb +19 -0
  401. data/vendor/bundle/gems/haml-3.1.6/test/haml/spec/tests.json +534 -0
  402. data/vendor/bundle/gems/haml-3.1.6/test/haml/spec_test.rb +44 -0
  403. data/vendor/bundle/gems/haml-3.1.6/test/haml/template_test.rb +443 -0
  404. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/_av_partial_1.haml +9 -0
  405. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/_av_partial_1_ugly.haml +9 -0
  406. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/_av_partial_2.haml +5 -0
  407. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/_av_partial_2_ugly.haml +5 -0
  408. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/_layout.erb +3 -0
  409. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/_layout_for_partial.haml +3 -0
  410. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/_partial.haml +8 -0
  411. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/_text_area.haml +3 -0
  412. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/action_view.haml +47 -0
  413. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/action_view_ugly.haml +47 -0
  414. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/breakage.haml +8 -0
  415. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/content_for_layout.haml +8 -0
  416. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/eval_suppressed.haml +11 -0
  417. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/filters.haml +66 -0
  418. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/helpers.haml +55 -0
  419. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/helpful.haml +11 -0
  420. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/just_stuff.haml +85 -0
  421. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/list.haml +12 -0
  422. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/nuke_inner_whitespace.haml +32 -0
  423. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/nuke_outer_whitespace.haml +144 -0
  424. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/original_engine.haml +17 -0
  425. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/partial_layout.haml +10 -0
  426. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/partialize.haml +1 -0
  427. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/partials.haml +12 -0
  428. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/render_layout.haml +2 -0
  429. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/silent_script.haml +40 -0
  430. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/standard.haml +43 -0
  431. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/standard_ugly.haml +43 -0
  432. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/tag_parsing.haml +21 -0
  433. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/very_basic.haml +4 -0
  434. data/vendor/bundle/gems/haml-3.1.6/test/haml/templates/whitespace_handling.haml +87 -0
  435. data/vendor/bundle/gems/haml-3.1.6/test/haml/util_test.rb +300 -0
  436. data/vendor/bundle/gems/haml-3.1.6/test/linked_rails.rb +42 -0
  437. data/vendor/bundle/gems/haml-3.1.6/test/test_helper.rb +75 -0
  438. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/CONTRIBUTING +3 -0
  439. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/MIT-LICENSE +20 -0
  440. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/README.md +201 -0
  441. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/Rakefile +339 -0
  442. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/TODO +39 -0
  443. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/VERSION +1 -0
  444. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/VERSION_NAME +1 -0
  445. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/bin/sass +8 -0
  446. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/bin/sass-convert +7 -0
  447. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/bin/scss +8 -0
  448. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/doc-src/FAQ.md +35 -0
  449. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/doc-src/INDENTED_SYNTAX.md +210 -0
  450. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/doc-src/SASS_CHANGELOG.md +2327 -0
  451. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/doc-src/SASS_REFERENCE.md +1965 -0
  452. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/doc-src/SCSS_FOR_SASS_USERS.md +155 -0
  453. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/ext/extconf.rb +10 -0
  454. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/extra/update_watch.rb +13 -0
  455. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/init.rb +18 -0
  456. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/cache_stores/base.rb +86 -0
  457. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/cache_stores/chain.rb +33 -0
  458. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/cache_stores/filesystem.rb +60 -0
  459. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/cache_stores/memory.rb +47 -0
  460. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/cache_stores/null.rb +25 -0
  461. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/cache_stores.rb +15 -0
  462. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/callbacks.rb +66 -0
  463. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/css.rb +295 -0
  464. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/engine.rb +878 -0
  465. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/environment.rb +166 -0
  466. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/error.rb +201 -0
  467. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/exec.rb +672 -0
  468. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/importers/base.rb +139 -0
  469. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/importers/filesystem.rb +149 -0
  470. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/importers.rb +22 -0
  471. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/less.rb +382 -0
  472. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/logger/base.rb +32 -0
  473. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/logger/log_level.rb +49 -0
  474. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/logger.rb +15 -0
  475. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/plugin/compiler.rb +383 -0
  476. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/plugin/configuration.rb +123 -0
  477. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/plugin/generic.rb +15 -0
  478. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/plugin/merb.rb +48 -0
  479. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/plugin/rack.rb +60 -0
  480. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/plugin/rails.rb +47 -0
  481. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/plugin/staleness_checker.rb +173 -0
  482. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/plugin.rb +132 -0
  483. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/railtie.rb +9 -0
  484. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/repl.rb +58 -0
  485. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/root.rb +7 -0
  486. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/bool.rb +18 -0
  487. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/color.rb +480 -0
  488. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/css_lexer.rb +29 -0
  489. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/css_parser.rb +31 -0
  490. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/funcall.rb +175 -0
  491. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/functions.rb +1386 -0
  492. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/interpolation.rb +79 -0
  493. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/lexer.rb +339 -0
  494. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/list.rb +83 -0
  495. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/literal.rb +250 -0
  496. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/node.rb +99 -0
  497. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/number.rb +452 -0
  498. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/operation.rb +99 -0
  499. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/parser.rb +474 -0
  500. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/string.rb +51 -0
  501. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/string_interpolation.rb +103 -0
  502. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/unary_operation.rb +64 -0
  503. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script/variable.rb +59 -0
  504. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/script.rb +40 -0
  505. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/scss/css_parser.rb +46 -0
  506. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/scss/parser.rb +960 -0
  507. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/scss/rx.rb +128 -0
  508. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/scss/sass_parser.rb +11 -0
  509. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/scss/script_lexer.rb +15 -0
  510. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/scss/script_parser.rb +25 -0
  511. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/scss/static_parser.rb +40 -0
  512. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/scss.rb +17 -0
  513. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/selector/abstract_sequence.rb +62 -0
  514. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/selector/comma_sequence.rb +81 -0
  515. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/selector/sequence.rb +233 -0
  516. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/selector/simple.rb +113 -0
  517. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/selector/simple_sequence.rb +134 -0
  518. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/selector.rb +361 -0
  519. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/shared.rb +78 -0
  520. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/charset_node.rb +22 -0
  521. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/comment_node.rb +90 -0
  522. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/debug_node.rb +18 -0
  523. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/directive_node.rb +23 -0
  524. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/each_node.rb +24 -0
  525. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/extend_node.rb +29 -0
  526. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/for_node.rb +36 -0
  527. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/function_node.rb +27 -0
  528. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/if_node.rb +52 -0
  529. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/import_node.rb +68 -0
  530. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/media_node.rb +32 -0
  531. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/mixin_def_node.rb +27 -0
  532. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/mixin_node.rb +32 -0
  533. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/node.rb +201 -0
  534. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/prop_node.rb +148 -0
  535. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/return_node.rb +18 -0
  536. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/root_node.rb +28 -0
  537. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/rule_node.rb +136 -0
  538. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/variable_node.rb +30 -0
  539. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/visitors/base.rb +75 -0
  540. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/visitors/check_nesting.rb +133 -0
  541. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/visitors/convert.rb +260 -0
  542. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/visitors/cssize.rb +175 -0
  543. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/visitors/deep_copy.rb +87 -0
  544. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/visitors/perform.rb +332 -0
  545. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/visitors/set_options.rb +97 -0
  546. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/visitors/to_css.rb +210 -0
  547. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/warn_node.rb +18 -0
  548. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/while_node.rb +18 -0
  549. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/util/subset_map.rb +101 -0
  550. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/util.rb +721 -0
  551. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/version.rb +112 -0
  552. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass.rb +73 -0
  553. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/rails/init.rb +1 -0
  554. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/sass.gemspec +33 -0
  555. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/Gemfile +4 -0
  556. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/cache_test.rb +89 -0
  557. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/callbacks_test.rb +61 -0
  558. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/conversion_test.rb +1199 -0
  559. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/css2sass_test.rb +373 -0
  560. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/data/hsl-rgb.txt +319 -0
  561. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/engine_test.rb +2567 -0
  562. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/extend_test.rb +1348 -0
  563. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/fixtures/test_staleness_check_across_importers.css +1 -0
  564. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/fixtures/test_staleness_check_across_importers.scss +1 -0
  565. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/functions_test.rb +1038 -0
  566. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/importer_test.rb +192 -0
  567. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/less_conversion_test.rb +653 -0
  568. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/logger_test.rb +58 -0
  569. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/mock_importer.rb +49 -0
  570. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/more_results/more1.css +9 -0
  571. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/more_results/more1_with_line_comments.css +26 -0
  572. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/more_results/more_import.css +29 -0
  573. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/more_templates/_more_partial.sass +2 -0
  574. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/more_templates/more1.sass +23 -0
  575. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/more_templates/more_import.sass +11 -0
  576. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/plugin_test.rb +472 -0
  577. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/alt.css +4 -0
  578. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/basic.css +9 -0
  579. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/compact.css +5 -0
  580. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/complex.css +86 -0
  581. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/compressed.css +1 -0
  582. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/expanded.css +19 -0
  583. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/if.css +3 -0
  584. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/import.css +31 -0
  585. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/import_charset.css +4 -0
  586. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/import_charset_1_8.css +4 -0
  587. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/import_charset_ibm866.css +4 -0
  588. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/line_numbers.css +49 -0
  589. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/mixins.css +95 -0
  590. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/multiline.css +24 -0
  591. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/nested.css +22 -0
  592. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/options.css +1 -0
  593. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/parent_ref.css +13 -0
  594. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/script.css +16 -0
  595. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/scss_import.css +31 -0
  596. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/scss_importee.css +2 -0
  597. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
  598. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/subdir/subdir.css +3 -0
  599. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/units.css +11 -0
  600. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/warn.css +0 -0
  601. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/results/warn_imported.css +0 -0
  602. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/script_conversion_test.rb +285 -0
  603. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/script_test.rb +514 -0
  604. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/scss/css_test.rb +922 -0
  605. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/scss/rx_test.rb +156 -0
  606. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/scss/scss_test.rb +1273 -0
  607. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/scss/test_helper.rb +37 -0
  608. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/_imported_charset_ibm866.sass +4 -0
  609. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/_imported_charset_utf8.sass +4 -0
  610. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/_partial.sass +2 -0
  611. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/alt.sass +16 -0
  612. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/basic.sass +23 -0
  613. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/bork1.sass +2 -0
  614. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/bork2.sass +2 -0
  615. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/bork3.sass +2 -0
  616. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/bork4.sass +2 -0
  617. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/bork5.sass +3 -0
  618. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/compact.sass +17 -0
  619. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/complex.sass +305 -0
  620. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/compressed.sass +15 -0
  621. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/expanded.sass +17 -0
  622. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/if.sass +11 -0
  623. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/import.sass +12 -0
  624. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/import_charset.sass +7 -0
  625. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/import_charset_1_8.sass +4 -0
  626. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/import_charset_ibm866.sass +9 -0
  627. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/importee.less +2 -0
  628. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/importee.sass +19 -0
  629. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/line_numbers.sass +13 -0
  630. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/mixin_bork.sass +5 -0
  631. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/mixins.sass +76 -0
  632. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/multiline.sass +20 -0
  633. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/nested.sass +25 -0
  634. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/nested_bork1.sass +2 -0
  635. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/nested_bork2.sass +2 -0
  636. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/nested_bork3.sass +2 -0
  637. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/nested_bork4.sass +2 -0
  638. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/nested_bork5.sass +2 -0
  639. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/nested_import.sass +2 -0
  640. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/nested_mixin_bork.sass +6 -0
  641. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/options.sass +2 -0
  642. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/parent_ref.sass +25 -0
  643. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/script.sass +101 -0
  644. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/scss_import.scss +11 -0
  645. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/scss_importee.scss +1 -0
  646. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  647. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
  648. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/subdir/subdir.sass +6 -0
  649. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/units.sass +11 -0
  650. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/warn.sass +3 -0
  651. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/templates/warn_imported.sass +4 -0
  652. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/test_helper.rb +8 -0
  653. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/util/subset_map_test.rb +91 -0
  654. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/sass/util_test.rb +266 -0
  655. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/test/test_helper.rb +69 -0
  656. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/Gemfile +3 -0
  657. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/LICENSE +20 -0
  658. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/README.markdown +83 -0
  659. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/Rakefile +11 -0
  660. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/example.rb +12 -0
  661. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/fssm.gemspec +24 -0
  662. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/backends/fsevents.rb +36 -0
  663. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/backends/inotify.rb +26 -0
  664. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/backends/polling.rb +25 -0
  665. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/backends/rbfsevent.rb +42 -0
  666. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/backends/rubycocoa/fsevents.rb +131 -0
  667. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/monitor.rb +36 -0
  668. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/path.rb +94 -0
  669. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/pathname.rb +36 -0
  670. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/state/directory.rb +75 -0
  671. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/state/file.rb +24 -0
  672. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/support.rb +92 -0
  673. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/tree.rb +176 -0
  674. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm/version.rb +3 -0
  675. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/lib/fssm.rb +37 -0
  676. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/profile/prof-cache.rb +40 -0
  677. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/profile/prof-fssm-pathname.html +1231 -0
  678. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/profile/prof-pathname-rubinius.rb +35 -0
  679. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/profile/prof-pathname.rb +68 -0
  680. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/profile/prof-plain-pathname.html +988 -0
  681. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/profile/prof.html +2379 -0
  682. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/spec/count_down_latch.rb +151 -0
  683. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/spec/monitor_spec.rb +202 -0
  684. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/spec/path_spec.rb +96 -0
  685. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/spec/root/duck/quack.txt +0 -0
  686. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/spec/root/file.css +0 -0
  687. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/spec/root/file.rb +0 -0
  688. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/spec/root/file.yml +0 -0
  689. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/spec/root/moo/cow.txt +0 -0
  690. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/vendor/fssm/spec/spec_helper.rb +14 -0
  691. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/yard/callbacks.rb +29 -0
  692. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/yard/default/fulldoc/html/css/common.sass +26 -0
  693. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/yard/default/layout/html/footer.erb +12 -0
  694. data/vendor/bundle/gems/haml-3.1.6/vendor/sass/yard/inherited_hash.rb +41 -0
  695. data/vendor/bundle/gems/json-1.7.3/.gitignore +12 -0
  696. data/vendor/bundle/gems/json-1.7.3/.travis.yml +16 -0
  697. data/vendor/bundle/gems/json-1.7.3/CHANGES +250 -0
  698. data/vendor/bundle/gems/json-1.7.3/COPYING +58 -0
  699. data/vendor/bundle/gems/json-1.7.3/COPYING-json-jruby +57 -0
  700. data/vendor/bundle/gems/json-1.7.3/GPL +340 -0
  701. data/vendor/bundle/gems/json-1.7.3/Gemfile +15 -0
  702. data/vendor/bundle/gems/json-1.7.3/README-json-jruby.markdown +33 -0
  703. data/vendor/bundle/gems/json-1.7.3/README.rdoc +358 -0
  704. data/vendor/bundle/gems/json-1.7.3/Rakefile +401 -0
  705. data/vendor/bundle/gems/json-1.7.3/TODO +1 -0
  706. data/vendor/bundle/gems/json-1.7.3/VERSION +1 -0
  707. data/vendor/bundle/gems/json-1.7.3/data/example.json +1 -0
  708. data/vendor/bundle/gems/json-1.7.3/data/index.html +38 -0
  709. data/vendor/bundle/gems/json-1.7.3/data/prototype.js +4184 -0
  710. data/vendor/bundle/gems/json-1.7.3/diagrams/.keep +0 -0
  711. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/fbuffer/fbuffer.h +164 -0
  712. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/generator/Makefile +214 -0
  713. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/generator/depend +1 -0
  714. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/generator/extconf.rb +14 -0
  715. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/generator/generator.bundle +0 -0
  716. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/generator/generator.c +1393 -0
  717. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/generator/generator.h +162 -0
  718. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/generator/generator.o +0 -0
  719. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/parser/Makefile +214 -0
  720. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/parser/depend +1 -0
  721. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/parser/extconf.rb +13 -0
  722. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/parser/parser.bundle +0 -0
  723. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/parser/parser.c +2204 -0
  724. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/parser/parser.h +77 -0
  725. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/parser/parser.o +0 -0
  726. data/vendor/bundle/gems/json-1.7.3/ext/json/ext/parser/parser.rl +927 -0
  727. data/vendor/bundle/gems/json-1.7.3/install.rb +23 -0
  728. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/ByteListTranscoder.java +167 -0
  729. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/Generator.java +444 -0
  730. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/GeneratorMethods.java +232 -0
  731. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/GeneratorService.java +43 -0
  732. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/GeneratorState.java +526 -0
  733. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/OptionsReader.java +113 -0
  734. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/Parser.java +2644 -0
  735. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/Parser.rl +968 -0
  736. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/ParserService.java +35 -0
  737. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/RuntimeInfo.java +121 -0
  738. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/StringDecoder.java +167 -0
  739. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/StringEncoder.java +106 -0
  740. data/vendor/bundle/gems/json-1.7.3/java/src/json/ext/Utils.java +89 -0
  741. data/vendor/bundle/gems/json-1.7.3/json-java.gemspec +22 -0
  742. data/vendor/bundle/gems/json-1.7.3/json.gemspec +37 -0
  743. data/vendor/bundle/gems/json-1.7.3/json_pure.gemspec +39 -0
  744. data/vendor/bundle/gems/json-1.7.3/lib/json/add/bigdecimal.rb +21 -0
  745. data/vendor/bundle/gems/json-1.7.3/lib/json/add/complex.rb +22 -0
  746. data/vendor/bundle/gems/json-1.7.3/lib/json/add/core.rb +11 -0
  747. data/vendor/bundle/gems/json-1.7.3/lib/json/add/date.rb +34 -0
  748. data/vendor/bundle/gems/json-1.7.3/lib/json/add/date_time.rb +50 -0
  749. data/vendor/bundle/gems/json-1.7.3/lib/json/add/exception.rb +31 -0
  750. data/vendor/bundle/gems/json-1.7.3/lib/json/add/ostruct.rb +31 -0
  751. data/vendor/bundle/gems/json-1.7.3/lib/json/add/range.rb +29 -0
  752. data/vendor/bundle/gems/json-1.7.3/lib/json/add/rational.rb +22 -0
  753. data/vendor/bundle/gems/json-1.7.3/lib/json/add/regexp.rb +30 -0
  754. data/vendor/bundle/gems/json-1.7.3/lib/json/add/struct.rb +30 -0
  755. data/vendor/bundle/gems/json-1.7.3/lib/json/add/symbol.rb +25 -0
  756. data/vendor/bundle/gems/json-1.7.3/lib/json/add/time.rb +38 -0
  757. data/vendor/bundle/gems/json-1.7.3/lib/json/common.rb +480 -0
  758. data/vendor/bundle/gems/json-1.7.3/lib/json/ext/.keep +0 -0
  759. data/vendor/bundle/gems/json-1.7.3/lib/json/ext/generator.bundle +0 -0
  760. data/vendor/bundle/gems/json-1.7.3/lib/json/ext/parser.bundle +0 -0
  761. data/vendor/bundle/gems/json-1.7.3/lib/json/ext.rb +21 -0
  762. data/vendor/bundle/gems/json-1.7.3/lib/json/generic_object.rb +39 -0
  763. data/vendor/bundle/gems/json-1.7.3/lib/json/pure/generator.rb +472 -0
  764. data/vendor/bundle/gems/json-1.7.3/lib/json/pure/parser.rb +359 -0
  765. data/vendor/bundle/gems/json-1.7.3/lib/json/pure.rb +21 -0
  766. data/vendor/bundle/gems/json-1.7.3/lib/json/version.rb +8 -0
  767. data/vendor/bundle/gems/json-1.7.3/lib/json.rb +62 -0
  768. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail1.json +1 -0
  769. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail10.json +1 -0
  770. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail11.json +1 -0
  771. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail12.json +1 -0
  772. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail13.json +1 -0
  773. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail14.json +1 -0
  774. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail18.json +1 -0
  775. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail19.json +1 -0
  776. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail2.json +1 -0
  777. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail20.json +1 -0
  778. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail21.json +1 -0
  779. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail22.json +1 -0
  780. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail23.json +1 -0
  781. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail24.json +1 -0
  782. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail25.json +1 -0
  783. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail27.json +2 -0
  784. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail28.json +2 -0
  785. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail3.json +1 -0
  786. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail4.json +1 -0
  787. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail5.json +1 -0
  788. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail6.json +1 -0
  789. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail7.json +1 -0
  790. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail8.json +1 -0
  791. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/fail9.json +1 -0
  792. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/pass1.json +56 -0
  793. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/pass15.json +1 -0
  794. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/pass16.json +1 -0
  795. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/pass17.json +1 -0
  796. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/pass2.json +1 -0
  797. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/pass26.json +1 -0
  798. data/vendor/bundle/gems/json-1.7.3/tests/fixtures/pass3.json +6 -0
  799. data/vendor/bundle/gems/json-1.7.3/tests/setup_variant.rb +11 -0
  800. data/vendor/bundle/gems/json-1.7.3/tests/test_json.rb +539 -0
  801. data/vendor/bundle/gems/json-1.7.3/tests/test_json_addition.rb +188 -0
  802. data/vendor/bundle/gems/json-1.7.3/tests/test_json_encoding.rb +65 -0
  803. data/vendor/bundle/gems/json-1.7.3/tests/test_json_fixtures.rb +35 -0
  804. data/vendor/bundle/gems/json-1.7.3/tests/test_json_generate.rb +251 -0
  805. data/vendor/bundle/gems/json-1.7.3/tests/test_json_generic_object.rb +35 -0
  806. data/vendor/bundle/gems/json-1.7.3/tests/test_json_string_matching.rb +40 -0
  807. data/vendor/bundle/gems/json-1.7.3/tests/test_json_unicode.rb +72 -0
  808. data/vendor/bundle/gems/json-1.7.3/tools/fuzz.rb +139 -0
  809. data/vendor/bundle/gems/json-1.7.3/tools/server.rb +62 -0
  810. data/vendor/bundle/gems/mail-2.4.4/CHANGELOG.rdoc +603 -0
  811. data/vendor/bundle/gems/mail-2.4.4/CONTRIBUTING.md +45 -0
  812. data/vendor/bundle/gems/mail-2.4.4/Dependencies.txt +3 -0
  813. data/vendor/bundle/gems/mail-2.4.4/Gemfile +26 -0
  814. data/vendor/bundle/gems/mail-2.4.4/README.md +663 -0
  815. data/vendor/bundle/gems/mail-2.4.4/Rakefile +40 -0
  816. data/vendor/bundle/gems/mail-2.4.4/TODO.rdoc +9 -0
  817. data/vendor/bundle/gems/mail-2.4.4/lib/VERSION +4 -0
  818. data/vendor/bundle/gems/mail-2.4.4/lib/mail/attachments_list.rb +104 -0
  819. data/vendor/bundle/gems/mail-2.4.4/lib/mail/body.rb +291 -0
  820. data/vendor/bundle/gems/mail-2.4.4/lib/mail/configuration.rb +75 -0
  821. data/vendor/bundle/gems/mail-2.4.4/lib/mail/core_extensions/nil.rb +17 -0
  822. data/vendor/bundle/gems/mail-2.4.4/lib/mail/core_extensions/object.rb +13 -0
  823. data/vendor/bundle/gems/mail-2.4.4/lib/mail/core_extensions/shell_escape.rb +56 -0
  824. data/vendor/bundle/gems/mail-2.4.4/lib/mail/core_extensions/smtp.rb +25 -0
  825. data/vendor/bundle/gems/mail-2.4.4/lib/mail/core_extensions/string/access.rb +145 -0
  826. data/vendor/bundle/gems/mail-2.4.4/lib/mail/core_extensions/string/multibyte.rb +78 -0
  827. data/vendor/bundle/gems/mail-2.4.4/lib/mail/core_extensions/string.rb +33 -0
  828. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/address.rb +306 -0
  829. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/address_list.rb +74 -0
  830. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/content_disposition_element.rb +30 -0
  831. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/content_location_element.rb +25 -0
  832. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/content_transfer_encoding_element.rb +24 -0
  833. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/content_type_element.rb +35 -0
  834. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/date_time_element.rb +26 -0
  835. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/envelope_from_element.rb +34 -0
  836. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/message_ids_element.rb +29 -0
  837. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/mime_version_element.rb +26 -0
  838. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/phrase_list.rb +21 -0
  839. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements/received_element.rb +30 -0
  840. data/vendor/bundle/gems/mail-2.4.4/lib/mail/elements.rb +14 -0
  841. data/vendor/bundle/gems/mail-2.4.4/lib/mail/encodings/7bit.rb +31 -0
  842. data/vendor/bundle/gems/mail-2.4.4/lib/mail/encodings/8bit.rb +31 -0
  843. data/vendor/bundle/gems/mail-2.4.4/lib/mail/encodings/base64.rb +33 -0
  844. data/vendor/bundle/gems/mail-2.4.4/lib/mail/encodings/binary.rb +31 -0
  845. data/vendor/bundle/gems/mail-2.4.4/lib/mail/encodings/quoted_printable.rb +38 -0
  846. data/vendor/bundle/gems/mail-2.4.4/lib/mail/encodings/transfer_encoding.rb +58 -0
  847. data/vendor/bundle/gems/mail-2.4.4/lib/mail/encodings.rb +274 -0
  848. data/vendor/bundle/gems/mail-2.4.4/lib/mail/envelope.rb +35 -0
  849. data/vendor/bundle/gems/mail-2.4.4/lib/mail/field.rb +234 -0
  850. data/vendor/bundle/gems/mail-2.4.4/lib/mail/field_list.rb +33 -0
  851. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/bcc_field.rb +56 -0
  852. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/cc_field.rb +55 -0
  853. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/comments_field.rb +41 -0
  854. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/common/address_container.rb +16 -0
  855. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/common/common_address.rb +125 -0
  856. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/common/common_date.rb +42 -0
  857. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/common/common_field.rb +51 -0
  858. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/common/common_message_id.rb +44 -0
  859. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/common/parameter_hash.rb +58 -0
  860. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/content_description_field.rb +19 -0
  861. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/content_disposition_field.rb +69 -0
  862. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/content_id_field.rb +63 -0
  863. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/content_location_field.rb +42 -0
  864. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/content_transfer_encoding_field.rb +50 -0
  865. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/content_type_field.rb +198 -0
  866. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/date_field.rb +57 -0
  867. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/from_field.rb +55 -0
  868. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/in_reply_to_field.rb +55 -0
  869. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/keywords_field.rb +44 -0
  870. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/message_id_field.rb +83 -0
  871. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/mime_version_field.rb +53 -0
  872. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/optional_field.rb +13 -0
  873. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/received_field.rb +75 -0
  874. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/references_field.rb +55 -0
  875. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/reply_to_field.rb +55 -0
  876. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/resent_bcc_field.rb +55 -0
  877. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/resent_cc_field.rb +55 -0
  878. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/resent_date_field.rb +35 -0
  879. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/resent_from_field.rb +55 -0
  880. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/resent_message_id_field.rb +34 -0
  881. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/resent_sender_field.rb +62 -0
  882. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/resent_to_field.rb +55 -0
  883. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/return_path_field.rb +65 -0
  884. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/sender_field.rb +67 -0
  885. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/structured_field.rb +51 -0
  886. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/subject_field.rb +16 -0
  887. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/to_field.rb +55 -0
  888. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields/unstructured_field.rb +191 -0
  889. data/vendor/bundle/gems/mail-2.4.4/lib/mail/fields.rb +35 -0
  890. data/vendor/bundle/gems/mail-2.4.4/lib/mail/header.rb +265 -0
  891. data/vendor/bundle/gems/mail-2.4.4/lib/mail/indifferent_hash.rb +146 -0
  892. data/vendor/bundle/gems/mail-2.4.4/lib/mail/mail.rb +255 -0
  893. data/vendor/bundle/gems/mail-2.4.4/lib/mail/matchers/has_sent_mail.rb +124 -0
  894. data/vendor/bundle/gems/mail-2.4.4/lib/mail/message.rb +2058 -0
  895. data/vendor/bundle/gems/mail-2.4.4/lib/mail/multibyte/chars.rb +474 -0
  896. data/vendor/bundle/gems/mail-2.4.4/lib/mail/multibyte/exceptions.rb +8 -0
  897. data/vendor/bundle/gems/mail-2.4.4/lib/mail/multibyte/unicode.rb +392 -0
  898. data/vendor/bundle/gems/mail-2.4.4/lib/mail/multibyte/utils.rb +60 -0
  899. data/vendor/bundle/gems/mail-2.4.4/lib/mail/multibyte.rb +42 -0
  900. data/vendor/bundle/gems/mail-2.4.4/lib/mail/network/delivery_methods/exim.rb +53 -0
  901. data/vendor/bundle/gems/mail-2.4.4/lib/mail/network/delivery_methods/file_delivery.rb +40 -0
  902. data/vendor/bundle/gems/mail-2.4.4/lib/mail/network/delivery_methods/sendmail.rb +62 -0
  903. data/vendor/bundle/gems/mail-2.4.4/lib/mail/network/delivery_methods/smtp.rb +153 -0
  904. data/vendor/bundle/gems/mail-2.4.4/lib/mail/network/delivery_methods/smtp_connection.rb +74 -0
  905. data/vendor/bundle/gems/mail-2.4.4/lib/mail/network/delivery_methods/test_mailer.rb +40 -0
  906. data/vendor/bundle/gems/mail-2.4.4/lib/mail/network/retriever_methods/base.rb +63 -0
  907. data/vendor/bundle/gems/mail-2.4.4/lib/mail/network/retriever_methods/imap.rb +160 -0
  908. data/vendor/bundle/gems/mail-2.4.4/lib/mail/network/retriever_methods/pop3.rb +140 -0
  909. data/vendor/bundle/gems/mail-2.4.4/lib/mail/network/retriever_methods/test_retriever.rb +47 -0
  910. data/vendor/bundle/gems/mail-2.4.4/lib/mail/network.rb +14 -0
  911. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/address_lists.rb +64 -0
  912. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/address_lists.treetop +19 -0
  913. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/content_disposition.rb +535 -0
  914. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/content_disposition.treetop +46 -0
  915. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/content_location.rb +139 -0
  916. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/content_location.treetop +20 -0
  917. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/content_transfer_encoding.rb +162 -0
  918. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/content_transfer_encoding.treetop +20 -0
  919. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/content_type.rb +967 -0
  920. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/content_type.treetop +68 -0
  921. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/date_time.rb +114 -0
  922. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/date_time.treetop +11 -0
  923. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/envelope_from.rb +194 -0
  924. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/envelope_from.treetop +32 -0
  925. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/message_ids.rb +45 -0
  926. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/message_ids.treetop +15 -0
  927. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/mime_version.rb +144 -0
  928. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/mime_version.treetop +19 -0
  929. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/phrase_lists.rb +45 -0
  930. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/phrase_lists.treetop +15 -0
  931. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/received.rb +71 -0
  932. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/received.treetop +11 -0
  933. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/rfc2045.rb +464 -0
  934. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/rfc2045.treetop +36 -0
  935. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/rfc2822.rb +5341 -0
  936. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/rfc2822.treetop +410 -0
  937. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/rfc2822_obsolete.rb +3768 -0
  938. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parsers/rfc2822_obsolete.treetop +241 -0
  939. data/vendor/bundle/gems/mail-2.4.4/lib/mail/part.rb +116 -0
  940. data/vendor/bundle/gems/mail-2.4.4/lib/mail/parts_list.rb +55 -0
  941. data/vendor/bundle/gems/mail-2.4.4/lib/mail/patterns.rb +35 -0
  942. data/vendor/bundle/gems/mail-2.4.4/lib/mail/utilities.rb +215 -0
  943. data/vendor/bundle/gems/mail-2.4.4/lib/mail/version.rb +24 -0
  944. data/vendor/bundle/gems/mail-2.4.4/lib/mail/version_specific/ruby_1_8.rb +98 -0
  945. data/vendor/bundle/gems/mail-2.4.4/lib/mail/version_specific/ruby_1_9.rb +113 -0
  946. data/vendor/bundle/gems/mail-2.4.4/lib/mail.rb +91 -0
  947. data/vendor/bundle/gems/mail-2.4.4/lib/tasks/corpus.rake +125 -0
  948. data/vendor/bundle/gems/mail-2.4.4/lib/tasks/treetop.rake +10 -0
  949. data/vendor/bundle/gems/mime-types-1.18/.gemtest +0 -0
  950. data/vendor/bundle/gems/mime-types-1.18/.gitignore +8 -0
  951. data/vendor/bundle/gems/mime-types-1.18/.hoerc +10 -0
  952. data/vendor/bundle/gems/mime-types-1.18/History.rdoc +132 -0
  953. data/vendor/bundle/gems/mime-types-1.18/Licence.rdoc +12 -0
  954. data/vendor/bundle/gems/mime-types-1.18/Manifest.txt +43 -0
  955. data/vendor/bundle/gems/mime-types-1.18/README.rdoc +19 -0
  956. data/vendor/bundle/gems/mime-types-1.18/Rakefile +198 -0
  957. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/application +943 -0
  958. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/application.mac +2 -0
  959. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/application.nonstandard +117 -0
  960. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/application.obsolete +40 -0
  961. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/audio +132 -0
  962. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/audio.nonstandard +10 -0
  963. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/audio.obsolete +1 -0
  964. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/image +43 -0
  965. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/image.nonstandard +17 -0
  966. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/image.obsolete +5 -0
  967. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/message +19 -0
  968. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/message.obsolete +1 -0
  969. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/model +15 -0
  970. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/multipart +14 -0
  971. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/multipart.nonstandard +1 -0
  972. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/multipart.obsolete +7 -0
  973. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/other.nonstandard +8 -0
  974. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/text +54 -0
  975. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/text.nonstandard +6 -0
  976. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/text.obsolete +7 -0
  977. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/text.vms +1 -0
  978. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/video +69 -0
  979. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/video.nonstandard +11 -0
  980. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types/video.obsolete +3 -0
  981. data/vendor/bundle/gems/mime-types-1.18/lib/mime/types.rb +853 -0
  982. data/vendor/bundle/gems/mime-types-1.18/mime-types.gemspec +57 -0
  983. data/vendor/bundle/gems/mime-types-1.18/test/test_mime_type.rb +318 -0
  984. data/vendor/bundle/gems/mime-types-1.18/test/test_mime_types.rb +99 -0
  985. data/vendor/bundle/gems/mime-types-1.18/type-lists/application.txt +951 -0
  986. data/vendor/bundle/gems/mime-types-1.18/type-lists/audio.txt +132 -0
  987. data/vendor/bundle/gems/mime-types-1.18/type-lists/image.txt +43 -0
  988. data/vendor/bundle/gems/mime-types-1.18/type-lists/message.txt +20 -0
  989. data/vendor/bundle/gems/mime-types-1.18/type-lists/model.txt +15 -0
  990. data/vendor/bundle/gems/mime-types-1.18/type-lists/multipart.txt +14 -0
  991. data/vendor/bundle/gems/mime-types-1.18/type-lists/text.txt +57 -0
  992. data/vendor/bundle/gems/mime-types-1.18/type-lists/video.txt +67 -0
  993. data/vendor/bundle/gems/polyglot-0.3.3/History.txt +72 -0
  994. data/vendor/bundle/gems/polyglot-0.3.3/License.txt +20 -0
  995. data/vendor/bundle/gems/polyglot-0.3.3/README.txt +87 -0
  996. data/vendor/bundle/gems/polyglot-0.3.3/Rakefile +42 -0
  997. data/vendor/bundle/gems/polyglot-0.3.3/lib/polyglot/version.rb +9 -0
  998. data/vendor/bundle/gems/polyglot-0.3.3/lib/polyglot.rb +74 -0
  999. data/vendor/bundle/gems/qu-0.1.4/.gitignore +4 -0
  1000. data/vendor/bundle/gems/qu-0.1.4/ChangeLog +53 -0
  1001. data/vendor/bundle/gems/qu-0.1.4/Gemfile +20 -0
  1002. data/vendor/bundle/gems/qu-0.1.4/Guardfile +12 -0
  1003. data/vendor/bundle/gems/qu-0.1.4/README.md +163 -0
  1004. data/vendor/bundle/gems/qu-0.1.4/Rakefile +50 -0
  1005. data/vendor/bundle/gems/qu-0.1.4/lib/qu/backend/base.rb +20 -0
  1006. data/vendor/bundle/gems/qu-0.1.4/lib/qu/backend/immediate.rb +18 -0
  1007. data/vendor/bundle/gems/qu-0.1.4/lib/qu/backend/spec.rb +288 -0
  1008. data/vendor/bundle/gems/qu-0.1.4/lib/qu/failure.rb +4 -0
  1009. data/vendor/bundle/gems/qu-0.1.4/lib/qu/logger.rb +20 -0
  1010. data/vendor/bundle/gems/qu-0.1.4/lib/qu/payload.rb +53 -0
  1011. data/vendor/bundle/gems/qu-0.1.4/lib/qu/railtie.rb +13 -0
  1012. data/vendor/bundle/gems/qu-0.1.4/lib/qu/tasks.rb +14 -0
  1013. data/vendor/bundle/gems/qu-0.1.4/lib/qu/version.rb +3 -0
  1014. data/vendor/bundle/gems/qu-0.1.4/lib/qu/worker.rb +77 -0
  1015. data/vendor/bundle/gems/qu-0.1.4/lib/qu-immediate.rb +4 -0
  1016. data/vendor/bundle/gems/qu-0.1.4/lib/qu.rb +45 -0
  1017. data/vendor/bundle/gems/qu-0.1.4/qu.gemspec +22 -0
  1018. data/vendor/bundle/gems/qu-0.1.4/spec/qu/backend/immediate_spec.rb +15 -0
  1019. data/vendor/bundle/gems/qu-0.1.4/spec/qu/payload_spec.rb +86 -0
  1020. data/vendor/bundle/gems/qu-0.1.4/spec/qu/worker_spec.rb +99 -0
  1021. data/vendor/bundle/gems/qu-0.1.4/spec/qu_spec.rb +37 -0
  1022. data/vendor/bundle/gems/qu-0.1.4/spec/spec_helper.rb +14 -0
  1023. data/vendor/bundle/gems/qu-mongo-0.1.4/lib/qu/backend/mongo.rb +156 -0
  1024. data/vendor/bundle/gems/qu-mongo-0.1.4/lib/qu-mongo.rb +4 -0
  1025. data/vendor/bundle/gems/redis-2.2.2/.gitignore +8 -0
  1026. data/vendor/bundle/gems/redis-2.2.2/CHANGELOG.md +49 -0
  1027. data/vendor/bundle/gems/redis-2.2.2/LICENSE +20 -0
  1028. data/vendor/bundle/gems/redis-2.2.2/README.md +208 -0
  1029. data/vendor/bundle/gems/redis-2.2.2/Rakefile +268 -0
  1030. data/vendor/bundle/gems/redis-2.2.2/TODO.md +4 -0
  1031. data/vendor/bundle/gems/redis-2.2.2/benchmarking/logging.rb +62 -0
  1032. data/vendor/bundle/gems/redis-2.2.2/benchmarking/pipeline.rb +51 -0
  1033. data/vendor/bundle/gems/redis-2.2.2/benchmarking/speed.rb +21 -0
  1034. data/vendor/bundle/gems/redis-2.2.2/benchmarking/suite.rb +24 -0
  1035. data/vendor/bundle/gems/redis-2.2.2/benchmarking/thread_safety.rb +38 -0
  1036. data/vendor/bundle/gems/redis-2.2.2/benchmarking/worker.rb +71 -0
  1037. data/vendor/bundle/gems/redis-2.2.2/examples/basic.rb +15 -0
  1038. data/vendor/bundle/gems/redis-2.2.2/examples/dist_redis.rb +43 -0
  1039. data/vendor/bundle/gems/redis-2.2.2/examples/incr-decr.rb +17 -0
  1040. data/vendor/bundle/gems/redis-2.2.2/examples/list.rb +26 -0
  1041. data/vendor/bundle/gems/redis-2.2.2/examples/pubsub.rb +31 -0
  1042. data/vendor/bundle/gems/redis-2.2.2/examples/sets.rb +36 -0
  1043. data/vendor/bundle/gems/redis-2.2.2/examples/unicorn/config.ru +3 -0
  1044. data/vendor/bundle/gems/redis-2.2.2/examples/unicorn/unicorn.rb +20 -0
  1045. data/vendor/bundle/gems/redis-2.2.2/lib/redis/client.rb +265 -0
  1046. data/vendor/bundle/gems/redis-2.2.2/lib/redis/compat.rb +21 -0
  1047. data/vendor/bundle/gems/redis-2.2.2/lib/redis/connection/command_helper.rb +45 -0
  1048. data/vendor/bundle/gems/redis-2.2.2/lib/redis/connection/hiredis.rb +49 -0
  1049. data/vendor/bundle/gems/redis-2.2.2/lib/redis/connection/registry.rb +12 -0
  1050. data/vendor/bundle/gems/redis-2.2.2/lib/redis/connection/ruby.rb +135 -0
  1051. data/vendor/bundle/gems/redis-2.2.2/lib/redis/connection/synchrony.rb +129 -0
  1052. data/vendor/bundle/gems/redis-2.2.2/lib/redis/connection.rb +9 -0
  1053. data/vendor/bundle/gems/redis-2.2.2/lib/redis/distributed.rb +694 -0
  1054. data/vendor/bundle/gems/redis-2.2.2/lib/redis/hash_ring.rb +131 -0
  1055. data/vendor/bundle/gems/redis-2.2.2/lib/redis/pipeline.rb +34 -0
  1056. data/vendor/bundle/gems/redis-2.2.2/lib/redis/subscribe.rb +94 -0
  1057. data/vendor/bundle/gems/redis-2.2.2/lib/redis/version.rb +3 -0
  1058. data/vendor/bundle/gems/redis-2.2.2/lib/redis.rb +1148 -0
  1059. data/vendor/bundle/gems/redis-2.2.2/redis.gemspec +24 -0
  1060. data/vendor/bundle/gems/redis-2.2.2/test/commands_on_hashes_test.rb +20 -0
  1061. data/vendor/bundle/gems/redis-2.2.2/test/commands_on_lists_test.rb +60 -0
  1062. data/vendor/bundle/gems/redis-2.2.2/test/commands_on_sets_test.rb +78 -0
  1063. data/vendor/bundle/gems/redis-2.2.2/test/commands_on_sorted_sets_test.rb +109 -0
  1064. data/vendor/bundle/gems/redis-2.2.2/test/commands_on_strings_test.rb +80 -0
  1065. data/vendor/bundle/gems/redis-2.2.2/test/commands_on_value_types_test.rb +88 -0
  1066. data/vendor/bundle/gems/redis-2.2.2/test/connection_handling_test.rb +88 -0
  1067. data/vendor/bundle/gems/redis-2.2.2/test/db/.gitignore +1 -0
  1068. data/vendor/bundle/gems/redis-2.2.2/test/distributed_blocking_commands_test.rb +53 -0
  1069. data/vendor/bundle/gems/redis-2.2.2/test/distributed_commands_on_hashes_test.rb +12 -0
  1070. data/vendor/bundle/gems/redis-2.2.2/test/distributed_commands_on_lists_test.rb +24 -0
  1071. data/vendor/bundle/gems/redis-2.2.2/test/distributed_commands_on_sets_test.rb +85 -0
  1072. data/vendor/bundle/gems/redis-2.2.2/test/distributed_commands_on_strings_test.rb +50 -0
  1073. data/vendor/bundle/gems/redis-2.2.2/test/distributed_commands_on_value_types_test.rb +73 -0
  1074. data/vendor/bundle/gems/redis-2.2.2/test/distributed_commands_requiring_clustering_test.rb +148 -0
  1075. data/vendor/bundle/gems/redis-2.2.2/test/distributed_connection_handling_test.rb +25 -0
  1076. data/vendor/bundle/gems/redis-2.2.2/test/distributed_internals_test.rb +27 -0
  1077. data/vendor/bundle/gems/redis-2.2.2/test/distributed_key_tags_test.rb +53 -0
  1078. data/vendor/bundle/gems/redis-2.2.2/test/distributed_persistence_control_commands_test.rb +24 -0
  1079. data/vendor/bundle/gems/redis-2.2.2/test/distributed_publish_subscribe_test.rb +101 -0
  1080. data/vendor/bundle/gems/redis-2.2.2/test/distributed_remote_server_control_commands_test.rb +43 -0
  1081. data/vendor/bundle/gems/redis-2.2.2/test/distributed_sorting_test.rb +21 -0
  1082. data/vendor/bundle/gems/redis-2.2.2/test/distributed_test.rb +59 -0
  1083. data/vendor/bundle/gems/redis-2.2.2/test/distributed_transactions_test.rb +34 -0
  1084. data/vendor/bundle/gems/redis-2.2.2/test/encoding_test.rb +16 -0
  1085. data/vendor/bundle/gems/redis-2.2.2/test/error_replies_test.rb +53 -0
  1086. data/vendor/bundle/gems/redis-2.2.2/test/helper.rb +145 -0
  1087. data/vendor/bundle/gems/redis-2.2.2/test/internals_test.rb +160 -0
  1088. data/vendor/bundle/gems/redis-2.2.2/test/lint/hashes.rb +126 -0
  1089. data/vendor/bundle/gems/redis-2.2.2/test/lint/internals.rb +37 -0
  1090. data/vendor/bundle/gems/redis-2.2.2/test/lint/lists.rb +93 -0
  1091. data/vendor/bundle/gems/redis-2.2.2/test/lint/sets.rb +66 -0
  1092. data/vendor/bundle/gems/redis-2.2.2/test/lint/sorted_sets.rb +167 -0
  1093. data/vendor/bundle/gems/redis-2.2.2/test/lint/strings.rb +137 -0
  1094. data/vendor/bundle/gems/redis-2.2.2/test/lint/value_types.rb +84 -0
  1095. data/vendor/bundle/gems/redis-2.2.2/test/persistence_control_commands_test.rb +22 -0
  1096. data/vendor/bundle/gems/redis-2.2.2/test/pipelining_commands_test.rb +123 -0
  1097. data/vendor/bundle/gems/redis-2.2.2/test/publish_subscribe_test.rb +158 -0
  1098. data/vendor/bundle/gems/redis-2.2.2/test/redis_mock.rb +80 -0
  1099. data/vendor/bundle/gems/redis-2.2.2/test/remote_server_control_commands_test.rb +82 -0
  1100. data/vendor/bundle/gems/redis-2.2.2/test/sorting_test.rb +44 -0
  1101. data/vendor/bundle/gems/redis-2.2.2/test/synchrony_driver.rb +57 -0
  1102. data/vendor/bundle/gems/redis-2.2.2/test/test.conf +8 -0
  1103. data/vendor/bundle/gems/redis-2.2.2/test/thread_safety_test.rb +30 -0
  1104. data/vendor/bundle/gems/redis-2.2.2/test/transactions_test.rb +100 -0
  1105. data/vendor/bundle/gems/redis-2.2.2/test/unknown_commands_test.rb +14 -0
  1106. data/vendor/bundle/gems/redis-2.2.2/test/url_param_test.rb +60 -0
  1107. data/vendor/bundle/gems/redis-namespace-1.0.3/LICENSE +20 -0
  1108. data/vendor/bundle/gems/redis-namespace-1.0.3/README.md +37 -0
  1109. data/vendor/bundle/gems/redis-namespace-1.0.3/Rakefile +7 -0
  1110. data/vendor/bundle/gems/redis-namespace-1.0.3/lib/redis/namespace.rb +248 -0
  1111. data/vendor/bundle/gems/redis-namespace-1.0.3/lib/redis-namespace.rb +1 -0
  1112. data/vendor/bundle/gems/redis-namespace-1.0.3/spec/redis_spec.rb +180 -0
  1113. data/vendor/bundle/gems/redis-namespace-1.0.3/spec/spec_helper.rb +18 -0
  1114. data/vendor/bundle/gems/resque-1.20.0/HISTORY.md +354 -0
  1115. data/vendor/bundle/gems/resque-1.20.0/LICENSE +20 -0
  1116. data/vendor/bundle/gems/resque-1.20.0/README.markdown +908 -0
  1117. data/vendor/bundle/gems/resque-1.20.0/Rakefile +78 -0
  1118. data/vendor/bundle/gems/resque-1.20.0/bin/resque +81 -0
  1119. data/vendor/bundle/gems/resque-1.20.0/bin/resque-web +27 -0
  1120. data/vendor/bundle/gems/resque-1.20.0/lib/resque/errors.rb +10 -0
  1121. data/vendor/bundle/gems/resque-1.20.0/lib/resque/failure/airbrake.rb +17 -0
  1122. data/vendor/bundle/gems/resque-1.20.0/lib/resque/failure/base.rb +64 -0
  1123. data/vendor/bundle/gems/resque-1.20.0/lib/resque/failure/hoptoad.rb +33 -0
  1124. data/vendor/bundle/gems/resque-1.20.0/lib/resque/failure/multiple.rb +54 -0
  1125. data/vendor/bundle/gems/resque-1.20.0/lib/resque/failure/redis.rb +51 -0
  1126. data/vendor/bundle/gems/resque-1.20.0/lib/resque/failure/thoughtbot.rb +33 -0
  1127. data/vendor/bundle/gems/resque-1.20.0/lib/resque/failure.rb +96 -0
  1128. data/vendor/bundle/gems/resque-1.20.0/lib/resque/helpers.rb +83 -0
  1129. data/vendor/bundle/gems/resque-1.20.0/lib/resque/job.rb +223 -0
  1130. data/vendor/bundle/gems/resque-1.20.0/lib/resque/plugin.rb +66 -0
  1131. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/public/favicon.ico +0 -0
  1132. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/public/idle.png +0 -0
  1133. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/public/jquery-1.3.2.min.js +19 -0
  1134. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/public/jquery.relatize_date.js +95 -0
  1135. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/public/poll.png +0 -0
  1136. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/public/ranger.js +73 -0
  1137. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/public/reset.css +44 -0
  1138. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/public/style.css +86 -0
  1139. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/public/working.png +0 -0
  1140. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/test_helper.rb +19 -0
  1141. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/views/error.erb +1 -0
  1142. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/views/failed.erb +67 -0
  1143. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/views/key_sets.erb +19 -0
  1144. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/views/key_string.erb +11 -0
  1145. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/views/layout.erb +44 -0
  1146. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/views/next_more.erb +10 -0
  1147. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/views/overview.erb +4 -0
  1148. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/views/queues.erb +49 -0
  1149. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/views/stats.erb +62 -0
  1150. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/views/workers.erb +109 -0
  1151. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server/views/working.erb +72 -0
  1152. data/vendor/bundle/gems/resque-1.20.0/lib/resque/server.rb +248 -0
  1153. data/vendor/bundle/gems/resque-1.20.0/lib/resque/stat.rb +53 -0
  1154. data/vendor/bundle/gems/resque-1.20.0/lib/resque/tasks.rb +61 -0
  1155. data/vendor/bundle/gems/resque-1.20.0/lib/resque/version.rb +3 -0
  1156. data/vendor/bundle/gems/resque-1.20.0/lib/resque/worker.rb +544 -0
  1157. data/vendor/bundle/gems/resque-1.20.0/lib/resque.rb +380 -0
  1158. data/vendor/bundle/gems/resque-1.20.0/lib/tasks/redis.rake +161 -0
  1159. data/vendor/bundle/gems/resque-1.20.0/lib/tasks/resque.rake +2 -0
  1160. data/vendor/bundle/gems/resque-1.20.0/test/airbrake_test.rb +27 -0
  1161. data/vendor/bundle/gems/resque-1.20.0/test/hoptoad_test.rb +26 -0
  1162. data/vendor/bundle/gems/resque-1.20.0/test/job_hooks_test.rb +423 -0
  1163. data/vendor/bundle/gems/resque-1.20.0/test/job_plugins_test.rb +230 -0
  1164. data/vendor/bundle/gems/resque-1.20.0/test/plugin_test.rb +116 -0
  1165. data/vendor/bundle/gems/resque-1.20.0/test/redis-test-cluster.conf +115 -0
  1166. data/vendor/bundle/gems/resque-1.20.0/test/redis-test.conf +115 -0
  1167. data/vendor/bundle/gems/resque-1.20.0/test/resque-web_test.rb +59 -0
  1168. data/vendor/bundle/gems/resque-1.20.0/test/resque_test.rb +278 -0
  1169. data/vendor/bundle/gems/resque-1.20.0/test/test_helper.rb +158 -0
  1170. data/vendor/bundle/gems/resque-1.20.0/test/worker_test.rb +405 -0
  1171. data/vendor/bundle/gems/resque-mongo-1.9.8.1/HISTORY.md +202 -0
  1172. data/vendor/bundle/gems/resque-mongo-1.9.8.1/LICENSE +20 -0
  1173. data/vendor/bundle/gems/resque-mongo-1.9.8.1/README.markdown +814 -0
  1174. data/vendor/bundle/gems/resque-mongo-1.9.8.1/Rakefile +60 -0
  1175. data/vendor/bundle/gems/resque-mongo-1.9.8.1/bin/resque +57 -0
  1176. data/vendor/bundle/gems/resque-mongo-1.9.8.1/bin/resque-web +23 -0
  1177. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/errors.rb +10 -0
  1178. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/failure/base.rb +61 -0
  1179. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/failure/hoptoad.rb +132 -0
  1180. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/failure/mongo.rb +41 -0
  1181. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/failure/multiple.rb +50 -0
  1182. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/failure.rb +66 -0
  1183. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/helpers.rb +71 -0
  1184. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/job.rb +209 -0
  1185. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/plugin.rb +46 -0
  1186. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/public/idle.png +0 -0
  1187. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/public/jquery-1.3.2.min.js +19 -0
  1188. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/public/jquery.relatize_date.js +95 -0
  1189. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/public/poll.png +0 -0
  1190. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/public/ranger.js +67 -0
  1191. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/public/reset.css +48 -0
  1192. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/public/style.css +82 -0
  1193. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/public/working.png +0 -0
  1194. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/test_helper.rb +19 -0
  1195. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/views/error.erb +1 -0
  1196. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/views/failed.erb +53 -0
  1197. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/views/key_sets.erb +20 -0
  1198. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/views/key_string.erb +11 -0
  1199. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/views/layout.erb +38 -0
  1200. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/views/next_more.erb +10 -0
  1201. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/views/overview.erb +4 -0
  1202. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/views/queues.erb +49 -0
  1203. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/views/stats.erb +62 -0
  1204. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/views/workers.erb +78 -0
  1205. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server/views/working.erb +69 -0
  1206. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/server.rb +201 -0
  1207. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/stat.rb +55 -0
  1208. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/tasks.rb +39 -0
  1209. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/version.rb +3 -0
  1210. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque/worker.rb +481 -0
  1211. data/vendor/bundle/gems/resque-mongo-1.9.8.1/lib/resque.rb +316 -0
  1212. data/vendor/bundle/gems/resque-mongo-1.9.8.1/tasks/redis.rake +159 -0
  1213. data/vendor/bundle/gems/resque-mongo-1.9.8.1/tasks/resque.rake +2 -0
  1214. data/vendor/bundle/gems/resque-mongo-1.9.8.1/test/dump.rdb +0 -0
  1215. data/vendor/bundle/gems/resque-mongo-1.9.8.1/test/job_hooks_test.rb +302 -0
  1216. data/vendor/bundle/gems/resque-mongo-1.9.8.1/test/job_plugins_test.rb +230 -0
  1217. data/vendor/bundle/gems/resque-mongo-1.9.8.1/test/plugin_test.rb +116 -0
  1218. data/vendor/bundle/gems/resque-mongo-1.9.8.1/test/redis-test.conf +115 -0
  1219. data/vendor/bundle/gems/resque-mongo-1.9.8.1/test/resque-mongo_benchmark.rb +62 -0
  1220. data/vendor/bundle/gems/resque-mongo-1.9.8.1/test/resque-web_test.rb +34 -0
  1221. data/vendor/bundle/gems/resque-mongo-1.9.8.1/test/resque_test.rb +225 -0
  1222. data/vendor/bundle/gems/resque-mongo-1.9.8.1/test/test_helper.rb +102 -0
  1223. data/vendor/bundle/gems/resque-mongo-1.9.8.1/test/worker_test.rb +302 -0
  1224. data/vendor/bundle/gems/slim-1.2.1/.gemtest +0 -0
  1225. data/vendor/bundle/gems/slim-1.2.1/.gitignore +17 -0
  1226. data/vendor/bundle/gems/slim-1.2.1/.travis.yml +27 -0
  1227. data/vendor/bundle/gems/slim-1.2.1/.yardopts +2 -0
  1228. data/vendor/bundle/gems/slim-1.2.1/CHANGES +219 -0
  1229. data/vendor/bundle/gems/slim-1.2.1/Gemfile +25 -0
  1230. data/vendor/bundle/gems/slim-1.2.1/LICENSE +21 -0
  1231. data/vendor/bundle/gems/slim-1.2.1/README.md +411 -0
  1232. data/vendor/bundle/gems/slim-1.2.1/Rakefile +57 -0
  1233. data/vendor/bundle/gems/slim-1.2.1/benchmarks/context.rb +11 -0
  1234. data/vendor/bundle/gems/slim-1.2.1/benchmarks/profile-parser.rb +10 -0
  1235. data/vendor/bundle/gems/slim-1.2.1/benchmarks/profile-render.rb +12 -0
  1236. data/vendor/bundle/gems/slim-1.2.1/benchmarks/run-benchmarks.rb +112 -0
  1237. data/vendor/bundle/gems/slim-1.2.1/benchmarks/view.erb +23 -0
  1238. data/vendor/bundle/gems/slim-1.2.1/benchmarks/view.haml +18 -0
  1239. data/vendor/bundle/gems/slim-1.2.1/benchmarks/view.slim +17 -0
  1240. data/vendor/bundle/gems/slim-1.2.1/bin/slimrb +7 -0
  1241. data/vendor/bundle/gems/slim-1.2.1/lib/slim/command.rb +100 -0
  1242. data/vendor/bundle/gems/slim-1.2.1/lib/slim/compiler.rb +199 -0
  1243. data/vendor/bundle/gems/slim-1.2.1/lib/slim/embedded_engine.rb +203 -0
  1244. data/vendor/bundle/gems/slim-1.2.1/lib/slim/end_inserter.rb +61 -0
  1245. data/vendor/bundle/gems/slim-1.2.1/lib/slim/engine.rb +79 -0
  1246. data/vendor/bundle/gems/slim-1.2.1/lib/slim/filter.rb +41 -0
  1247. data/vendor/bundle/gems/slim-1.2.1/lib/slim/grammar.rb +23 -0
  1248. data/vendor/bundle/gems/slim-1.2.1/lib/slim/interpolation.rb +55 -0
  1249. data/vendor/bundle/gems/slim-1.2.1/lib/slim/parser.rb +462 -0
  1250. data/vendor/bundle/gems/slim-1.2.1/lib/slim/sections.rb +97 -0
  1251. data/vendor/bundle/gems/slim-1.2.1/lib/slim/template.rb +19 -0
  1252. data/vendor/bundle/gems/slim-1.2.1/lib/slim/version.rb +5 -0
  1253. data/vendor/bundle/gems/slim-1.2.1/lib/slim/wrapper.rb +57 -0
  1254. data/vendor/bundle/gems/slim-1.2.1/lib/slim.rb +14 -0
  1255. data/vendor/bundle/gems/slim-1.2.1/slim.gemspec +31 -0
  1256. data/vendor/bundle/gems/slim-1.2.1/test/rails/Rakefile +7 -0
  1257. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/controllers/application_controller.rb +3 -0
  1258. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/controllers/parents_controller.rb +84 -0
  1259. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/controllers/slim_controller.rb +32 -0
  1260. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/helpers/application_helper.rb +2 -0
  1261. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/models/child.rb +3 -0
  1262. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/models/parent.rb +4 -0
  1263. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/layouts/application.html.slim +10 -0
  1264. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/parents/_form.html.slim +7 -0
  1265. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/parents/edit.html.slim +1 -0
  1266. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/parents/new.html.slim +1 -0
  1267. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/parents/show.html.slim +5 -0
  1268. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/slim/_partial.html.slim +1 -0
  1269. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/slim/content_for.html.slim +7 -0
  1270. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/slim/erb.html.erb +1 -0
  1271. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/slim/integers.html.slim +1 -0
  1272. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/slim/nil.html.slim +1 -0
  1273. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/slim/no_layout.html.slim +1 -0
  1274. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/slim/normal.html.slim +1 -0
  1275. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/slim/partial.html.slim +2 -0
  1276. data/vendor/bundle/gems/slim-1.2.1/test/rails/app/views/slim/variables.html.slim +1 -0
  1277. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/application.rb +44 -0
  1278. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/boot.rb +10 -0
  1279. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/database.yml +4 -0
  1280. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/environment.rb +5 -0
  1281. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/environments/development.rb +26 -0
  1282. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/environments/production.rb +49 -0
  1283. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/environments/test.rb +35 -0
  1284. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/initializers/backtrace_silencers.rb +7 -0
  1285. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/initializers/inflections.rb +10 -0
  1286. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/initializers/mime_types.rb +5 -0
  1287. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/initializers/secret_token.rb +7 -0
  1288. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/initializers/session_store.rb +8 -0
  1289. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/locales/en.yml +5 -0
  1290. data/vendor/bundle/gems/slim-1.2.1/test/rails/config/routes.rb +60 -0
  1291. data/vendor/bundle/gems/slim-1.2.1/test/rails/config.ru +4 -0
  1292. data/vendor/bundle/gems/slim-1.2.1/test/rails/db/migrate/20101220223037_parents_and_children.rb +17 -0
  1293. data/vendor/bundle/gems/slim-1.2.1/test/rails/script/rails +6 -0
  1294. data/vendor/bundle/gems/slim-1.2.1/test/rails/test/helper.rb +10 -0
  1295. data/vendor/bundle/gems/slim-1.2.1/test/rails/test/test_slim.rb +71 -0
  1296. data/vendor/bundle/gems/slim-1.2.1/test/slim/helper.rb +206 -0
  1297. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_chain_manipulation.rb +42 -0
  1298. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_code_blocks.rb +68 -0
  1299. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_code_escaping.rb +53 -0
  1300. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_code_evaluation.rb +289 -0
  1301. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_code_output.rb +168 -0
  1302. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_code_structure.rb +95 -0
  1303. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_embedded_engines.rb +145 -0
  1304. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_encoding.rb +9 -0
  1305. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_html_escaping.rb +40 -0
  1306. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_html_structure.rb +579 -0
  1307. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_parser_errors.rb +143 -0
  1308. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_pretty.rb +75 -0
  1309. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_ruby_errors.rb +210 -0
  1310. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_sections.rb +90 -0
  1311. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_slim_template.rb +118 -0
  1312. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_text_interpolation.rb +79 -0
  1313. data/vendor/bundle/gems/slim-1.2.1/test/slim/test_wrapper.rb +39 -0
  1314. data/vendor/bundle/gems/treetop-1.4.10/LICENSE +19 -0
  1315. data/vendor/bundle/gems/treetop-1.4.10/README.md +188 -0
  1316. data/vendor/bundle/gems/treetop-1.4.10/Rakefile +60 -0
  1317. data/vendor/bundle/gems/treetop-1.4.10/bin/tt +112 -0
  1318. data/vendor/bundle/gems/treetop-1.4.10/doc/contributing_and_planned_features.markdown +102 -0
  1319. data/vendor/bundle/gems/treetop-1.4.10/doc/grammar_composition.markdown +65 -0
  1320. data/vendor/bundle/gems/treetop-1.4.10/doc/index.markdown +88 -0
  1321. data/vendor/bundle/gems/treetop-1.4.10/doc/pitfalls_and_advanced_techniques.markdown +51 -0
  1322. data/vendor/bundle/gems/treetop-1.4.10/doc/semantic_interpretation.markdown +218 -0
  1323. data/vendor/bundle/gems/treetop-1.4.10/doc/site/contribute.html +124 -0
  1324. data/vendor/bundle/gems/treetop-1.4.10/doc/site/images/bottom_background.png +0 -0
  1325. data/vendor/bundle/gems/treetop-1.4.10/doc/site/images/middle_background.png +0 -0
  1326. data/vendor/bundle/gems/treetop-1.4.10/doc/site/images/paren_language_output.png +0 -0
  1327. data/vendor/bundle/gems/treetop-1.4.10/doc/site/images/pivotal.gif +0 -0
  1328. data/vendor/bundle/gems/treetop-1.4.10/doc/site/images/top_background.png +0 -0
  1329. data/vendor/bundle/gems/treetop-1.4.10/doc/site/index.html +102 -0
  1330. data/vendor/bundle/gems/treetop-1.4.10/doc/site/pitfalls_and_advanced_techniques.html +68 -0
  1331. data/vendor/bundle/gems/treetop-1.4.10/doc/site/robots.txt +5 -0
  1332. data/vendor/bundle/gems/treetop-1.4.10/doc/site/screen.css +134 -0
  1333. data/vendor/bundle/gems/treetop-1.4.10/doc/site/semantic_interpretation.html +245 -0
  1334. data/vendor/bundle/gems/treetop-1.4.10/doc/site/syntactic_recognition.html +278 -0
  1335. data/vendor/bundle/gems/treetop-1.4.10/doc/site/using_in_ruby.html +123 -0
  1336. data/vendor/bundle/gems/treetop-1.4.10/doc/site.rb +112 -0
  1337. data/vendor/bundle/gems/treetop-1.4.10/doc/sitegen.rb +65 -0
  1338. data/vendor/bundle/gems/treetop-1.4.10/doc/syntactic_recognition.markdown +215 -0
  1339. data/vendor/bundle/gems/treetop-1.4.10/doc/using_in_ruby.markdown +105 -0
  1340. data/vendor/bundle/gems/treetop-1.4.10/examples/lambda_calculus/arithmetic.rb +551 -0
  1341. data/vendor/bundle/gems/treetop-1.4.10/examples/lambda_calculus/arithmetic.treetop +98 -0
  1342. data/vendor/bundle/gems/treetop-1.4.10/examples/lambda_calculus/arithmetic_node_classes.rb +9 -0
  1343. data/vendor/bundle/gems/treetop-1.4.10/examples/lambda_calculus/arithmetic_test.rb +58 -0
  1344. data/vendor/bundle/gems/treetop-1.4.10/examples/lambda_calculus/lambda_calculus +0 -0
  1345. data/vendor/bundle/gems/treetop-1.4.10/examples/lambda_calculus/lambda_calculus.rb +718 -0
  1346. data/vendor/bundle/gems/treetop-1.4.10/examples/lambda_calculus/lambda_calculus.treetop +132 -0
  1347. data/vendor/bundle/gems/treetop-1.4.10/examples/lambda_calculus/lambda_calculus_node_classes.rb +5 -0
  1348. data/vendor/bundle/gems/treetop-1.4.10/examples/lambda_calculus/lambda_calculus_test.rb +89 -0
  1349. data/vendor/bundle/gems/treetop-1.4.10/examples/lambda_calculus/test_helper.rb +18 -0
  1350. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/bootstrap_gen_1_metagrammar.rb +42 -0
  1351. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/grammar_compiler.rb +44 -0
  1352. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/lexical_address_space.rb +17 -0
  1353. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/metagrammar.rb +3550 -0
  1354. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/metagrammar.treetop +448 -0
  1355. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/anything_symbol.rb +18 -0
  1356. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/atomic_expression.rb +14 -0
  1357. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/character_class.rb +28 -0
  1358. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/choice.rb +31 -0
  1359. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/declaration_sequence.rb +24 -0
  1360. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/grammar.rb +28 -0
  1361. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/inline_module.rb +27 -0
  1362. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/nonterminal.rb +13 -0
  1363. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/optional.rb +19 -0
  1364. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/parenthesized_expression.rb +9 -0
  1365. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/parsing_expression.rb +146 -0
  1366. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/parsing_rule.rb +58 -0
  1367. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/predicate.rb +45 -0
  1368. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/predicate_block.rb +16 -0
  1369. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/repetition.rb +89 -0
  1370. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/sequence.rb +71 -0
  1371. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/terminal.rb +20 -0
  1372. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/transient_prefix.rb +9 -0
  1373. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes/treetop_file.rb +9 -0
  1374. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/node_classes.rb +19 -0
  1375. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler/ruby_builder.rb +115 -0
  1376. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/compiler.rb +7 -0
  1377. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/polyglot.rb +9 -0
  1378. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/ruby_extensions/string.rb +42 -0
  1379. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/ruby_extensions.rb +1 -0
  1380. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/runtime/compiled_parser.rb +115 -0
  1381. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/runtime/interval_skip_list/head_node.rb +15 -0
  1382. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/runtime/interval_skip_list/interval_skip_list.rb +200 -0
  1383. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/runtime/interval_skip_list/node.rb +164 -0
  1384. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/runtime/interval_skip_list.rb +3 -0
  1385. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/runtime/syntax_node.rb +114 -0
  1386. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/runtime/terminal_parse_failure.rb +16 -0
  1387. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/runtime/terminal_syntax_node.rb +17 -0
  1388. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/runtime.rb +6 -0
  1389. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop/version.rb +9 -0
  1390. data/vendor/bundle/gems/treetop-1.4.10/lib/treetop.rb +3 -0
  1391. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/and_predicate_spec.rb +36 -0
  1392. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/anything_symbol_spec.rb +44 -0
  1393. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/character_class_spec.rb +276 -0
  1394. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/choice_spec.rb +80 -0
  1395. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/circular_compilation_spec.rb +30 -0
  1396. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/failure_propagation_functional_spec.rb +21 -0
  1397. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/grammar_compiler_spec.rb +91 -0
  1398. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/grammar_spec.rb +41 -0
  1399. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/multibyte_chars_spec.rb +39 -0
  1400. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/namespace_spec.rb +42 -0
  1401. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/nonterminal_symbol_spec.rb +40 -0
  1402. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/not_predicate_spec.rb +38 -0
  1403. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/occurrence_range_spec.rb +189 -0
  1404. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/one_or_more_spec.rb +35 -0
  1405. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/optional_spec.rb +37 -0
  1406. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/parenthesized_expression_spec.rb +19 -0
  1407. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/parsing_rule_spec.rb +61 -0
  1408. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/repeated_subrule_spec.rb +29 -0
  1409. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/semantic_predicate_spec.rb +175 -0
  1410. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/sequence_spec.rb +115 -0
  1411. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/terminal_spec.rb +81 -0
  1412. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/terminal_symbol_spec.rb +37 -0
  1413. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/test_grammar.treetop +7 -0
  1414. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/test_grammar.tt +7 -0
  1415. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/test_grammar_do.treetop +7 -0
  1416. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/tt_compiler_spec.rb +217 -0
  1417. data/vendor/bundle/gems/treetop-1.4.10/spec/compiler/zero_or_more_spec.rb +56 -0
  1418. data/vendor/bundle/gems/treetop-1.4.10/spec/composition/a.treetop +11 -0
  1419. data/vendor/bundle/gems/treetop-1.4.10/spec/composition/b.treetop +11 -0
  1420. data/vendor/bundle/gems/treetop-1.4.10/spec/composition/c.treetop +10 -0
  1421. data/vendor/bundle/gems/treetop-1.4.10/spec/composition/d.treetop +10 -0
  1422. data/vendor/bundle/gems/treetop-1.4.10/spec/composition/f.treetop +17 -0
  1423. data/vendor/bundle/gems/treetop-1.4.10/spec/composition/grammar_composition_spec.rb +40 -0
  1424. data/vendor/bundle/gems/treetop-1.4.10/spec/composition/subfolder/e_includes_c.treetop +15 -0
  1425. data/vendor/bundle/gems/treetop-1.4.10/spec/ruby_extensions/string_spec.rb +32 -0
  1426. data/vendor/bundle/gems/treetop-1.4.10/spec/runtime/compiled_parser_spec.rb +123 -0
  1427. data/vendor/bundle/gems/treetop-1.4.10/spec/runtime/interval_skip_list/delete_spec.rb +147 -0
  1428. data/vendor/bundle/gems/treetop-1.4.10/spec/runtime/interval_skip_list/expire_range_spec.rb +349 -0
  1429. data/vendor/bundle/gems/treetop-1.4.10/spec/runtime/interval_skip_list/insert_and_delete_node_spec.rb +385 -0
  1430. data/vendor/bundle/gems/treetop-1.4.10/spec/runtime/interval_skip_list/insert_spec.rb +660 -0
  1431. data/vendor/bundle/gems/treetop-1.4.10/spec/runtime/interval_skip_list/interval_skip_list_spec.graffle +6175 -0
  1432. data/vendor/bundle/gems/treetop-1.4.10/spec/runtime/interval_skip_list/interval_skip_list_spec.rb +58 -0
  1433. data/vendor/bundle/gems/treetop-1.4.10/spec/runtime/interval_skip_list/palindromic_fixture.rb +35 -0
  1434. data/vendor/bundle/gems/treetop-1.4.10/spec/runtime/interval_skip_list/palindromic_fixture_spec.rb +163 -0
  1435. data/vendor/bundle/gems/treetop-1.4.10/spec/runtime/interval_skip_list/spec_helper.rb +91 -0
  1436. data/vendor/bundle/gems/treetop-1.4.10/spec/runtime/syntax_node_spec.rb +77 -0
  1437. data/vendor/bundle/gems/treetop-1.4.10/spec/spec_helper.rb +114 -0
  1438. data/vendor/bundle/gems/treetop-1.4.10/treetop.gemspec +186 -0
  1439. data/vendor/bundle/gems/vegas-0.1.11/History.txt +69 -0
  1440. data/vendor/bundle/gems/vegas-0.1.11/LICENSE +22 -0
  1441. data/vendor/bundle/gems/vegas-0.1.11/README.rdoc +47 -0
  1442. data/vendor/bundle/gems/vegas-0.1.11/Rakefile +47 -0
  1443. data/vendor/bundle/gems/vegas-0.1.11/lib/vegas/runner.rb +404 -0
  1444. data/vendor/bundle/gems/vegas-0.1.11/lib/vegas.rb +16 -0
  1445. data/vendor/bundle/gems/vegas-0.1.11/test/apps.rb +26 -0
  1446. data/vendor/bundle/gems/vegas-0.1.11/test/test_app/bin/test_app +9 -0
  1447. data/vendor/bundle/gems/vegas-0.1.11/test/test_app/bin/test_rack_app +12 -0
  1448. data/vendor/bundle/gems/vegas-0.1.11/test/test_app/test_app.rb +10 -0
  1449. data/vendor/bundle/gems/vegas-0.1.11/test/test_helper.rb +57 -0
  1450. data/vendor/bundle/gems/vegas-0.1.11/test/test_vegas_runner.rb +191 -0
  1451. data/vendor/bundle/gems/vegas-0.1.11/vegas.gemspec +61 -0
  1452. data/vendor/bundle/specifications/carrierwave-0.6.2.gemspec +65 -0
  1453. data/vendor/bundle/specifications/carrierwave-mongoid-0.2.1.gemspec +44 -0
  1454. data/vendor/bundle/specifications/coffee-script-source-1.3.3.gemspec +26 -0
  1455. data/vendor/bundle/specifications/dragonfly-0.9.12.gemspec +85 -0
  1456. data/vendor/bundle/specifications/execjs-1.4.0.gemspec +31 -0
  1457. data/vendor/bundle/specifications/haml-3.1.6.gemspec +34 -0
  1458. data/vendor/bundle/specifications/json-1.7.3.gemspec +36 -0
  1459. data/vendor/bundle/specifications/mail-2.4.4.gemspec +36 -0
  1460. data/vendor/bundle/specifications/mime-types-1.18.gemspec +56 -0
  1461. data/vendor/bundle/specifications/polyglot-0.3.3.gemspec +28 -0
  1462. data/vendor/bundle/specifications/qu-0.1.4.gemspec +28 -0
  1463. data/vendor/bundle/specifications/qu-mongo-0.1.4.gemspec +34 -0
  1464. data/vendor/bundle/specifications/redis-2.2.2.gemspec +27 -0
  1465. data/vendor/bundle/specifications/redis-namespace-1.0.3.gemspec +28 -0
  1466. data/vendor/bundle/specifications/resque-1.20.0.gemspec +41 -0
  1467. data/vendor/bundle/specifications/resque-mongo-1.9.8.1.gemspec +41 -0
  1468. data/vendor/bundle/specifications/slim-1.2.1.gemspec +54 -0
  1469. data/vendor/bundle/specifications/treetop-1.4.10.gemspec +53 -0
  1470. data/vendor/bundle/specifications/vegas-0.1.11.gemspec +40 -0
  1471. metadata +1495 -9
  1472. data/lib/classiccms/public/uploadify.swf +0 -0
  1473. data/lib/classiccms/scaffold/models/Article.rb +0 -3
  1474. data/lib/classiccms/scaffold/rackup.ru +0 -15
@@ -0,0 +1,2058 @@
1
+ # encoding: utf-8
2
+ require "yaml"
3
+
4
+ module Mail
5
+ # The Message class provides a single point of access to all things to do with an
6
+ # email message.
7
+ #
8
+ # You create a new email message by calling the Mail::Message.new method, or just
9
+ # Mail.new
10
+ #
11
+ # A Message object by default has the following objects inside it:
12
+ #
13
+ # * A Header object which contains all information and settings of the header of the email
14
+ # * Body object which contains all parts of the email that are not part of the header, this
15
+ # includes any attachments, body text, MIME parts etc.
16
+ #
17
+ # ==Per RFC2822
18
+ #
19
+ # 2.1. General Description
20
+ #
21
+ # At the most basic level, a message is a series of characters. A
22
+ # message that is conformant with this standard is comprised of
23
+ # characters with values in the range 1 through 127 and interpreted as
24
+ # US-ASCII characters [ASCII]. For brevity, this document sometimes
25
+ # refers to this range of characters as simply "US-ASCII characters".
26
+ #
27
+ # Note: This standard specifies that messages are made up of characters
28
+ # in the US-ASCII range of 1 through 127. There are other documents,
29
+ # specifically the MIME document series [RFC2045, RFC2046, RFC2047,
30
+ # RFC2048, RFC2049], that extend this standard to allow for values
31
+ # outside of that range. Discussion of those mechanisms is not within
32
+ # the scope of this standard.
33
+ #
34
+ # Messages are divided into lines of characters. A line is a series of
35
+ # characters that is delimited with the two characters carriage-return
36
+ # and line-feed; that is, the carriage return (CR) character (ASCII
37
+ # value 13) followed immediately by the line feed (LF) character (ASCII
38
+ # value 10). (The carriage-return/line-feed pair is usually written in
39
+ # this document as "CRLF".)
40
+ #
41
+ # A message consists of header fields (collectively called "the header
42
+ # of the message") followed, optionally, by a body. The header is a
43
+ # sequence of lines of characters with special syntax as defined in
44
+ # this standard. The body is simply a sequence of characters that
45
+ # follows the header and is separated from the header by an empty line
46
+ # (i.e., a line with nothing preceding the CRLF).
47
+ class Message
48
+
49
+ include Patterns
50
+ include Utilities
51
+
52
+ # ==Making an email
53
+ #
54
+ # You can make an new mail object via a block, passing a string, file or direct assignment.
55
+ #
56
+ # ===Making an email via a block
57
+ #
58
+ # mail = Mail.new do
59
+ # from 'mikel@test.lindsaar.net'
60
+ # to 'you@test.lindsaar.net'
61
+ # subject 'This is a test email'
62
+ # body File.read('body.txt')
63
+ # end
64
+ #
65
+ # mail.to_s #=> "From: mikel@test.lindsaar.net\r\nTo: you@...
66
+ #
67
+ # ===Making an email via passing a string
68
+ #
69
+ # mail = Mail.new("To: mikel@test.lindsaar.net\r\nSubject: Hello\r\n\r\nHi there!")
70
+ # mail.body.to_s #=> 'Hi there!'
71
+ # mail.subject #=> 'Hello'
72
+ # mail.to #=> 'mikel@test.lindsaar.net'
73
+ #
74
+ # ===Making an email from a file
75
+ #
76
+ # mail = Mail.read('path/to/file.eml')
77
+ # mail.body.to_s #=> 'Hi there!'
78
+ # mail.subject #=> 'Hello'
79
+ # mail.to #=> 'mikel@test.lindsaar.net'
80
+ #
81
+ # ===Making an email via assignment
82
+ #
83
+ # You can assign values to a mail object via four approaches:
84
+ #
85
+ # * Message#field_name=(value)
86
+ # * Message#field_name(value)
87
+ # * Message#['field_name']=(value)
88
+ # * Message#[:field_name]=(value)
89
+ #
90
+ # Examples:
91
+ #
92
+ # mail = Mail.new
93
+ # mail['from'] = 'mikel@test.lindsaar.net'
94
+ # mail[:to] = 'you@test.lindsaar.net'
95
+ # mail.subject 'This is a test email'
96
+ # mail.body = 'This is a body'
97
+ #
98
+ # mail.to_s #=> "From: mikel@test.lindsaar.net\r\nTo: you@...
99
+ #
100
+ def initialize(*args, &block)
101
+ @body = nil
102
+ @body_raw = nil
103
+ @separate_parts = false
104
+ @text_part = nil
105
+ @html_part = nil
106
+ @errors = nil
107
+ @header = nil
108
+ @charset = 'UTF-8'
109
+ @defaulted_charset = true
110
+
111
+ @perform_deliveries = true
112
+ @raise_delivery_errors = true
113
+
114
+ @delivery_handler = nil
115
+
116
+ @delivery_method = Mail.delivery_method.dup
117
+
118
+ @transport_encoding = Mail::Encodings.get_encoding('7bit')
119
+
120
+ @mark_for_delete = false
121
+
122
+ if args.flatten.first.respond_to?(:each_pair)
123
+ init_with_hash(args.flatten.first)
124
+ else
125
+ init_with_string(args.flatten[0].to_s.strip)
126
+ end
127
+
128
+ if block_given?
129
+ instance_eval(&block)
130
+ end
131
+
132
+ self
133
+ end
134
+
135
+ # If you assign a delivery handler, mail will call :deliver_mail on the
136
+ # object you assign to delivery_handler, it will pass itself as the
137
+ # single argument.
138
+ #
139
+ # If you define a delivery_handler, then you are responsible for the
140
+ # following actions in the delivery cycle:
141
+ #
142
+ # * Appending the mail object to Mail.deliveries as you see fit.
143
+ # * Checking the mail.perform_deliveries flag to decide if you should
144
+ # actually call :deliver! the mail object or not.
145
+ # * Checking the mail.raise_delivery_errors flag to decide if you
146
+ # should raise delivery errors if they occur.
147
+ # * Actually calling :deliver! (with the bang) on the mail object to
148
+ # get it to deliver itself.
149
+ #
150
+ # A simplest implementation of a delivery_handler would be
151
+ #
152
+ # class MyObject
153
+ #
154
+ # def initialize
155
+ # @mail = Mail.new('To: mikel@test.lindsaar.net')
156
+ # @mail.delivery_handler = self
157
+ # end
158
+ #
159
+ # attr_accessor :mail
160
+ #
161
+ # def deliver_mail(mail)
162
+ # yield
163
+ # end
164
+ # end
165
+ #
166
+ # Then doing:
167
+ #
168
+ # obj = MyObject.new
169
+ # obj.mail.deliver
170
+ #
171
+ # Would cause Mail to call obj.deliver_mail passing itself as a parameter,
172
+ # which then can just yield and let Mail do it's own private do_delivery
173
+ # method.
174
+ attr_accessor :delivery_handler
175
+
176
+ # If set to false, mail will go through the motions of doing a delivery,
177
+ # but not actually call the delivery method or append the mail object to
178
+ # the Mail.deliveries collection. Useful for testing.
179
+ #
180
+ # Mail.deliveries.size #=> 0
181
+ # mail.delivery_method :smtp
182
+ # mail.perform_deliveries = false
183
+ # mail.deliver # Mail::SMTP not called here
184
+ # Mail.deliveries.size #=> 0
185
+ #
186
+ # If you want to test and query the Mail.deliveries collection to see what
187
+ # mail you sent, you should set perform_deliveries to true and use
188
+ # the :test mail delivery_method:
189
+ #
190
+ # Mail.deliveries.size #=> 0
191
+ # mail.delivery_method :test
192
+ # mail.perform_deliveries = true
193
+ # mail.deliver
194
+ # Mail.deliveries.size #=> 1
195
+ #
196
+ # This setting is ignored by mail (though still available as a flag) if you
197
+ # define a delivery_handler
198
+ attr_accessor :perform_deliveries
199
+
200
+ # If set to false, mail will silently catch and ignore any exceptions
201
+ # raised through attempting to deliver an email.
202
+ #
203
+ # This setting is ignored by mail (though still available as a flag) if you
204
+ # define a delivery_handler
205
+ attr_accessor :raise_delivery_errors
206
+
207
+ def register_for_delivery_notification(observer)
208
+ STDERR.puts("Message#register_for_delivery_notification is deprecated, please call Mail.register_observer instead")
209
+ Mail.register_observer(observer)
210
+ end
211
+
212
+ def inform_observers
213
+ Mail.inform_observers(self)
214
+ end
215
+
216
+ def inform_interceptors
217
+ Mail.inform_interceptors(self)
218
+ end
219
+
220
+ # Delivers an mail object.
221
+ #
222
+ # Examples:
223
+ #
224
+ # mail = Mail.read('file.eml')
225
+ # mail.deliver
226
+ def deliver
227
+ inform_interceptors
228
+ if delivery_handler
229
+ delivery_handler.deliver_mail(self) { do_delivery }
230
+ else
231
+ do_delivery
232
+ end
233
+ inform_observers
234
+ self
235
+ end
236
+
237
+ # This method bypasses checking perform_deliveries and raise_delivery_errors,
238
+ # so use with caution.
239
+ #
240
+ # It still however fires off the intercepters and calls the observers callbacks if they are defined.
241
+ #
242
+ # Returns self
243
+ def deliver!
244
+ inform_interceptors
245
+ response = delivery_method.deliver!(self)
246
+ inform_observers
247
+ delivery_method.settings[:return_response] ? response : self
248
+ end
249
+
250
+ def delivery_method(method = nil, settings = {})
251
+ unless method
252
+ @delivery_method
253
+ else
254
+ @delivery_method = Configuration.instance.lookup_delivery_method(method).new(settings)
255
+ end
256
+ end
257
+
258
+ def reply(*args, &block)
259
+ self.class.new.tap do |reply|
260
+ if message_id
261
+ bracketed_message_id = "<#{message_id}>"
262
+ reply.in_reply_to = bracketed_message_id
263
+ if !references.nil?
264
+ refs = [references].flatten.map { |r| "<#{r}>" }
265
+ refs << bracketed_message_id
266
+ reply.references = refs.join(' ')
267
+ elsif !in_reply_to.nil? && !in_reply_to.kind_of?(Array)
268
+ reply.references = "<#{in_reply_to}> #{bracketed_message_id}"
269
+ end
270
+ reply.references ||= bracketed_message_id
271
+ end
272
+ if subject
273
+ reply.subject = subject =~ /^Re:/i ? subject : "RE: #{subject}"
274
+ end
275
+ if reply_to || from
276
+ reply.to = self[reply_to ? :reply_to : :from].to_s
277
+ end
278
+ if to
279
+ reply.from = self[:to].formatted.first.to_s
280
+ end
281
+
282
+ unless args.empty?
283
+ if args.flatten.first.respond_to?(:each_pair)
284
+ reply.send(:init_with_hash, args.flatten.first)
285
+ else
286
+ reply.send(:init_with_string, args.flatten[0].to_s.strip)
287
+ end
288
+ end
289
+
290
+ if block_given?
291
+ reply.instance_eval(&block)
292
+ end
293
+ end
294
+ end
295
+
296
+ # Provides the operator needed for sort et al.
297
+ #
298
+ # Compares this mail object with another mail object, this is done by date, so an
299
+ # email that is older than another will appear first.
300
+ #
301
+ # Example:
302
+ #
303
+ # mail1 = Mail.new do
304
+ # date(Time.now)
305
+ # end
306
+ # mail2 = Mail.new do
307
+ # date(Time.now - 86400) # 1 day older
308
+ # end
309
+ # [mail2, mail1].sort #=> [mail2, mail1]
310
+ def <=>(other)
311
+ if other.nil?
312
+ 1
313
+ else
314
+ self.date <=> other.date
315
+ end
316
+ end
317
+
318
+ # Two emails are the same if they have the same fields and body contents. One
319
+ # gotcha here is that Mail will insert Message-IDs when calling encoded, so doing
320
+ # mail1.encoded == mail2.encoded is most probably not going to return what you think
321
+ # as the assigned Message-IDs by Mail (if not already defined as the same) will ensure
322
+ # that the two objects are unique, and this comparison will ALWAYS return false.
323
+ #
324
+ # So the == operator has been defined like so: Two messages are the same if they have
325
+ # the same content, ignoring the Message-ID field, unless BOTH emails have a defined and
326
+ # different Message-ID value, then they are false.
327
+ #
328
+ # So, in practice the == operator works like this:
329
+ #
330
+ # m1 = Mail.new("Subject: Hello\r\n\r\nHello")
331
+ # m2 = Mail.new("Subject: Hello\r\n\r\nHello")
332
+ # m1 == m2 #=> true
333
+ #
334
+ # m1 = Mail.new("Subject: Hello\r\n\r\nHello")
335
+ # m2 = Mail.new("Message-ID: <1234@test>\r\nSubject: Hello\r\n\r\nHello")
336
+ # m1 == m2 #=> true
337
+ #
338
+ # m1 = Mail.new("Message-ID: <1234@test>\r\nSubject: Hello\r\n\r\nHello")
339
+ # m2 = Mail.new("Subject: Hello\r\n\r\nHello")
340
+ # m1 == m2 #=> true
341
+ #
342
+ # m1 = Mail.new("Message-ID: <1234@test>\r\nSubject: Hello\r\n\r\nHello")
343
+ # m2 = Mail.new("Message-ID: <1234@test>\r\nSubject: Hello\r\n\r\nHello")
344
+ # m1 == m2 #=> true
345
+ #
346
+ # m1 = Mail.new("Message-ID: <1234@test>\r\nSubject: Hello\r\n\r\nHello")
347
+ # m2 = Mail.new("Message-ID: <DIFFERENT@test>\r\nSubject: Hello\r\n\r\nHello")
348
+ # m1 == m2 #=> false
349
+ def ==(other)
350
+ return false unless other.respond_to?(:encoded)
351
+
352
+ if self.message_id && other.message_id
353
+ result = (self.encoded == other.encoded)
354
+ else
355
+ self_message_id, other_message_id = self.message_id, other.message_id
356
+ self.message_id, other.message_id = '<temp@test>', '<temp@test>'
357
+ result = self.encoded == other.encoded
358
+ self.message_id = "<#{self_message_id}>" if self_message_id
359
+ other.message_id = "<#{other_message_id}>" if other_message_id
360
+ result
361
+ end
362
+ end
363
+
364
+ # Provides access to the raw source of the message as it was when it
365
+ # was instantiated. This is set at initialization and so is untouched
366
+ # by the parsers or decoder / encoders
367
+ #
368
+ # Example:
369
+ #
370
+ # mail = Mail.new('This is an invalid email message')
371
+ # mail.raw_source #=> "This is an invalid email message"
372
+ def raw_source
373
+ @raw_source
374
+ end
375
+
376
+ # Sets the envelope from for the email
377
+ def set_envelope( val )
378
+ @raw_envelope = val
379
+ @envelope = Mail::Envelope.new( val )
380
+ end
381
+
382
+ # The raw_envelope is the From mikel@test.lindsaar.net Mon May 2 16:07:05 2009
383
+ # type field that you can see at the top of any email that has come
384
+ # from a mailbox
385
+ def raw_envelope
386
+ @raw_envelope
387
+ end
388
+
389
+ def envelope_from
390
+ @envelope ? @envelope.from : nil
391
+ end
392
+
393
+ def envelope_date
394
+ @envelope ? @envelope.date : nil
395
+ end
396
+
397
+ # Sets the header of the message object.
398
+ #
399
+ # Example:
400
+ #
401
+ # mail.header = 'To: mikel@test.lindsaar.net\r\nFrom: Bob@bob.com'
402
+ # mail.header #=> <#Mail::Header
403
+ def header=(value)
404
+ @header = Mail::Header.new(value, charset)
405
+ end
406
+
407
+ # Returns the header object of the message object. Or, if passed
408
+ # a parameter sets the value.
409
+ #
410
+ # Example:
411
+ #
412
+ # mail = Mail::Message.new('To: mikel\r\nFrom: you')
413
+ # mail.header #=> #<Mail::Header:0x13ce14 @raw_source="To: mikel\r\nFr...
414
+ #
415
+ # mail.header #=> nil
416
+ # mail.header 'To: mikel\r\nFrom: you'
417
+ # mail.header #=> #<Mail::Header:0x13ce14 @raw_source="To: mikel\r\nFr...
418
+ def header(value = nil)
419
+ value ? self.header = value : @header
420
+ end
421
+
422
+ # Provides a way to set custom headers, by passing in a hash
423
+ def headers(hash = {})
424
+ hash.each_pair do |k,v|
425
+ header[k] = v
426
+ end
427
+ end
428
+
429
+ # Returns a list of parser errors on the header, each field that had an error
430
+ # will be reparsed as an unstructured field to preserve the data inside, but
431
+ # will not be used for further processing.
432
+ #
433
+ # It returns a nested array of [field_name, value, original_error_message]
434
+ # per error found.
435
+ #
436
+ # Example:
437
+ #
438
+ # message = Mail.new("Content-Transfer-Encoding: weirdo\r\n")
439
+ # message.errors.size #=> 1
440
+ # message.errors.first[0] #=> "Content-Transfer-Encoding"
441
+ # message.errors.first[1] #=> "weirdo"
442
+ # message.errors.first[3] #=> <The original error message exception>
443
+ #
444
+ # This is a good first defence on detecting spam by the way. Some spammers send
445
+ # invalid emails to try and get email parsers to give up parsing them.
446
+ def errors
447
+ header.errors
448
+ end
449
+
450
+ # Returns the Bcc value of the mail object as an array of strings of
451
+ # address specs.
452
+ #
453
+ # Example:
454
+ #
455
+ # mail.bcc = 'Mikel <mikel@test.lindsaar.net>'
456
+ # mail.bcc #=> ['mikel@test.lindsaar.net']
457
+ # mail.bcc = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
458
+ # mail.bcc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
459
+ #
460
+ # Also allows you to set the value by passing a value as a parameter
461
+ #
462
+ # Example:
463
+ #
464
+ # mail.bcc 'Mikel <mikel@test.lindsaar.net>'
465
+ # mail.bcc #=> ['mikel@test.lindsaar.net']
466
+ #
467
+ # Additionally, you can append new addresses to the returned Array like
468
+ # object.
469
+ #
470
+ # Example:
471
+ #
472
+ # mail.bcc 'Mikel <mikel@test.lindsaar.net>'
473
+ # mail.bcc << 'ada@test.lindsaar.net'
474
+ # mail.bcc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
475
+ def bcc( val = nil )
476
+ default :bcc, val
477
+ end
478
+
479
+ # Sets the Bcc value of the mail object, pass in a string of the field
480
+ #
481
+ # Example:
482
+ #
483
+ # mail.bcc = 'Mikel <mikel@test.lindsaar.net>'
484
+ # mail.bcc #=> ['mikel@test.lindsaar.net']
485
+ # mail.bcc = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
486
+ # mail.bcc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
487
+ def bcc=( val )
488
+ header[:bcc] = val
489
+ end
490
+
491
+ # Returns the Cc value of the mail object as an array of strings of
492
+ # address specs.
493
+ #
494
+ # Example:
495
+ #
496
+ # mail.cc = 'Mikel <mikel@test.lindsaar.net>'
497
+ # mail.cc #=> ['mikel@test.lindsaar.net']
498
+ # mail.cc = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
499
+ # mail.cc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
500
+ #
501
+ # Also allows you to set the value by passing a value as a parameter
502
+ #
503
+ # Example:
504
+ #
505
+ # mail.cc 'Mikel <mikel@test.lindsaar.net>'
506
+ # mail.cc #=> ['mikel@test.lindsaar.net']
507
+ #
508
+ # Additionally, you can append new addresses to the returned Array like
509
+ # object.
510
+ #
511
+ # Example:
512
+ #
513
+ # mail.cc 'Mikel <mikel@test.lindsaar.net>'
514
+ # mail.cc << 'ada@test.lindsaar.net'
515
+ # mail.cc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
516
+ def cc( val = nil )
517
+ default :cc, val
518
+ end
519
+
520
+ # Sets the Cc value of the mail object, pass in a string of the field
521
+ #
522
+ # Example:
523
+ #
524
+ # mail.cc = 'Mikel <mikel@test.lindsaar.net>'
525
+ # mail.cc #=> ['mikel@test.lindsaar.net']
526
+ # mail.cc = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
527
+ # mail.cc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
528
+ def cc=( val )
529
+ header[:cc] = val
530
+ end
531
+
532
+ def comments( val = nil )
533
+ default :comments, val
534
+ end
535
+
536
+ def comments=( val )
537
+ header[:comments] = val
538
+ end
539
+
540
+ def content_description( val = nil )
541
+ default :content_description, val
542
+ end
543
+
544
+ def content_description=( val )
545
+ header[:content_description] = val
546
+ end
547
+
548
+ def content_disposition( val = nil )
549
+ default :content_disposition, val
550
+ end
551
+
552
+ def content_disposition=( val )
553
+ header[:content_disposition] = val
554
+ end
555
+
556
+ def content_id( val = nil )
557
+ default :content_id, val
558
+ end
559
+
560
+ def content_id=( val )
561
+ header[:content_id] = val
562
+ end
563
+
564
+ def content_location( val = nil )
565
+ default :content_location, val
566
+ end
567
+
568
+ def content_location=( val )
569
+ header[:content_location] = val
570
+ end
571
+
572
+ def content_transfer_encoding( val = nil )
573
+ default :content_transfer_encoding, val
574
+ end
575
+
576
+ def content_transfer_encoding=( val )
577
+ header[:content_transfer_encoding] = val
578
+ end
579
+
580
+ def content_type( val = nil )
581
+ default :content_type, val
582
+ end
583
+
584
+ def content_type=( val )
585
+ header[:content_type] = val
586
+ end
587
+
588
+ def date( val = nil )
589
+ default :date, val
590
+ end
591
+
592
+ def date=( val )
593
+ header[:date] = val
594
+ end
595
+
596
+ def transport_encoding( val = nil)
597
+ if val
598
+ self.transport_encoding = val
599
+ else
600
+ @transport_encoding
601
+ end
602
+ end
603
+
604
+ def transport_encoding=( val )
605
+ @transport_encoding = Mail::Encodings.get_encoding(val)
606
+ end
607
+
608
+ # Returns the From value of the mail object as an array of strings of
609
+ # address specs.
610
+ #
611
+ # Example:
612
+ #
613
+ # mail.from = 'Mikel <mikel@test.lindsaar.net>'
614
+ # mail.from #=> ['mikel@test.lindsaar.net']
615
+ # mail.from = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
616
+ # mail.from #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
617
+ #
618
+ # Also allows you to set the value by passing a value as a parameter
619
+ #
620
+ # Example:
621
+ #
622
+ # mail.from 'Mikel <mikel@test.lindsaar.net>'
623
+ # mail.from #=> ['mikel@test.lindsaar.net']
624
+ #
625
+ # Additionally, you can append new addresses to the returned Array like
626
+ # object.
627
+ #
628
+ # Example:
629
+ #
630
+ # mail.from 'Mikel <mikel@test.lindsaar.net>'
631
+ # mail.from << 'ada@test.lindsaar.net'
632
+ # mail.from #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
633
+ def from( val = nil )
634
+ default :from, val
635
+ end
636
+
637
+ # Sets the From value of the mail object, pass in a string of the field
638
+ #
639
+ # Example:
640
+ #
641
+ # mail.from = 'Mikel <mikel@test.lindsaar.net>'
642
+ # mail.from #=> ['mikel@test.lindsaar.net']
643
+ # mail.from = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
644
+ # mail.from #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
645
+ def from=( val )
646
+ header[:from] = val
647
+ end
648
+
649
+ def in_reply_to( val = nil )
650
+ default :in_reply_to, val
651
+ end
652
+
653
+ def in_reply_to=( val )
654
+ header[:in_reply_to] = val
655
+ end
656
+
657
+ def keywords( val = nil )
658
+ default :keywords, val
659
+ end
660
+
661
+ def keywords=( val )
662
+ header[:keywords] = val
663
+ end
664
+
665
+ # Returns the Message-ID of the mail object. Note, per RFC 2822 the Message ID
666
+ # consists of what is INSIDE the < > usually seen in the mail header, so this method
667
+ # will return only what is inside.
668
+ #
669
+ # Example:
670
+ #
671
+ # mail.message_id = '<1234@message.id>'
672
+ # mail.message_id #=> '1234@message.id'
673
+ #
674
+ # Also allows you to set the Message-ID by passing a string as a parameter
675
+ #
676
+ # mail.message_id '<1234@message.id>'
677
+ # mail.message_id #=> '1234@message.id'
678
+ def message_id( val = nil )
679
+ default :message_id, val
680
+ end
681
+
682
+ # Sets the Message-ID. Note, per RFC 2822 the Message ID consists of what is INSIDE
683
+ # the < > usually seen in the mail header, so this method will return only what is inside.
684
+ #
685
+ # mail.message_id = '<1234@message.id>'
686
+ # mail.message_id #=> '1234@message.id'
687
+ def message_id=( val )
688
+ header[:message_id] = val
689
+ end
690
+
691
+ # Returns the MIME version of the email as a string
692
+ #
693
+ # Example:
694
+ #
695
+ # mail.mime_version = '1.0'
696
+ # mail.mime_version #=> '1.0'
697
+ #
698
+ # Also allows you to set the MIME version by passing a string as a parameter.
699
+ #
700
+ # Example:
701
+ #
702
+ # mail.mime_version '1.0'
703
+ # mail.mime_version #=> '1.0'
704
+ def mime_version( val = nil )
705
+ default :mime_version, val
706
+ end
707
+
708
+ # Sets the MIME version of the email by accepting a string
709
+ #
710
+ # Example:
711
+ #
712
+ # mail.mime_version = '1.0'
713
+ # mail.mime_version #=> '1.0'
714
+ def mime_version=( val )
715
+ header[:mime_version] = val
716
+ end
717
+
718
+ def received( val = nil )
719
+ if val
720
+ header[:received] = val
721
+ else
722
+ header[:received]
723
+ end
724
+ end
725
+
726
+ def received=( val )
727
+ header[:received] = val
728
+ end
729
+
730
+ def references( val = nil )
731
+ default :references, val
732
+ end
733
+
734
+ def references=( val )
735
+ header[:references] = val
736
+ end
737
+
738
+ # Returns the Reply-To value of the mail object as an array of strings of
739
+ # address specs.
740
+ #
741
+ # Example:
742
+ #
743
+ # mail.reply_to = 'Mikel <mikel@test.lindsaar.net>'
744
+ # mail.reply_to #=> ['mikel@test.lindsaar.net']
745
+ # mail.reply_to = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
746
+ # mail.reply_to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
747
+ #
748
+ # Also allows you to set the value by passing a value as a parameter
749
+ #
750
+ # Example:
751
+ #
752
+ # mail.reply_to 'Mikel <mikel@test.lindsaar.net>'
753
+ # mail.reply_to #=> ['mikel@test.lindsaar.net']
754
+ #
755
+ # Additionally, you can append new addresses to the returned Array like
756
+ # object.
757
+ #
758
+ # Example:
759
+ #
760
+ # mail.reply_to 'Mikel <mikel@test.lindsaar.net>'
761
+ # mail.reply_to << 'ada@test.lindsaar.net'
762
+ # mail.reply_to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
763
+ def reply_to( val = nil )
764
+ default :reply_to, val
765
+ end
766
+
767
+ # Sets the Reply-To value of the mail object, pass in a string of the field
768
+ #
769
+ # Example:
770
+ #
771
+ # mail.reply_to = 'Mikel <mikel@test.lindsaar.net>'
772
+ # mail.reply_to #=> ['mikel@test.lindsaar.net']
773
+ # mail.reply_to = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
774
+ # mail.reply_to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
775
+ def reply_to=( val )
776
+ header[:reply_to] = val
777
+ end
778
+
779
+ # Returns the Resent-Bcc value of the mail object as an array of strings of
780
+ # address specs.
781
+ #
782
+ # Example:
783
+ #
784
+ # mail.resent_bcc = 'Mikel <mikel@test.lindsaar.net>'
785
+ # mail.resent_bcc #=> ['mikel@test.lindsaar.net']
786
+ # mail.resent_bcc = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
787
+ # mail.resent_bcc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
788
+ #
789
+ # Also allows you to set the value by passing a value as a parameter
790
+ #
791
+ # Example:
792
+ #
793
+ # mail.resent_bcc 'Mikel <mikel@test.lindsaar.net>'
794
+ # mail.resent_bcc #=> ['mikel@test.lindsaar.net']
795
+ #
796
+ # Additionally, you can append new addresses to the returned Array like
797
+ # object.
798
+ #
799
+ # Example:
800
+ #
801
+ # mail.resent_bcc 'Mikel <mikel@test.lindsaar.net>'
802
+ # mail.resent_bcc << 'ada@test.lindsaar.net'
803
+ # mail.resent_bcc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
804
+ def resent_bcc( val = nil )
805
+ default :resent_bcc, val
806
+ end
807
+
808
+ # Sets the Resent-Bcc value of the mail object, pass in a string of the field
809
+ #
810
+ # Example:
811
+ #
812
+ # mail.resent_bcc = 'Mikel <mikel@test.lindsaar.net>'
813
+ # mail.resent_bcc #=> ['mikel@test.lindsaar.net']
814
+ # mail.resent_bcc = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
815
+ # mail.resent_bcc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
816
+ def resent_bcc=( val )
817
+ header[:resent_bcc] = val
818
+ end
819
+
820
+ # Returns the Resent-Cc value of the mail object as an array of strings of
821
+ # address specs.
822
+ #
823
+ # Example:
824
+ #
825
+ # mail.resent_cc = 'Mikel <mikel@test.lindsaar.net>'
826
+ # mail.resent_cc #=> ['mikel@test.lindsaar.net']
827
+ # mail.resent_cc = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
828
+ # mail.resent_cc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
829
+ #
830
+ # Also allows you to set the value by passing a value as a parameter
831
+ #
832
+ # Example:
833
+ #
834
+ # mail.resent_cc 'Mikel <mikel@test.lindsaar.net>'
835
+ # mail.resent_cc #=> ['mikel@test.lindsaar.net']
836
+ #
837
+ # Additionally, you can append new addresses to the returned Array like
838
+ # object.
839
+ #
840
+ # Example:
841
+ #
842
+ # mail.resent_cc 'Mikel <mikel@test.lindsaar.net>'
843
+ # mail.resent_cc << 'ada@test.lindsaar.net'
844
+ # mail.resent_cc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
845
+ def resent_cc( val = nil )
846
+ default :resent_cc, val
847
+ end
848
+
849
+ # Sets the Resent-Cc value of the mail object, pass in a string of the field
850
+ #
851
+ # Example:
852
+ #
853
+ # mail.resent_cc = 'Mikel <mikel@test.lindsaar.net>'
854
+ # mail.resent_cc #=> ['mikel@test.lindsaar.net']
855
+ # mail.resent_cc = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
856
+ # mail.resent_cc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
857
+ def resent_cc=( val )
858
+ header[:resent_cc] = val
859
+ end
860
+
861
+ def resent_date( val = nil )
862
+ default :resent_date, val
863
+ end
864
+
865
+ def resent_date=( val )
866
+ header[:resent_date] = val
867
+ end
868
+
869
+ # Returns the Resent-From value of the mail object as an array of strings of
870
+ # address specs.
871
+ #
872
+ # Example:
873
+ #
874
+ # mail.resent_from = 'Mikel <mikel@test.lindsaar.net>'
875
+ # mail.resent_from #=> ['mikel@test.lindsaar.net']
876
+ # mail.resent_from = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
877
+ # mail.resent_from #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
878
+ #
879
+ # Also allows you to set the value by passing a value as a parameter
880
+ #
881
+ # Example:
882
+ #
883
+ # mail.resent_from ['Mikel <mikel@test.lindsaar.net>']
884
+ # mail.resent_from #=> 'mikel@test.lindsaar.net'
885
+ #
886
+ # Additionally, you can append new addresses to the returned Array like
887
+ # object.
888
+ #
889
+ # Example:
890
+ #
891
+ # mail.resent_from 'Mikel <mikel@test.lindsaar.net>'
892
+ # mail.resent_from << 'ada@test.lindsaar.net'
893
+ # mail.resent_from #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
894
+ def resent_from( val = nil )
895
+ default :resent_from, val
896
+ end
897
+
898
+ # Sets the Resent-From value of the mail object, pass in a string of the field
899
+ #
900
+ # Example:
901
+ #
902
+ # mail.resent_from = 'Mikel <mikel@test.lindsaar.net>'
903
+ # mail.resent_from #=> ['mikel@test.lindsaar.net']
904
+ # mail.resent_from = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
905
+ # mail.resent_from #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
906
+ def resent_from=( val )
907
+ header[:resent_from] = val
908
+ end
909
+
910
+ def resent_message_id( val = nil )
911
+ default :resent_message_id, val
912
+ end
913
+
914
+ def resent_message_id=( val )
915
+ header[:resent_message_id] = val
916
+ end
917
+
918
+ # Returns the Resent-Sender value of the mail object, as a single string of an address
919
+ # spec. A sender per RFC 2822 must be a single address, so you can not append to
920
+ # this address.
921
+ #
922
+ # Example:
923
+ #
924
+ # mail.resent_sender = 'Mikel <mikel@test.lindsaar.net>'
925
+ # mail.resent_sender #=> 'mikel@test.lindsaar.net'
926
+ #
927
+ # Also allows you to set the value by passing a value as a parameter
928
+ #
929
+ # Example:
930
+ #
931
+ # mail.resent_sender 'Mikel <mikel@test.lindsaar.net>'
932
+ # mail.resent_sender #=> 'mikel@test.lindsaar.net'
933
+ def resent_sender( val = nil )
934
+ default :resent_sender, val
935
+ end
936
+
937
+ # Sets the Resent-Sender value of the mail object, pass in a string of the field
938
+ #
939
+ # Example:
940
+ #
941
+ # mail.sender = 'Mikel <mikel@test.lindsaar.net>'
942
+ # mail.sender #=> 'mikel@test.lindsaar.net'
943
+ def resent_sender=( val )
944
+ header[:resent_sender] = val
945
+ end
946
+
947
+ # Returns the Resent-To value of the mail object as an array of strings of
948
+ # address specs.
949
+ #
950
+ # Example:
951
+ #
952
+ # mail.resent_to = 'Mikel <mikel@test.lindsaar.net>'
953
+ # mail.resent_to #=> ['mikel@test.lindsaar.net']
954
+ # mail.resent_to = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
955
+ # mail.resent_to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
956
+ #
957
+ # Also allows you to set the value by passing a value as a parameter
958
+ #
959
+ # Example:
960
+ #
961
+ # mail.resent_to 'Mikel <mikel@test.lindsaar.net>'
962
+ # mail.resent_to #=> ['mikel@test.lindsaar.net']
963
+ #
964
+ # Additionally, you can append new addresses to the returned Array like
965
+ # object.
966
+ #
967
+ # Example:
968
+ #
969
+ # mail.resent_to 'Mikel <mikel@test.lindsaar.net>'
970
+ # mail.resent_to << 'ada@test.lindsaar.net'
971
+ # mail.resent_to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
972
+ def resent_to( val = nil )
973
+ default :resent_to, val
974
+ end
975
+
976
+ # Sets the Resent-To value of the mail object, pass in a string of the field
977
+ #
978
+ # Example:
979
+ #
980
+ # mail.resent_to = 'Mikel <mikel@test.lindsaar.net>'
981
+ # mail.resent_to #=> ['mikel@test.lindsaar.net']
982
+ # mail.resent_to = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
983
+ # mail.resent_to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
984
+ def resent_to=( val )
985
+ header[:resent_to] = val
986
+ end
987
+
988
+ # Returns the return path of the mail object, or sets it if you pass a string
989
+ def return_path( val = nil )
990
+ default :return_path, val
991
+ end
992
+
993
+ # Sets the return path of the object
994
+ def return_path=( val )
995
+ header[:return_path] = val
996
+ end
997
+
998
+ # Returns the Sender value of the mail object, as a single string of an address
999
+ # spec. A sender per RFC 2822 must be a single address.
1000
+ #
1001
+ # Example:
1002
+ #
1003
+ # mail.sender = 'Mikel <mikel@test.lindsaar.net>'
1004
+ # mail.sender #=> 'mikel@test.lindsaar.net'
1005
+ #
1006
+ # Also allows you to set the value by passing a value as a parameter
1007
+ #
1008
+ # Example:
1009
+ #
1010
+ # mail.sender 'Mikel <mikel@test.lindsaar.net>'
1011
+ # mail.sender #=> 'mikel@test.lindsaar.net'
1012
+ def sender( val = nil )
1013
+ default :sender, val
1014
+ end
1015
+
1016
+ # Sets the Sender value of the mail object, pass in a string of the field
1017
+ #
1018
+ # Example:
1019
+ #
1020
+ # mail.sender = 'Mikel <mikel@test.lindsaar.net>'
1021
+ # mail.sender #=> 'mikel@test.lindsaar.net'
1022
+ def sender=( val )
1023
+ header[:sender] = val
1024
+ end
1025
+
1026
+ # Returns the decoded value of the subject field, as a single string.
1027
+ #
1028
+ # Example:
1029
+ #
1030
+ # mail.subject = "G'Day mate"
1031
+ # mail.subject #=> "G'Day mate"
1032
+ # mail.subject = '=?UTF-8?Q?This_is_=E3=81=82_string?='
1033
+ # mail.subject #=> "This is あ string"
1034
+ #
1035
+ # Also allows you to set the value by passing a value as a parameter
1036
+ #
1037
+ # Example:
1038
+ #
1039
+ # mail.subject "G'Day mate"
1040
+ # mail.subject #=> "G'Day mate"
1041
+ def subject( val = nil )
1042
+ default :subject, val
1043
+ end
1044
+
1045
+ # Sets the Subject value of the mail object, pass in a string of the field
1046
+ #
1047
+ # Example:
1048
+ #
1049
+ # mail.subject = '=?UTF-8?Q?This_is_=E3=81=82_string?='
1050
+ # mail.subject #=> "This is あ string"
1051
+ def subject=( val )
1052
+ header[:subject] = val
1053
+ end
1054
+
1055
+ # Returns the To value of the mail object as an array of strings of
1056
+ # address specs.
1057
+ #
1058
+ # Example:
1059
+ #
1060
+ # mail.to = 'Mikel <mikel@test.lindsaar.net>'
1061
+ # mail.to #=> ['mikel@test.lindsaar.net']
1062
+ # mail.to = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
1063
+ # mail.to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
1064
+ #
1065
+ # Also allows you to set the value by passing a value as a parameter
1066
+ #
1067
+ # Example:
1068
+ #
1069
+ # mail.to 'Mikel <mikel@test.lindsaar.net>'
1070
+ # mail.to #=> ['mikel@test.lindsaar.net']
1071
+ #
1072
+ # Additionally, you can append new addresses to the returned Array like
1073
+ # object.
1074
+ #
1075
+ # Example:
1076
+ #
1077
+ # mail.to 'Mikel <mikel@test.lindsaar.net>'
1078
+ # mail.to << 'ada@test.lindsaar.net'
1079
+ # mail.to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
1080
+ def to( val = nil )
1081
+ default :to, val
1082
+ end
1083
+
1084
+ # Sets the To value of the mail object, pass in a string of the field
1085
+ #
1086
+ # Example:
1087
+ #
1088
+ # mail.to = 'Mikel <mikel@test.lindsaar.net>'
1089
+ # mail.to #=> ['mikel@test.lindsaar.net']
1090
+ # mail.to = 'Mikel <mikel@test.lindsaar.net>, ada@test.lindsaar.net'
1091
+ # mail.to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
1092
+ def to=( val )
1093
+ header[:to] = val
1094
+ end
1095
+
1096
+ # Returns the default value of the field requested as a symbol.
1097
+ #
1098
+ # Each header field has a :default method which returns the most common use case for
1099
+ # that field, for example, the date field types will return a DateTime object when
1100
+ # sent :default, the subject, or unstructured fields will return a decoded string of
1101
+ # their value, the address field types will return a single addr_spec or an array of
1102
+ # addr_specs if there is more than one.
1103
+ def default( sym, val = nil )
1104
+ if val
1105
+ header[sym] = val
1106
+ else
1107
+ header[sym].default if header[sym]
1108
+ end
1109
+ end
1110
+
1111
+ # Sets the body object of the message object.
1112
+ #
1113
+ # Example:
1114
+ #
1115
+ # mail.body = 'This is the body'
1116
+ # mail.body #=> #<Mail::Body:0x13919c @raw_source="This is the bo...
1117
+ #
1118
+ # You can also reset the body of an Message object by setting body to nil
1119
+ #
1120
+ # Example:
1121
+ #
1122
+ # mail.body = 'this is the body'
1123
+ # mail.body.encoded #=> 'this is the body'
1124
+ # mail.body = nil
1125
+ # mail.body.encoded #=> ''
1126
+ #
1127
+ # If you try and set the body of an email that is a multipart email, then instead
1128
+ # of deleting all the parts of your email, mail will add a text/plain part to
1129
+ # your email:
1130
+ #
1131
+ # mail.add_file 'somefilename.png'
1132
+ # mail.parts.length #=> 1
1133
+ # mail.body = "This is a body"
1134
+ # mail.parts.length #=> 2
1135
+ # mail.parts.last.content_type.content_type #=> 'This is a body'
1136
+ def body=(value)
1137
+ body_lazy(value)
1138
+ end
1139
+
1140
+ # Returns the body of the message object. Or, if passed
1141
+ # a parameter sets the value.
1142
+ #
1143
+ # Example:
1144
+ #
1145
+ # mail = Mail::Message.new('To: mikel\r\n\r\nThis is the body')
1146
+ # mail.body #=> #<Mail::Body:0x13919c @raw_source="This is the bo...
1147
+ #
1148
+ # mail.body 'This is another body'
1149
+ # mail.body #=> #<Mail::Body:0x13919c @raw_source="This is anothe...
1150
+ def body(value = nil)
1151
+ if value
1152
+ self.body = value
1153
+ # add_encoding_to_body
1154
+ else
1155
+ process_body_raw if @body_raw
1156
+ @body
1157
+ end
1158
+ end
1159
+
1160
+ def body_encoding(value)
1161
+ if value.nil?
1162
+ body.encoding
1163
+ else
1164
+ body.encoding = value
1165
+ end
1166
+ end
1167
+
1168
+ def body_encoding=(value)
1169
+ body.encoding = value
1170
+ end
1171
+
1172
+ # Returns the list of addresses this message should be sent to by
1173
+ # collecting the addresses off the to, cc and bcc fields.
1174
+ #
1175
+ # Example:
1176
+ #
1177
+ # mail.to = 'mikel@test.lindsaar.net'
1178
+ # mail.cc = 'sam@test.lindsaar.net'
1179
+ # mail.bcc = 'bob@test.lindsaar.net'
1180
+ # mail.destinations.length #=> 3
1181
+ # mail.destinations.first #=> 'mikel@test.lindsaar.net'
1182
+ def destinations
1183
+ [to_addrs, cc_addrs, bcc_addrs].compact.flatten
1184
+ end
1185
+
1186
+ # Returns an array of addresses (the encoded value) in the From field,
1187
+ # if no From field, returns an empty array
1188
+ def from_addrs
1189
+ from ? [from].flatten : []
1190
+ end
1191
+
1192
+ # Returns an array of addresses (the encoded value) in the To field,
1193
+ # if no To field, returns an empty array
1194
+ def to_addrs
1195
+ to ? [to].flatten : []
1196
+ end
1197
+
1198
+ # Returns an array of addresses (the encoded value) in the Cc field,
1199
+ # if no Cc field, returns an empty array
1200
+ def cc_addrs
1201
+ cc ? [cc].flatten : []
1202
+ end
1203
+
1204
+ # Returns an array of addresses (the encoded value) in the Bcc field,
1205
+ # if no Bcc field, returns an empty array
1206
+ def bcc_addrs
1207
+ bcc ? [bcc].flatten : []
1208
+ end
1209
+
1210
+ # Allows you to add an arbitrary header
1211
+ #
1212
+ # Example:
1213
+ #
1214
+ # mail['foo'] = '1234'
1215
+ # mail['foo'].to_s #=> '1234'
1216
+ def []=(name, value)
1217
+ if name.to_s == 'body'
1218
+ self.body = value
1219
+ elsif name.to_s =~ /content[-_]type/i
1220
+ header[name] = value
1221
+ elsif name.to_s == 'charset'
1222
+ self.charset = value
1223
+ else
1224
+ header[name] = value
1225
+ end
1226
+ end
1227
+
1228
+ # Allows you to read an arbitrary header
1229
+ #
1230
+ # Example:
1231
+ #
1232
+ # mail['foo'] = '1234'
1233
+ # mail['foo'].to_s #=> '1234'
1234
+ def [](name)
1235
+ header[underscoreize(name)]
1236
+ end
1237
+
1238
+ # Method Missing in this implementation allows you to set any of the
1239
+ # standard fields directly as you would the "to", "subject" etc.
1240
+ #
1241
+ # Those fields used most often (to, subject et al) are given their
1242
+ # own method for ease of documentation and also to avoid the hook
1243
+ # call to method missing.
1244
+ #
1245
+ # This will only catch the known fields listed in:
1246
+ #
1247
+ # Mail::Field::KNOWN_FIELDS
1248
+ #
1249
+ # as per RFC 2822, any ruby string or method name could pretty much
1250
+ # be a field name, so we don't want to just catch ANYTHING sent to
1251
+ # a message object and interpret it as a header.
1252
+ #
1253
+ # This method provides all three types of header call to set, read
1254
+ # and explicitly set with the = operator
1255
+ #
1256
+ # Examples:
1257
+ #
1258
+ # mail.comments = 'These are some comments'
1259
+ # mail.comments #=> 'These are some comments'
1260
+ #
1261
+ # mail.comments 'These are other comments'
1262
+ # mail.comments #=> 'These are other comments'
1263
+ #
1264
+ #
1265
+ # mail.date = 'Tue, 1 Jul 2003 10:52:37 +0200'
1266
+ # mail.date.to_s #=> 'Tue, 1 Jul 2003 10:52:37 +0200'
1267
+ #
1268
+ # mail.date 'Tue, 1 Jul 2003 10:52:37 +0200'
1269
+ # mail.date.to_s #=> 'Tue, 1 Jul 2003 10:52:37 +0200'
1270
+ #
1271
+ #
1272
+ # mail.resent_msg_id = '<1234@resent_msg_id.lindsaar.net>'
1273
+ # mail.resent_msg_id #=> '<1234@resent_msg_id.lindsaar.net>'
1274
+ #
1275
+ # mail.resent_msg_id '<4567@resent_msg_id.lindsaar.net>'
1276
+ # mail.resent_msg_id #=> '<4567@resent_msg_id.lindsaar.net>'
1277
+ def method_missing(name, *args, &block)
1278
+ #:nodoc:
1279
+ # Only take the structured fields, as we could take _anything_ really
1280
+ # as it could become an optional field... "but therin lies the dark side"
1281
+ field_name = underscoreize(name).chomp("=")
1282
+ if Mail::Field::KNOWN_FIELDS.include?(field_name)
1283
+ if args.empty?
1284
+ header[field_name]
1285
+ else
1286
+ header[field_name] = args.first
1287
+ end
1288
+ else
1289
+ super # otherwise pass it on
1290
+ end
1291
+ #:startdoc:
1292
+ end
1293
+
1294
+ # Returns an FieldList of all the fields in the header in the order that
1295
+ # they appear in the header
1296
+ def header_fields
1297
+ header.fields
1298
+ end
1299
+
1300
+ # Returns true if the message has a message ID field, the field may or may
1301
+ # not have a value, but the field exists or not.
1302
+ def has_message_id?
1303
+ header.has_message_id?
1304
+ end
1305
+
1306
+ # Returns true if the message has a Date field, the field may or may
1307
+ # not have a value, but the field exists or not.
1308
+ def has_date?
1309
+ header.has_date?
1310
+ end
1311
+
1312
+ # Returns true if the message has a Date field, the field may or may
1313
+ # not have a value, but the field exists or not.
1314
+ def has_mime_version?
1315
+ header.has_mime_version?
1316
+ end
1317
+
1318
+ def has_content_type?
1319
+ tmp = header[:content_type].main_type rescue nil
1320
+ !!tmp
1321
+ end
1322
+
1323
+ def has_charset?
1324
+ tmp = header[:content_type].parameters rescue nil
1325
+ !!(has_content_type? && tmp && tmp['charset'])
1326
+ end
1327
+
1328
+ def has_content_transfer_encoding?
1329
+ header[:content_transfer_encoding] && header[:content_transfer_encoding].errors.blank?
1330
+ end
1331
+
1332
+ def has_transfer_encoding? # :nodoc:
1333
+ STDERR.puts(":has_transfer_encoding? is deprecated in Mail 1.4.3. Please use has_content_transfer_encoding?\n#{caller}")
1334
+ has_content_transfer_encoding?
1335
+ end
1336
+
1337
+ # Creates a new empty Message-ID field and inserts it in the correct order
1338
+ # into the Header. The MessageIdField object will automatically generate
1339
+ # a unique message ID if you try and encode it or output it to_s without
1340
+ # specifying a message id.
1341
+ #
1342
+ # It will preserve the message ID you specify if you do.
1343
+ def add_message_id(msg_id_val = '')
1344
+ header['message-id'] = msg_id_val
1345
+ end
1346
+
1347
+ # Creates a new empty Date field and inserts it in the correct order
1348
+ # into the Header. The DateField object will automatically generate
1349
+ # DateTime.now's date if you try and encode it or output it to_s without
1350
+ # specifying a date yourself.
1351
+ #
1352
+ # It will preserve any date you specify if you do.
1353
+ def add_date(date_val = '')
1354
+ header['date'] = date_val
1355
+ end
1356
+
1357
+ # Creates a new empty Mime Version field and inserts it in the correct order
1358
+ # into the Header. The MimeVersion object will automatically generate
1359
+ # set itself to '1.0' if you try and encode it or output it to_s without
1360
+ # specifying a version yourself.
1361
+ #
1362
+ # It will preserve any date you specify if you do.
1363
+ def add_mime_version(ver_val = '')
1364
+ header['mime-version'] = ver_val
1365
+ end
1366
+
1367
+ # Adds a content type and charset if the body is US-ASCII
1368
+ #
1369
+ # Otherwise raises a warning
1370
+ def add_content_type
1371
+ header[:content_type] = 'text/plain'
1372
+ end
1373
+
1374
+ # Adds a content type and charset if the body is US-ASCII
1375
+ #
1376
+ # Otherwise raises a warning
1377
+ def add_charset
1378
+ if !body.empty?
1379
+ # Only give a warning if this isn't an attachment, has non US-ASCII and the user
1380
+ # has not specified an encoding explicitly.
1381
+ if @defaulted_charset && body.raw_source.not_ascii_only? && !self.attachment?
1382
+ warning = "Non US-ASCII detected and no charset defined.\nDefaulting to UTF-8, set your own if this is incorrect.\n"
1383
+ STDERR.puts(warning)
1384
+ end
1385
+ header[:content_type].parameters['charset'] = @charset
1386
+ end
1387
+ end
1388
+
1389
+ # Adds a content transfer encoding
1390
+ #
1391
+ # Otherwise raises a warning
1392
+ def add_content_transfer_encoding
1393
+ if body.only_us_ascii?
1394
+ header[:content_transfer_encoding] = '7bit'
1395
+ else
1396
+ warning = "Non US-ASCII detected and no content-transfer-encoding defined.\nDefaulting to 8bit, set your own if this is incorrect.\n"
1397
+ STDERR.puts(warning)
1398
+ header[:content_transfer_encoding] = '8bit'
1399
+ end
1400
+ end
1401
+
1402
+ def add_transfer_encoding # :nodoc:
1403
+ STDERR.puts(":add_transfer_encoding is deprecated in Mail 1.4.3. Please use add_content_transfer_encoding\n#{caller}")
1404
+ add_content_transfer_encoding
1405
+ end
1406
+
1407
+ def transfer_encoding # :nodoc:
1408
+ STDERR.puts(":transfer_encoding is deprecated in Mail 1.4.3. Please use content_transfer_encoding\n#{caller}")
1409
+ content_transfer_encoding
1410
+ end
1411
+
1412
+ # Returns the MIME media type of part we are on, this is taken from the content-type header
1413
+ def mime_type
1414
+ content_type ? header[:content_type].string : nil rescue nil
1415
+ end
1416
+
1417
+ def message_content_type
1418
+ STDERR.puts(":message_content_type is deprecated in Mail 1.4.3. Please use mime_type\n#{caller}")
1419
+ mime_type
1420
+ end
1421
+
1422
+ # Returns the character set defined in the content type field
1423
+ def charset
1424
+ if @header
1425
+ content_type ? content_type_parameters['charset'] : @charset
1426
+ else
1427
+ @charset
1428
+ end
1429
+ end
1430
+
1431
+ # Sets the charset to the supplied value.
1432
+ def charset=(value)
1433
+ @defaulted_charset = false
1434
+ @charset = value
1435
+ @header.charset = value
1436
+ end
1437
+
1438
+ # Returns the main content type
1439
+ def main_type
1440
+ has_content_type? ? header[:content_type].main_type : nil rescue nil
1441
+ end
1442
+
1443
+ # Returns the sub content type
1444
+ def sub_type
1445
+ has_content_type? ? header[:content_type].sub_type : nil rescue nil
1446
+ end
1447
+
1448
+ # Returns the content type parameters
1449
+ def mime_parameters
1450
+ STDERR.puts(':mime_parameters is deprecated in Mail 1.4.3, please use :content_type_parameters instead')
1451
+ content_type_parameters
1452
+ end
1453
+
1454
+ # Returns the content type parameters
1455
+ def content_type_parameters
1456
+ has_content_type? ? header[:content_type].parameters : nil rescue nil
1457
+ end
1458
+
1459
+ # Returns true if the message is multipart
1460
+ def multipart?
1461
+ has_content_type? ? !!(main_type =~ /^multipart$/i) : false
1462
+ end
1463
+
1464
+ # Returns true if the message is a multipart/report
1465
+ def multipart_report?
1466
+ multipart? && sub_type =~ /^report$/i
1467
+ end
1468
+
1469
+ # Returns true if the message is a multipart/report; report-type=delivery-status;
1470
+ def delivery_status_report?
1471
+ multipart_report? && content_type_parameters['report-type'] =~ /^delivery-status$/i
1472
+ end
1473
+
1474
+ # returns the part in a multipart/report email that has the content-type delivery-status
1475
+ def delivery_status_part
1476
+ @delivery_stats_part ||= parts.select { |p| p.delivery_status_report_part? }.first
1477
+ end
1478
+
1479
+ def bounced?
1480
+ delivery_status_part and delivery_status_part.bounced?
1481
+ end
1482
+
1483
+ def action
1484
+ delivery_status_part and delivery_status_part.action
1485
+ end
1486
+
1487
+ def final_recipient
1488
+ delivery_status_part and delivery_status_part.final_recipient
1489
+ end
1490
+
1491
+ def error_status
1492
+ delivery_status_part and delivery_status_part.error_status
1493
+ end
1494
+
1495
+ def diagnostic_code
1496
+ delivery_status_part and delivery_status_part.diagnostic_code
1497
+ end
1498
+
1499
+ def remote_mta
1500
+ delivery_status_part and delivery_status_part.remote_mta
1501
+ end
1502
+
1503
+ def retryable?
1504
+ delivery_status_part and delivery_status_part.retryable?
1505
+ end
1506
+
1507
+ # Returns the current boundary for this message part
1508
+ def boundary
1509
+ content_type_parameters ? content_type_parameters['boundary'] : nil
1510
+ end
1511
+
1512
+ # Returns a parts list object of all the parts in the message
1513
+ def parts
1514
+ body.parts
1515
+ end
1516
+
1517
+ # Returns an AttachmentsList object, which holds all of the attachments in
1518
+ # the receiver object (either the entier email or a part within) and all
1519
+ # of it's descendants.
1520
+ #
1521
+ # It also allows you to add attachments to the mail object directly, like so:
1522
+ #
1523
+ # mail.attachments['filename.jpg'] = File.read('/path/to/filename.jpg')
1524
+ #
1525
+ # If you do this, then Mail will take the file name and work out the MIME media type
1526
+ # set the Content-Type, Content-Disposition, Content-Transfer-Encoding and
1527
+ # base64 encode the contents of the attachment all for you.
1528
+ #
1529
+ # You can also specify overrides if you want by passing a hash instead of a string:
1530
+ #
1531
+ # mail.attachments['filename.jpg'] = {:mime_type => 'application/x-gzip',
1532
+ # :content => File.read('/path/to/filename.jpg')}
1533
+ #
1534
+ # If you want to use a different encoding than Base64, you can pass an encoding in,
1535
+ # but then it is up to you to pass in the content pre-encoded, and don't expect
1536
+ # Mail to know how to decode this data:
1537
+ #
1538
+ # file_content = SpecialEncode(File.read('/path/to/filename.jpg'))
1539
+ # mail.attachments['filename.jpg'] = {:mime_type => 'application/x-gzip',
1540
+ # :encoding => 'SpecialEncoding',
1541
+ # :content => file_content }
1542
+ #
1543
+ # You can also search for specific attachments:
1544
+ #
1545
+ # # By Filename
1546
+ # mail.attachments['filename.jpg'] #=> Mail::Part object or nil
1547
+ #
1548
+ # # or by index
1549
+ # mail.attachments[0] #=> Mail::Part (first attachment)
1550
+ #
1551
+ def attachments
1552
+ parts.attachments
1553
+ end
1554
+
1555
+ def has_attachments?
1556
+ !attachments.empty?
1557
+ end
1558
+
1559
+ # Accessor for html_part
1560
+ def html_part(&block)
1561
+ if block_given?
1562
+ @html_part = Mail::Part.new(&block)
1563
+ add_multipart_alternate_header unless html_part.blank?
1564
+ add_part(@html_part)
1565
+ else
1566
+ @html_part || find_first_mime_type('text/html')
1567
+ end
1568
+ end
1569
+
1570
+ # Accessor for text_part
1571
+ def text_part(&block)
1572
+ if block_given?
1573
+ @text_part = Mail::Part.new(&block)
1574
+ add_multipart_alternate_header unless html_part.blank?
1575
+ add_part(@text_part)
1576
+ else
1577
+ @text_part || find_first_mime_type('text/plain')
1578
+ end
1579
+ end
1580
+
1581
+ # Helper to add a html part to a multipart/alternative email. If this and
1582
+ # text_part are both defined in a message, then it will be a multipart/alternative
1583
+ # message and set itself that way.
1584
+ def html_part=(msg = nil)
1585
+ if msg
1586
+ @html_part = msg
1587
+ else
1588
+ @html_part = Mail::Part.new('Content-Type: text/html;')
1589
+ end
1590
+ add_multipart_alternate_header unless text_part.blank?
1591
+ add_part(@html_part)
1592
+ end
1593
+
1594
+ # Helper to add a text part to a multipart/alternative email. If this and
1595
+ # html_part are both defined in a message, then it will be a multipart/alternative
1596
+ # message and set itself that way.
1597
+ def text_part=(msg = nil)
1598
+ if msg
1599
+ @text_part = msg
1600
+ else
1601
+ @text_part = Mail::Part.new('Content-Type: text/plain;')
1602
+ end
1603
+ add_multipart_alternate_header unless html_part.blank?
1604
+ add_part(@text_part)
1605
+ end
1606
+
1607
+ # Adds a part to the parts list or creates the part list
1608
+ def add_part(part)
1609
+ if !body.multipart? && !self.body.decoded.blank?
1610
+ @text_part = Mail::Part.new('Content-Type: text/plain;')
1611
+ @text_part.body = body.decoded
1612
+ self.body << @text_part
1613
+ add_multipart_alternate_header
1614
+ end
1615
+ add_boundary
1616
+ self.body << part
1617
+ end
1618
+
1619
+ # Allows you to add a part in block form to an existing mail message object
1620
+ #
1621
+ # Example:
1622
+ #
1623
+ # mail = Mail.new do
1624
+ # part :content_type => "multipart/alternative", :content_disposition => "inline" do |p|
1625
+ # p.part :content_type => "text/plain", :body => "test text\nline #2"
1626
+ # p.part :content_type => "text/html", :body => "<b>test</b> HTML<br/>\nline #2"
1627
+ # end
1628
+ # end
1629
+ def part(params = {})
1630
+ new_part = Part.new(params)
1631
+ yield new_part if block_given?
1632
+ add_part(new_part)
1633
+ end
1634
+
1635
+ # Adds a file to the message. You have two options with this method, you can
1636
+ # just pass in the absolute path to the file you want and Mail will read the file,
1637
+ # get the filename from the path you pass in and guess the MIME media type, or you
1638
+ # can pass in the filename as a string, and pass in the file content as a blob.
1639
+ #
1640
+ # Example:
1641
+ #
1642
+ # m = Mail.new
1643
+ # m.add_file('/path/to/filename.png')
1644
+ #
1645
+ # m = Mail.new
1646
+ # m.add_file(:filename => 'filename.png', :content => File.read('/path/to/file.jpg'))
1647
+ #
1648
+ # Note also that if you add a file to an existing message, Mail will convert that message
1649
+ # to a MIME multipart email, moving whatever plain text body you had into it's own text
1650
+ # plain part.
1651
+ #
1652
+ # Example:
1653
+ #
1654
+ # m = Mail.new do
1655
+ # body 'this is some text'
1656
+ # end
1657
+ # m.multipart? #=> false
1658
+ # m.add_file('/path/to/filename.png')
1659
+ # m.multipart? #=> true
1660
+ # m.parts.first.content_type.content_type #=> 'text/plain'
1661
+ # m.parts.last.content_type.content_type #=> 'image/png'
1662
+ #
1663
+ # See also #attachments
1664
+ def add_file(values)
1665
+ convert_to_multipart unless self.multipart? || self.body.decoded.blank?
1666
+ add_multipart_mixed_header
1667
+ if values.is_a?(String)
1668
+ basename = File.basename(values)
1669
+ filedata = File.open(values, 'rb') { |f| f.read }
1670
+ else
1671
+ basename = values[:filename]
1672
+ filedata = values[:content] || File.open(values[:filename], 'rb') { |f| f.read }
1673
+ end
1674
+ self.attachments[basename] = filedata
1675
+ end
1676
+
1677
+ def convert_to_multipart
1678
+ text = body.decoded
1679
+ self.body = ''
1680
+ text_part = Mail::Part.new({:content_type => 'text/plain;',
1681
+ :body => text})
1682
+ text_part.charset = charset unless @defaulted_charset
1683
+ self.body << text_part
1684
+ end
1685
+
1686
+ # Encodes the message, calls encode on all it's parts, gets an email message
1687
+ # ready to send
1688
+ def ready_to_send!
1689
+ identify_and_set_transfer_encoding
1690
+ parts.sort!([ "text/plain", "text/enriched", "text/html", "multipart/alternative" ])
1691
+ parts.each do |part|
1692
+ part.transport_encoding = transport_encoding
1693
+ part.ready_to_send!
1694
+ end
1695
+ add_required_fields
1696
+ end
1697
+
1698
+ def encode!
1699
+ STDERR.puts("Deprecated in 1.1.0 in favour of :ready_to_send! as it is less confusing with encoding and decoding.")
1700
+ ready_to_send!
1701
+ end
1702
+
1703
+ # Outputs an encoded string representation of the mail message including
1704
+ # all headers, attachments, etc. This is an encoded email in US-ASCII,
1705
+ # so it is able to be directly sent to an email server.
1706
+ def encoded
1707
+ ready_to_send!
1708
+ buffer = header.encoded
1709
+ buffer << "\r\n"
1710
+ buffer << body.encoded(content_transfer_encoding)
1711
+ buffer
1712
+ end
1713
+
1714
+ def without_attachments!
1715
+ return self unless has_attachments?
1716
+
1717
+ parts.delete_if { |p| p.attachment? }
1718
+ body_raw = if parts.empty?
1719
+ ''
1720
+ else
1721
+ body.encoded
1722
+ end
1723
+
1724
+ @body = Mail::Body.new(body_raw)
1725
+
1726
+ self
1727
+ end
1728
+
1729
+ def to_yaml(opts = {})
1730
+ hash = {}
1731
+ hash['headers'] = {}
1732
+ header.fields.each do |field|
1733
+ hash['headers'][field.name] = field.value
1734
+ end
1735
+ hash['delivery_handler'] = delivery_handler.to_s if delivery_handler
1736
+ hash['transport_encoding'] = transport_encoding.to_s
1737
+ special_variables = [:@header, :@delivery_handler, :@transport_encoding]
1738
+ if multipart?
1739
+ hash['multipart_body'] = []
1740
+ body.parts.map { |part| hash['multipart_body'] << part.to_yaml }
1741
+ special_variables.push(:@body, :@text_part, :@html_part)
1742
+ end
1743
+ (instance_variables.map(&:to_sym) - special_variables).each do |var|
1744
+ hash[var.to_s] = instance_variable_get(var)
1745
+ end
1746
+ hash.to_yaml(opts)
1747
+ end
1748
+
1749
+ def self.from_yaml(str)
1750
+ hash = YAML.load(str)
1751
+ m = self.new(:headers => hash['headers'])
1752
+ hash.delete('headers')
1753
+ hash.each do |k,v|
1754
+ case
1755
+ when k == 'delivery_handler'
1756
+ begin
1757
+ m.delivery_handler = Object.const_get(v) unless v.blank?
1758
+ rescue NameError
1759
+ end
1760
+ when k == 'transport_encoding'
1761
+ m.transport_encoding(v)
1762
+ when k == 'multipart_body'
1763
+ v.map {|part| m.add_part Mail::Part.from_yaml(part) }
1764
+ when k =~ /^@/
1765
+ m.instance_variable_set(k.to_sym, v)
1766
+ end
1767
+ end
1768
+ m
1769
+ end
1770
+
1771
+ def self.from_hash(hash)
1772
+ Mail::Message.new(hash)
1773
+ end
1774
+
1775
+ def to_s
1776
+ encoded
1777
+ end
1778
+
1779
+ def inspect
1780
+ "#<#{self.class}:#{self.object_id}, Multipart: #{multipart?}, Headers: #{header.field_summary}>"
1781
+ end
1782
+
1783
+ def decoded
1784
+ case
1785
+ when self.text?
1786
+ decode_body_as_text
1787
+ when self.attachment?
1788
+ decode_body
1789
+ when !self.multipart?
1790
+ body.decoded
1791
+ else
1792
+ raise NoMethodError, 'Can not decode an entire message, try calling #decoded on the various fields and body or parts if it is a multipart message.'
1793
+ end
1794
+ end
1795
+
1796
+ def read
1797
+ if self.attachment?
1798
+ decode_body
1799
+ else
1800
+ raise NoMethodError, 'Can not call read on a part unless it is an attachment.'
1801
+ end
1802
+ end
1803
+
1804
+ def decode_body
1805
+ body.decoded
1806
+ end
1807
+
1808
+ # Returns true if this part is an attachment,
1809
+ # false otherwise.
1810
+ def attachment?
1811
+ !!find_attachment
1812
+ end
1813
+
1814
+ # Returns the attachment data if there is any
1815
+ def attachment
1816
+ @attachment
1817
+ end
1818
+
1819
+ # Returns the filename of the attachment
1820
+ def filename
1821
+ find_attachment
1822
+ end
1823
+
1824
+ def all_parts
1825
+ parts.map { |p| [p, p.all_parts] }.flatten
1826
+ end
1827
+
1828
+ def find_first_mime_type(mt)
1829
+ all_parts.detect { |p| p.mime_type == mt && !p.attachment? }
1830
+ end
1831
+
1832
+ # Skips the deletion of this message. All other messages
1833
+ # flagged for delete still will be deleted at session close (i.e. when
1834
+ # #find exits). Only has an effect if you're using #find_and_delete
1835
+ # or #find with :delete_after_find set to true.
1836
+ def skip_deletion
1837
+ @mark_for_delete = false
1838
+ end
1839
+
1840
+ # Sets whether this message should be deleted at session close (i.e.
1841
+ # after #find). Message will only be deleted if messages are retrieved
1842
+ # using the #find_and_delete method, or by calling #find with
1843
+ # :delete_after_find set to true.
1844
+ def mark_for_delete=(value = true)
1845
+ @mark_for_delete = value
1846
+ end
1847
+
1848
+ # Returns whether message will be marked for deletion.
1849
+ # If so, the message will be deleted at session close (i.e. after #find
1850
+ # exits), but only if also using the #find_and_delete method, or by
1851
+ # calling #find with :delete_after_find set to true.
1852
+ #
1853
+ # Side-note: Just to be clear, this method will return true even if
1854
+ # the message hasn't yet been marked for delete on the mail server.
1855
+ # However, if this method returns true, it *will be* marked on the
1856
+ # server after each block yields back to #find or #find_and_delete.
1857
+ def is_marked_for_delete?
1858
+ return @mark_for_delete
1859
+ end
1860
+
1861
+ def text?
1862
+ has_content_type? ? !!(main_type =~ /^text$/i) : false
1863
+ end
1864
+
1865
+ private
1866
+
1867
+ # 2.1. General Description
1868
+ # A message consists of header fields (collectively called "the header
1869
+ # of the message") followed, optionally, by a body. The header is a
1870
+ # sequence of lines of characters with special syntax as defined in
1871
+ # this standard. The body is simply a sequence of characters that
1872
+ # follows the header and is separated from the header by an empty line
1873
+ # (i.e., a line with nothing preceding the CRLF).
1874
+ #
1875
+ # Additionally, I allow for the case where someone might have put whitespace
1876
+ # on the "gap line"
1877
+ def parse_message
1878
+ header_part, body_part = raw_source.split(/#{CRLF}#{WSP}*#{CRLF}/m, 2)
1879
+ # index = raw_source.index(/#{CRLF}#{WSP}*#{CRLF}/m, 2)
1880
+ # self.header = (index) ? header_part[0,index] : nil
1881
+ # lazy_body ( [raw_source, index+1])
1882
+ self.header = header_part
1883
+ self.body = body_part
1884
+ end
1885
+
1886
+ def raw_source=(value)
1887
+ @raw_source = value.to_crlf
1888
+ end
1889
+
1890
+ # see comments to body=. We take data and process it lazily
1891
+ def body_lazy(value)
1892
+ process_body_raw if @body_raw && value
1893
+ case
1894
+ when value == nil || value.length<=0
1895
+ @body = Mail::Body.new('')
1896
+ @body_raw = nil
1897
+ add_encoding_to_body
1898
+ when @body && @body.multipart?
1899
+ @body << Mail::Part.new(value)
1900
+ add_encoding_to_body
1901
+ else
1902
+ @body_raw = value
1903
+ # process_body_raw
1904
+ end
1905
+ end
1906
+
1907
+
1908
+ def process_body_raw
1909
+ @body = Mail::Body.new(@body_raw)
1910
+ @body_raw = nil
1911
+ separate_parts if @separate_parts
1912
+
1913
+ add_encoding_to_body
1914
+ end
1915
+
1916
+ def set_envelope_header
1917
+ if match_data = raw_source.to_s.match(/\AFrom\s(#{TEXT}+)#{CRLF}(.*)/m)
1918
+ set_envelope(match_data[1])
1919
+ self.raw_source = match_data[2]
1920
+ end
1921
+ end
1922
+
1923
+ def separate_parts
1924
+ body.split!(boundary)
1925
+ end
1926
+
1927
+ def add_encoding_to_body
1928
+ if has_content_transfer_encoding?
1929
+ @body.encoding = content_transfer_encoding
1930
+ end
1931
+ end
1932
+
1933
+ def identify_and_set_transfer_encoding
1934
+ if body && body.multipart?
1935
+ self.content_transfer_encoding = @transport_encoding
1936
+ else
1937
+ self.content_transfer_encoding = body.get_best_encoding(@transport_encoding)
1938
+ end
1939
+ end
1940
+
1941
+ def add_required_fields
1942
+ add_multipart_mixed_header unless !body.multipart?
1943
+ body = nil if body.nil?
1944
+ add_message_id unless (has_message_id? || self.class == Mail::Part)
1945
+ add_date unless has_date?
1946
+ add_mime_version unless has_mime_version?
1947
+ add_content_type unless has_content_type?
1948
+ add_charset unless has_charset?
1949
+ add_content_transfer_encoding unless has_content_transfer_encoding?
1950
+ end
1951
+
1952
+ def add_multipart_alternate_header
1953
+ header['content-type'] = ContentTypeField.with_boundary('multipart/alternative').value
1954
+ header['content_type'].parameters[:charset] = @charset
1955
+ body.boundary = boundary
1956
+ end
1957
+
1958
+ def add_boundary
1959
+ unless body.boundary && boundary
1960
+ header['content-type'] = 'multipart/mixed' unless header['content-type']
1961
+ header['content-type'].parameters[:boundary] = ContentTypeField.generate_boundary
1962
+ header['content_type'].parameters[:charset] = @charset
1963
+ body.boundary = boundary
1964
+ end
1965
+ end
1966
+
1967
+ def add_multipart_mixed_header
1968
+ unless header['content-type']
1969
+ header['content-type'] = ContentTypeField.with_boundary('multipart/mixed').value
1970
+ header['content_type'].parameters[:charset] = @charset
1971
+ body.boundary = boundary
1972
+ end
1973
+ end
1974
+
1975
+ def init_with_hash(hash)
1976
+ passed_in_options = IndifferentHash.new(hash)
1977
+ self.raw_source = ''
1978
+
1979
+ @header = Mail::Header.new
1980
+ @body = Mail::Body.new
1981
+ @body_raw = nil
1982
+
1983
+ # We need to store the body until last, as we need all headers added first
1984
+ body_content = nil
1985
+
1986
+ passed_in_options.each_pair do |k,v|
1987
+ k = underscoreize(k).to_sym if k.class == String
1988
+ if k == :headers
1989
+ self.headers(v)
1990
+ elsif k == :body
1991
+ body_content = v
1992
+ else
1993
+ self[k] = v
1994
+ end
1995
+ end
1996
+
1997
+ if body_content
1998
+ self.body = body_content
1999
+ if has_content_transfer_encoding?
2000
+ body.encoding = content_transfer_encoding
2001
+ end
2002
+ end
2003
+ end
2004
+
2005
+ def init_with_string(string)
2006
+ self.raw_source = string
2007
+ set_envelope_header
2008
+ parse_message
2009
+ @separate_parts = multipart?
2010
+ end
2011
+
2012
+ # Returns the filename of the attachment (if it exists) or returns nil
2013
+ def find_attachment
2014
+ content_type_name = header[:content_type].filename rescue nil
2015
+ content_disp_name = header[:content_disposition].filename rescue nil
2016
+ content_loc_name = header[:content_location].location rescue nil
2017
+ case
2018
+ when content_type && content_type_name
2019
+ filename = content_type_name
2020
+ when content_disposition && content_disp_name
2021
+ filename = content_disp_name
2022
+ when content_location && content_loc_name
2023
+ filename = content_loc_name
2024
+ else
2025
+ filename = nil
2026
+ end
2027
+ filename = Mail::Encodings.decode_encode(filename, :decode) if filename rescue filename
2028
+ filename
2029
+ end
2030
+
2031
+ def do_delivery
2032
+ begin
2033
+ if perform_deliveries
2034
+ delivery_method.deliver!(self)
2035
+ end
2036
+ rescue Exception => e # Net::SMTP errors or sendmail pipe errors
2037
+ raise e if raise_delivery_errors
2038
+ end
2039
+ end
2040
+
2041
+ def decode_body_as_text
2042
+ body_text = decode_body
2043
+ if charset
2044
+ if RUBY_VERSION < '1.9'
2045
+ require 'iconv'
2046
+ return Iconv.conv("UTF-8//TRANSLIT//IGNORE", charset, body_text)
2047
+ else
2048
+ if encoding = Encoding.find(charset) rescue nil
2049
+ body_text.force_encoding(encoding)
2050
+ return body_text.encode(Encoding::UTF_8)
2051
+ end
2052
+ end
2053
+ end
2054
+ body_text
2055
+ end
2056
+
2057
+ end
2058
+ end