classiccms 0.2.4.pre → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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,1386 @@
1
+ module Sass::Script
2
+ # Methods in this module are accessible from the SassScript context.
3
+ # For example, you can write
4
+ #
5
+ # $color = hsl(120deg, 100%, 50%)
6
+ #
7
+ # and it will call {Sass::Script::Functions#hsl}.
8
+ #
9
+ # The following functions are provided:
10
+ #
11
+ # *Note: These functions are described in more detail below.*
12
+ #
13
+ # ## RGB Functions
14
+ #
15
+ # \{#rgb rgb($red, $green, $blue)}
16
+ # : Converts an `rgb(red, green, blue)` triplet into a color.
17
+ #
18
+ # \{#rgba rgba($red, $green, $blue, $alpha)}
19
+ # : Converts an `rgba(red, green, blue, alpha)` quadruplet into a color.
20
+ #
21
+ # \{#rgba rgba($color, $alpha)}
22
+ # : Adds an alpha layer to any color value.
23
+ #
24
+ # \{#red red($color)}
25
+ # : Gets the red component of a color.
26
+ #
27
+ # \{#green green($color)}
28
+ # : Gets the green component of a color.
29
+ #
30
+ # \{#blue blue($color)}
31
+ # : Gets the blue component of a color.
32
+ #
33
+ # \{#mix mix($color-1, $color-2, \[$weight\])}
34
+ # : Mixes two colors together.
35
+ #
36
+ # ## HSL Functions
37
+ #
38
+ # \{#hsl hsl($hue, $saturation, $lightness)}
39
+ # : Converts an `hsl(hue, saturation, lightness)` triplet into a color.
40
+ #
41
+ # \{#hsla hsla($hue, $saturation, $lightness, $alpha)}
42
+ # : Converts an `hsla(hue, saturation, lightness, alpha)` quadruplet into a color.
43
+ #
44
+ # \{#hue hue($color)}
45
+ # : Gets the hue component of a color.
46
+ #
47
+ # \{#saturation saturation($color)}
48
+ # : Gets the saturation component of a color.
49
+ #
50
+ # \{#lightness lightness($color)}
51
+ # : Gets the lightness component of a color.
52
+ #
53
+ # \{#adjust_hue adjust-hue($color, $degrees)}
54
+ # : Changes the hue of a color.
55
+ #
56
+ # \{#lighten lighten($color, $amount)}
57
+ # : Makes a color lighter.
58
+ #
59
+ # \{#darken darken($color, $amount)}
60
+ # : Makes a color darker.
61
+ #
62
+ # \{#saturate saturate($color, $amount)}
63
+ # : Makes a color more saturated.
64
+ #
65
+ # \{#desaturate desaturate($color, $amount)}
66
+ # : Makes a color less saturated.
67
+ #
68
+ # \{#grayscale grayscale($color)}
69
+ # : Converts a color to grayscale.
70
+ #
71
+ # \{#complement complement($color)}
72
+ # : Returns the complement of a color.
73
+ #
74
+ # \{#invert invert($color)}
75
+ # : Returns the inverse of a color.
76
+ #
77
+ # ## Opacity Functions
78
+ #
79
+ # \{#alpha alpha($color)} / \{#opacity opacity($color)}
80
+ # : Gets the alpha component (opacity) of a color.
81
+ #
82
+ # \{#rgba rgba($color, $alpha)}
83
+ # : Add or change an alpha layer for any color value.
84
+ #
85
+ # \{#opacify opacify($color, $amount)} / \{#fade_in fade-in($color, $amount)}
86
+ # : Makes a color more opaque.
87
+ #
88
+ # \{#transparentize transparentize($color, $amount)} / \{#fade_out fade-out($color, $amount)}
89
+ # : Makes a color more transparent.
90
+ #
91
+ # ## Other Color Functions
92
+ #
93
+ # \{#adjust_color adjust-color($color, \[$red\], \[$green\], \[$blue\], \[$hue\], \[$saturation\], \[$lightness\], \[$alpha\]}
94
+ # : Increase or decrease any of the components of a color.
95
+ #
96
+ # \{#scale_color scale-color($color, \[$red\], \[$green\], \[$blue\], \[$saturation\], \[$lightness\], \[$alpha\]}
97
+ # : Fluidly scale one or more components of a color.
98
+ #
99
+ # \{#change_color change-color($color, \[$red\], \[$green\], \[$blue\], \[$hue\], \[$saturation\], \[$lightness\], \[$alpha\]}
100
+ # : Changes one or more properties of a color.
101
+ #
102
+ # ## String Functions
103
+ #
104
+ # \{#unquote unquote($string)}
105
+ # : Removes the quotes from a string.
106
+ #
107
+ # \{#quote quote($string)}
108
+ # : Adds quotes to a string.
109
+ #
110
+ # ## Number Functions
111
+ #
112
+ # \{#percentage percentage($value)}
113
+ # : Converts a unitless number to a percentage.
114
+ #
115
+ # \{#round round($value)}
116
+ # : Rounds a number to the nearest whole number.
117
+ #
118
+ # \{#ceil ceil($value)}
119
+ # : Rounds a number up to the nearest whole number.
120
+ #
121
+ # \{#floor floor($value)}
122
+ # : Rounds a number down to the nearest whole number.
123
+ #
124
+ # \{#abs abs($value)}
125
+ # : Returns the absolute value of a number.
126
+ #
127
+ # ## List Functions {#list-functions}
128
+ #
129
+ # \{#length length($list)}
130
+ # : Returns the length of a list.
131
+ #
132
+ # \{#nth nth($list, $n)}
133
+ # : Returns a specific item in a list.
134
+ #
135
+ # \{#join join($list1, $list2, \[$separator\])}
136
+ # : Joins together two lists into one.
137
+ #
138
+ # ## Introspection Functions
139
+ #
140
+ # \{#type_of type-of($value)}
141
+ # : Returns the type of a value.
142
+ #
143
+ # \{#unit unit($number)}
144
+ # : Returns the units associated with a number.
145
+ #
146
+ # \{#unitless unitless($number)}
147
+ # : Returns whether a number has units or not.
148
+ #
149
+ # \{#comparable comparable($number-1, $number-2)}
150
+ # : Returns whether two numbers can be added or compared.
151
+ #
152
+ # ## Miscellaneous Functions
153
+ #
154
+ # \{#if if($condition, $if-true, $if-false)}
155
+ # : Returns one of two values, depending on whether or not a condition is true.
156
+ #
157
+ # ## Adding Custom Functions
158
+ #
159
+ # New Sass functions can be added by adding Ruby methods to this module.
160
+ # For example:
161
+ #
162
+ # module Sass::Script::Functions
163
+ # def reverse(string)
164
+ # assert_type string, :String
165
+ # Sass::Script::String.new(string.value.reverse)
166
+ # end
167
+ # declare :reverse, :args => [:string]
168
+ # end
169
+ #
170
+ # Calling {declare} tells Sass the argument names for your function.
171
+ # If omitted, the function will still work, but will not be able to accept keyword arguments.
172
+ # {declare} can also allow your function to take arbitrary keyword arguments.
173
+ #
174
+ # There are a few things to keep in mind when modifying this module.
175
+ # First of all, the arguments passed are {Sass::Script::Literal} objects.
176
+ # Literal objects are also expected to be returned.
177
+ # This means that Ruby values must be unwrapped and wrapped.
178
+ #
179
+ # Most Literal objects support the {Sass::Script::Literal#value value} accessor
180
+ # for getting their Ruby values.
181
+ # Color objects, though, must be accessed using {Sass::Script::Color#rgb rgb},
182
+ # {Sass::Script::Color#red red}, {Sass::Script::Color#blue green}, or {Sass::Script::Color#blue blue}.
183
+ #
184
+ # Second, making Ruby functions accessible from Sass introduces the temptation
185
+ # to do things like database access within stylesheets.
186
+ # This is generally a bad idea;
187
+ # since Sass files are by default only compiled once,
188
+ # dynamic code is not a great fit.
189
+ #
190
+ # If you really, really need to compile Sass on each request,
191
+ # first make sure you have adequate caching set up.
192
+ # Then you can use {Sass::Engine} to render the code,
193
+ # using the {file:SASS_REFERENCE.md#custom-option `options` parameter}
194
+ # to pass in data that {EvaluationContext#options can be accessed}
195
+ # from your Sass functions.
196
+ #
197
+ # Within one of the functions in this module,
198
+ # methods of {EvaluationContext} can be used.
199
+ #
200
+ # ### Caveats
201
+ #
202
+ # When creating new {Literal} objects within functions,
203
+ # be aware that it's not safe to call {Literal#to_s #to_s}
204
+ # (or other methods that use the string representation)
205
+ # on those objects without first setting {Node#options= the #options attribute}.
206
+ module Functions
207
+ @signatures = {}
208
+
209
+ # A class representing a Sass function signature.
210
+ #
211
+ # @attr args [Array<Symbol>] The names of the arguments to the function.
212
+ # @attr var_args [Boolean] Whether the function takes a variable number of arguments.
213
+ # @attr var_kwargs [Boolean] Whether the function takes an arbitrary set of keyword arguments.
214
+ Signature = Struct.new(:args, :var_args, :var_kwargs)
215
+
216
+ # Declare a Sass signature for a Ruby-defined function.
217
+ # This includes the names of the arguments,
218
+ # whether the function takes a variable number of arguments,
219
+ # and whether the function takes an arbitrary set of keyword arguments.
220
+ #
221
+ # It's not necessary to declare a signature for a function.
222
+ # However, without a signature it won't support keyword arguments.
223
+ #
224
+ # A single function can have multiple signatures declared
225
+ # as long as each one takes a different number of arguments.
226
+ # It's also possible to declare multiple signatures
227
+ # that all take the same number of arguments,
228
+ # but none of them but the first will be used
229
+ # unless the user uses keyword arguments.
230
+ #
231
+ # @param method_name [Symbol] The name of the method
232
+ # whose signature is being declared.
233
+ # @param args [Array<Symbol>] The names of the arguments for the function signature.
234
+ # @option options :var_args [Boolean] (false)
235
+ # Whether the function accepts a variable number of (unnamed) arguments
236
+ # in addition to the named arguments.
237
+ # @option options :var_kwargs [Boolean] (false)
238
+ # Whether the function accepts other keyword arguments
239
+ # in addition to those in `:args`.
240
+ # If this is true, the Ruby function will be passed a hash from strings
241
+ # to {Sass::Script::Literal}s as the last argument.
242
+ # In addition, if this is true and `:var_args` is not,
243
+ # Sass will ensure that the last argument passed is a hash.
244
+ #
245
+ # @example
246
+ # declare :rgba, [:hex, :alpha]
247
+ # declare :rgba, [:red, :green, :blue, :alpha]
248
+ # declare :accepts_anything, [], :var_args => true, :var_kwargs => true
249
+ # declare :some_func, [:foo, :bar, :baz], :var_kwargs => true
250
+ def self.declare(method_name, args, options = {})
251
+ @signatures[method_name] ||= []
252
+ @signatures[method_name] << Signature.new(
253
+ args.map {|s| s.to_s},
254
+ options[:var_args],
255
+ options[:var_kwargs])
256
+ end
257
+
258
+ # Determine the correct signature for the number of arguments
259
+ # passed in for a given function.
260
+ # If no signatures match, the first signature is returned for error messaging.
261
+ #
262
+ # @param method_name [Symbol] The name of the Ruby function to be called.
263
+ # @param arg_arity [Number] The number of unnamed arguments the function was passed.
264
+ # @param kwarg_arity [Number] The number of keyword arguments the function was passed.
265
+ #
266
+ # @return [{Symbol => Object}, nil]
267
+ # The signature options for the matching signature,
268
+ # or nil if no signatures are declared for this function. See {declare}.
269
+ def self.signature(method_name, arg_arity, kwarg_arity)
270
+ return unless @signatures[method_name]
271
+ @signatures[method_name].each do |signature|
272
+ return signature if signature.args.size == arg_arity + kwarg_arity
273
+ next unless signature.args.size < arg_arity + kwarg_arity
274
+
275
+ # We have enough args.
276
+ # Now we need to figure out which args are varargs
277
+ # and if the signature allows them.
278
+ t_arg_arity, t_kwarg_arity = arg_arity, kwarg_arity
279
+ if signature.args.size > t_arg_arity
280
+ # we transfer some kwargs arity to args arity
281
+ # if it does not have enough args -- assuming the names will work out.
282
+ t_kwarg_arity -= (signature.args.size - t_arg_arity)
283
+ t_arg_arity = signature.args.size
284
+ end
285
+
286
+ if ( t_arg_arity == signature.args.size || t_arg_arity > signature.args.size && signature.var_args ) &&
287
+ (t_kwarg_arity == 0 || t_kwarg_arity > 0 && signature.var_kwargs)
288
+ return signature
289
+ end
290
+ end
291
+ @signatures[method_name].first
292
+ end
293
+
294
+ # The context in which methods in {Script::Functions} are evaluated.
295
+ # That means that all instance methods of {EvaluationContext}
296
+ # are available to use in functions.
297
+ class EvaluationContext
298
+ include Functions
299
+
300
+ # The options hash for the {Sass::Engine} that is processing the function call
301
+ #
302
+ # @return [{Symbol => Object}]
303
+ attr_reader :options
304
+
305
+ # @param options [{Symbol => Object}] See \{#options}
306
+ def initialize(options)
307
+ @options = options
308
+ end
309
+
310
+ # Asserts that the type of a given SassScript value
311
+ # is the expected type (designated by a symbol).
312
+ #
313
+ # Valid types are `:Bool`, `:Color`, `:Number`, and `:String`.
314
+ # Note that `:String` will match both double-quoted strings
315
+ # and unquoted identifiers.
316
+ #
317
+ # @example
318
+ # assert_type value, :String
319
+ # assert_type value, :Number
320
+ # @param value [Sass::Script::Literal] A SassScript value
321
+ # @param type [Symbol] The name of the type the value is expected to be
322
+ # @param name [String, nil] The name of the argument.
323
+ def assert_type(value, type, name = nil)
324
+ return if value.is_a?(Sass::Script.const_get(type))
325
+ err = "#{value.inspect} is not a #{type.to_s.downcase}"
326
+ err = "$#{name}: " + err if name
327
+ raise ArgumentError.new(err)
328
+ end
329
+ end
330
+
331
+ class << self
332
+ # Returns whether user function with a given name exists.
333
+ #
334
+ # @param function_name [String]
335
+ # @return [Boolean]
336
+ alias_method :callable?, :public_method_defined?
337
+
338
+ private
339
+ def include(*args)
340
+ r = super
341
+ # We have to re-include ourselves into EvaluationContext to work around
342
+ # an icky Ruby restriction.
343
+ EvaluationContext.send :include, self
344
+ r
345
+ end
346
+ end
347
+
348
+ # Creates a {Color} object from red, green, and blue values.
349
+ #
350
+ # @param red [Number]
351
+ # A number between 0 and 255 inclusive,
352
+ # or between 0% and 100% inclusive
353
+ # @param green [Number]
354
+ # A number between 0 and 255 inclusive,
355
+ # or between 0% and 100% inclusive
356
+ # @param blue [Number]
357
+ # A number between 0 and 255 inclusive,
358
+ # or between 0% and 100% inclusive
359
+ # @see #rgba
360
+ # @return [Color]
361
+ def rgb(red, green, blue)
362
+ assert_type red, :Number
363
+ assert_type green, :Number
364
+ assert_type blue, :Number
365
+
366
+ Color.new([red, green, blue].map do |c|
367
+ v = c.value
368
+ if c.numerator_units == ["%"] && c.denominator_units.empty?
369
+ next v * 255 / 100.0 if (0..100).include?(v)
370
+ raise ArgumentError.new("Color value #{c} must be between 0% and 100% inclusive")
371
+ else
372
+ next v if (0..255).include?(v)
373
+ raise ArgumentError.new("Color value #{v} must be between 0 and 255 inclusive")
374
+ end
375
+ end)
376
+ end
377
+ declare :rgb, [:red, :green, :blue]
378
+
379
+ # @see #rgb
380
+ # @overload rgba(red, green, blue, alpha)
381
+ # Creates a {Color} object from red, green, and blue values,
382
+ # as well as an alpha channel indicating opacity.
383
+ #
384
+ # @param red [Number]
385
+ # A number between 0 and 255 inclusive
386
+ # @param green [Number]
387
+ # A number between 0 and 255 inclusive
388
+ # @param blue [Number]
389
+ # A number between 0 and 255 inclusive
390
+ # @param alpha [Number]
391
+ # A number between 0 and 1
392
+ # @return [Color]
393
+ #
394
+ # @overload rgba(color, alpha)
395
+ # Sets the opacity of a color.
396
+ #
397
+ # @example
398
+ # rgba(#102030, 0.5) => rgba(16, 32, 48, 0.5)
399
+ # rgba(blue, 0.2) => rgba(0, 0, 255, 0.2)
400
+ #
401
+ # @param color [Color]
402
+ # @param alpha [Number]
403
+ # A number between 0 and 1
404
+ # @return [Color]
405
+ def rgba(*args)
406
+ case args.size
407
+ when 2
408
+ color, alpha = args
409
+
410
+ assert_type color, :Color
411
+ assert_type alpha, :Number
412
+
413
+ unless (0..1).include?(alpha.value)
414
+ raise ArgumentError.new("Alpha channel #{alpha.value} must be between 0 and 1 inclusive")
415
+ end
416
+
417
+ color.with(:alpha => alpha.value)
418
+ when 4
419
+ red, green, blue, alpha = args
420
+ rgba(rgb(red, green, blue), alpha)
421
+ else
422
+ raise ArgumentError.new("wrong number of arguments (#{args.size} for 4)")
423
+ end
424
+ end
425
+ declare :rgba, [:red, :green, :blue, :alpha]
426
+ declare :rgba, [:color, :alpha]
427
+
428
+ # Creates a {Color} object from hue, saturation, and lightness.
429
+ # Uses the algorithm from the [CSS3 spec](http://www.w3.org/TR/css3-color/#hsl-color).
430
+ #
431
+ # @param hue [Number] The hue of the color.
432
+ # Should be between 0 and 360 degrees, inclusive
433
+ # @param saturation [Number] The saturation of the color.
434
+ # Must be between `0%` and `100%`, inclusive
435
+ # @param lightness [Number] The lightness of the color.
436
+ # Must be between `0%` and `100%`, inclusive
437
+ # @return [Color] The resulting color
438
+ # @see #hsla
439
+ # @raise [ArgumentError] if `saturation` or `lightness` are out of bounds
440
+ def hsl(hue, saturation, lightness)
441
+ hsla(hue, saturation, lightness, Number.new(1))
442
+ end
443
+ declare :hsl, [:hue, :saturation, :lightness]
444
+
445
+ # Creates a {Color} object from hue, saturation, and lightness,
446
+ # as well as an alpha channel indicating opacity.
447
+ # Uses the algorithm from the [CSS3 spec](http://www.w3.org/TR/css3-color/#hsl-color).
448
+ #
449
+ # @param hue [Number] The hue of the color.
450
+ # Should be between 0 and 360 degrees, inclusive
451
+ # @param saturation [Number] The saturation of the color.
452
+ # Must be between `0%` and `100%`, inclusive
453
+ # @param lightness [Number] The lightness of the color.
454
+ # Must be between `0%` and `100%`, inclusive
455
+ # @param alpha [Number] The opacity of the color.
456
+ # Must be between 0 and 1, inclusive
457
+ # @return [Color] The resulting color
458
+ # @see #hsl
459
+ # @raise [ArgumentError] if `saturation`, `lightness`, or `alpha` are out of bounds
460
+ def hsla(hue, saturation, lightness, alpha)
461
+ assert_type hue, :Number
462
+ assert_type saturation, :Number
463
+ assert_type lightness, :Number
464
+ assert_type alpha, :Number
465
+
466
+ unless (0..1).include?(alpha.value)
467
+ raise ArgumentError.new("Alpha channel #{alpha.value} must be between 0 and 1")
468
+ end
469
+
470
+ original_s = saturation
471
+ original_l = lightness
472
+ # This algorithm is from http://www.w3.org/TR/css3-color#hsl-color
473
+ h, s, l = [hue, saturation, lightness].map { |a| a.value }
474
+ raise ArgumentError.new("Saturation #{s} must be between 0% and 100%") unless (0..100).include?(s)
475
+ raise ArgumentError.new("Lightness #{l} must be between 0% and 100%") unless (0..100).include?(l)
476
+
477
+ Color.new(:hue => h, :saturation => s, :lightness => l, :alpha => alpha.value)
478
+ end
479
+ declare :hsla, [:hue, :saturation, :lightness, :alpha]
480
+
481
+ # Returns the red component of a color.
482
+ #
483
+ # @param color [Color]
484
+ # @return [Number]
485
+ # @raise [ArgumentError] If `color` isn't a color
486
+ def red(color)
487
+ assert_type color, :Color
488
+ Sass::Script::Number.new(color.red)
489
+ end
490
+ declare :red, [:color]
491
+
492
+ # Returns the green component of a color.
493
+ #
494
+ # @param color [Color]
495
+ # @return [Number]
496
+ # @raise [ArgumentError] If `color` isn't a color
497
+ def green(color)
498
+ assert_type color, :Color
499
+ Sass::Script::Number.new(color.green)
500
+ end
501
+ declare :green, [:color]
502
+
503
+ # Returns the blue component of a color.
504
+ #
505
+ # @param color [Color]
506
+ # @return [Number]
507
+ # @raise [ArgumentError] If `color` isn't a color
508
+ def blue(color)
509
+ assert_type color, :Color
510
+ Sass::Script::Number.new(color.blue)
511
+ end
512
+ declare :blue, [:color]
513
+
514
+ # Returns the hue component of a color.
515
+ #
516
+ # See [the CSS3 HSL specification](http://en.wikipedia.org/wiki/HSL_and_HSV#Conversion_from_RGB_to_HSL_or_HSV).
517
+ #
518
+ # Calculated from RGB where necessary via [this algorithm](http://en.wikipedia.org/wiki/HSL_and_HSV#Conversion_from_RGB_to_HSL_or_HSV).
519
+ #
520
+ # @param color [Color]
521
+ # @return [Number] between 0deg and 360deg
522
+ # @see #adjust_hue
523
+ # @raise [ArgumentError] if `color` isn't a color
524
+ def hue(color)
525
+ assert_type color, :Color
526
+ Sass::Script::Number.new(color.hue, ["deg"])
527
+ end
528
+ declare :hue, [:color]
529
+
530
+ # Returns the saturation component of a color.
531
+ #
532
+ # See [the CSS3 HSL specification](http://en.wikipedia.org/wiki/HSL_and_HSV#Conversion_from_RGB_to_HSL_or_HSV).
533
+ #
534
+ # Calculated from RGB where necessary via [this algorithm](http://en.wikipedia.org/wiki/HSL_and_HSV#Conversion_from_RGB_to_HSL_or_HSV).
535
+ #
536
+ # @param color [Color]
537
+ # @return [Number] between 0% and 100%
538
+ # @see #saturate
539
+ # @see #desaturate
540
+ # @raise [ArgumentError] if `color` isn't a color
541
+ def saturation(color)
542
+ assert_type color, :Color
543
+ Sass::Script::Number.new(color.saturation, ["%"])
544
+ end
545
+ declare :saturation, [:color]
546
+
547
+ # Returns the hue component of a color.
548
+ #
549
+ # See [the CSS3 HSL specification](http://en.wikipedia.org/wiki/HSL_and_HSV#Conversion_from_RGB_to_HSL_or_HSV).
550
+ #
551
+ # Calculated from RGB where necessary via [this algorithm](http://en.wikipedia.org/wiki/HSL_and_HSV#Conversion_from_RGB_to_HSL_or_HSV).
552
+ #
553
+ # @param color [Color]
554
+ # @return [Number] between 0% and 100%
555
+ # @see #lighten
556
+ # @see #darken
557
+ # @raise [ArgumentError] if `color` isn't a color
558
+ def lightness(color)
559
+ assert_type color, :Color
560
+ Sass::Script::Number.new(color.lightness, ["%"])
561
+ end
562
+ declare :lightness, [:color]
563
+
564
+ # Returns the alpha component (opacity) of a color.
565
+ # This is 1 unless otherwise specified.
566
+ #
567
+ # This function also supports the proprietary Microsoft
568
+ # `alpha(opacity=20)` syntax.
569
+ #
570
+ # @overload def alpha(color)
571
+ # @param color [Color]
572
+ # @return [Number]
573
+ # @see #opacify
574
+ # @see #transparentize
575
+ # @raise [ArgumentError] If `color` isn't a color
576
+ def alpha(*args)
577
+ if args.all? do |a|
578
+ a.is_a?(Sass::Script::String) && a.type == :identifier &&
579
+ a.value =~ /^[a-zA-Z]+\s*=/
580
+ end
581
+ # Support the proprietary MS alpha() function
582
+ return Sass::Script::String.new("alpha(#{args.map {|a| a.to_s}.join(", ")})")
583
+ end
584
+
585
+ opacity(*args)
586
+ end
587
+ declare :alpha, [:color]
588
+
589
+ # Returns the alpha component (opacity) of a color.
590
+ # This is 1 unless otherwise specified.
591
+ #
592
+ # @param color [Color]
593
+ # @return [Number]
594
+ # @see #opacify
595
+ # @see #transparentize
596
+ # @raise [ArgumentError] If `color` isn't a color
597
+ def opacity(color)
598
+ assert_type color, :Color
599
+ Sass::Script::Number.new(color.alpha)
600
+ end
601
+ declare :opacity, [:color]
602
+
603
+ # Makes a color more opaque.
604
+ # Takes a color and an amount between 0 and 1,
605
+ # and returns a color with the opacity increased by that value.
606
+ #
607
+ # @example
608
+ # opacify(rgba(0, 0, 0, 0.5), 0.1) => rgba(0, 0, 0, 0.6)
609
+ # opacify(rgba(0, 0, 17, 0.8), 0.2) => #001
610
+ # @param color [Color]
611
+ # @param amount [Number]
612
+ # @return [Color]
613
+ # @see #transparentize
614
+ # @raise [ArgumentError] If `color` isn't a color,
615
+ # or `number` isn't a number between 0 and 1
616
+ def opacify(color, amount)
617
+ _adjust(color, amount, :alpha, 0..1, :+)
618
+ end
619
+ declare :opacify, [:color, :amount]
620
+
621
+ alias_method :fade_in, :opacify
622
+ declare :fade_in, [:color, :amount]
623
+
624
+ # Makes a color more transparent.
625
+ # Takes a color and an amount between 0 and 1,
626
+ # and returns a color with the opacity decreased by that value.
627
+ #
628
+ # @example
629
+ # transparentize(rgba(0, 0, 0, 0.5), 0.1) => rgba(0, 0, 0, 0.4)
630
+ # transparentize(rgba(0, 0, 0, 0.8), 0.2) => rgba(0, 0, 0, 0.6)
631
+ # @param color [Color]
632
+ # @param amount [Number]
633
+ # @return [Color]
634
+ # @see #opacify
635
+ # @raise [ArgumentError] If `color` isn't a color,
636
+ # or `number` isn't a number between 0 and 1
637
+ def transparentize(color, amount)
638
+ _adjust(color, amount, :alpha, 0..1, :-)
639
+ end
640
+ declare :transparentize, [:color, :amount]
641
+
642
+ alias_method :fade_out, :transparentize
643
+ declare :fade_out, [:color, :amount]
644
+
645
+ # Makes a color lighter.
646
+ # Takes a color and an amount between 0% and 100%,
647
+ # and returns a color with the lightness increased by that value.
648
+ #
649
+ # @example
650
+ # lighten(hsl(0, 0%, 0%), 30%) => hsl(0, 0, 30)
651
+ # lighten(#800, 20%) => #e00
652
+ # @param color [Color]
653
+ # @param amount [Number]
654
+ # @return [Color]
655
+ # @see #darken
656
+ # @raise [ArgumentError] If `color` isn't a color,
657
+ # or `number` isn't a number between 0% and 100%
658
+ def lighten(color, amount)
659
+ _adjust(color, amount, :lightness, 0..100, :+, "%")
660
+ end
661
+ declare :lighten, [:color, :amount]
662
+
663
+ # Makes a color darker.
664
+ # Takes a color and an amount between 0% and 100%,
665
+ # and returns a color with the lightness decreased by that value.
666
+ #
667
+ # @example
668
+ # darken(hsl(25, 100%, 80%), 30%) => hsl(25, 100%, 50%)
669
+ # darken(#800, 20%) => #200
670
+ # @param color [Color]
671
+ # @param amount [Number]
672
+ # @return [Color]
673
+ # @see #lighten
674
+ # @raise [ArgumentError] If `color` isn't a color,
675
+ # or `number` isn't a number between 0% and 100%
676
+ def darken(color, amount)
677
+ _adjust(color, amount, :lightness, 0..100, :-, "%")
678
+ end
679
+ declare :darken, [:color, :amount]
680
+
681
+ # Makes a color more saturated.
682
+ # Takes a color and an amount between 0% and 100%,
683
+ # and returns a color with the saturation increased by that value.
684
+ #
685
+ # @example
686
+ # saturate(hsl(120, 30%, 90%), 20%) => hsl(120, 50%, 90%)
687
+ # saturate(#855, 20%) => #9e3f3f
688
+ # @param color [Color]
689
+ # @param amount [Number]
690
+ # @return [Color]
691
+ # @see #desaturate
692
+ # @raise [ArgumentError] If `color` isn't a color,
693
+ # or `number` isn't a number between 0% and 100%
694
+ def saturate(color, amount)
695
+ _adjust(color, amount, :saturation, 0..100, :+, "%")
696
+ end
697
+ declare :saturate, [:color, :amount]
698
+
699
+ # Makes a color less saturated.
700
+ # Takes a color and an amount between 0% and 100%,
701
+ # and returns a color with the saturation decreased by that value.
702
+ #
703
+ # @example
704
+ # desaturate(hsl(120, 30%, 90%), 20%) => hsl(120, 10%, 90%)
705
+ # desaturate(#855, 20%) => #726b6b
706
+ # @param color [Color]
707
+ # @param amount [Number]
708
+ # @return [Color]
709
+ # @see #saturate
710
+ # @raise [ArgumentError] If `color` isn't a color,
711
+ # or `number` isn't a number between 0% and 100%
712
+ def desaturate(color, amount)
713
+ _adjust(color, amount, :saturation, 0..100, :-, "%")
714
+ end
715
+ declare :desaturate, [:color, :amount]
716
+
717
+ # Changes the hue of a color while retaining the lightness and saturation.
718
+ # Takes a color and a number of degrees (usually between -360deg and 360deg),
719
+ # and returns a color with the hue rotated by that value.
720
+ #
721
+ # @example
722
+ # adjust-hue(hsl(120, 30%, 90%), 60deg) => hsl(180, 30%, 90%)
723
+ # adjust-hue(hsl(120, 30%, 90%), 060deg) => hsl(60, 30%, 90%)
724
+ # adjust-hue(#811, 45deg) => #886a11
725
+ # @param color [Color]
726
+ # @param amount [Number]
727
+ # @return [Color]
728
+ # @raise [ArgumentError] If `color` isn't a color, or `number` isn't a number
729
+ def adjust_hue(color, degrees)
730
+ assert_type color, :Color
731
+ assert_type degrees, :Number
732
+ color.with(:hue => color.hue + degrees.value)
733
+ end
734
+ declare :adjust_hue, [:color, :degrees]
735
+
736
+ # Adjusts one or more properties of a color.
737
+ # This can change the red, green, blue, hue, saturation, value, and alpha properties.
738
+ # The properties are specified as keyword arguments,
739
+ # and are added to or subtracted from the color's current value for that property.
740
+ #
741
+ # `$red`, `$green`, and `$blue` properties should be between 0 and 255.
742
+ # `$saturation` and `$lightness` should be between 0% and 100%.
743
+ # `$alpha` should be between 0 and 1.
744
+ #
745
+ # All properties are optional.
746
+ # You can't specify both RGB properties (`$red`, `$green`, `$blue`)
747
+ # and HSL properties (`$hue`, `$saturation`, `$value`) at the same time.
748
+ #
749
+ # @example
750
+ # adjust-color(#102030, $blue: 5) => #102035
751
+ # adjust-color(#102030, $red: -5, $blue: 5) => #0b2035
752
+ # adjust-color(hsl(25, 100%, 80%), $lightness: -30%, $alpha: -0.4) => hsla(25, 100%, 50%, 0.6)
753
+ # @param color [Color]
754
+ # @param red [Number]
755
+ # @param green [Number]
756
+ # @param blue [Number]
757
+ # @param hue [Number]
758
+ # @param saturation [Number]
759
+ # @param lightness [Number]
760
+ # @param alpha [Number]
761
+ # @return [Color]
762
+ # @raise [ArgumentError] if `color` is not a color,
763
+ # if any keyword argument is not a number,
764
+ # if any keyword argument is not in the legal range,
765
+ # if an unexpected keyword argument is given,
766
+ # or if both HSL and RGB properties are given.
767
+ def adjust_color(color, kwargs)
768
+ assert_type color, :Color
769
+ with = Sass::Util.map_hash({
770
+ "red" => [-255..255, ""],
771
+ "green" => [-255..255, ""],
772
+ "blue" => [-255..255, ""],
773
+ "hue" => nil,
774
+ "saturation" => [-100..100, "%"],
775
+ "lightness" => [-100..100, "%"],
776
+ "alpha" => [-1..1, ""]
777
+ }) do |name, (range, units)|
778
+
779
+ next unless val = kwargs.delete(name)
780
+ assert_type val, :Number, name
781
+ if range && !range.include?(val.value)
782
+ raise ArgumentError.new("$#{name}: Amount #{val} must be between #{range.first}#{units} and #{range.last}#{units}")
783
+ end
784
+ adjusted = color.send(name) + val.value
785
+ adjusted = [0, Sass::Util.restrict(adjusted, range)].max if range
786
+ [name.to_sym, adjusted]
787
+ end
788
+
789
+ unless kwargs.empty?
790
+ name, val = kwargs.to_a.first
791
+ raise ArgumentError.new("Unknown argument $#{name} (#{val})")
792
+ end
793
+
794
+ color.with(with)
795
+ end
796
+ declare :adjust_color, [:color], :var_kwargs => true
797
+
798
+ # Scales one or more properties of a color by a percentage value.
799
+ # Unlike \{#adjust_color adjust-color}, which changes a color's properties by fixed amounts,
800
+ # \{#scale_color scale-color} fluidly changes them based on how high or low they already are.
801
+ # That means that lightening an already-light color with \{#scale_color scale-color}
802
+ # won't change the lightness much,
803
+ # but lightening a dark color by the same amount will change it more dramatically.
804
+ # This has the benefit of making `scale-color($color, ...)` have a similar effect
805
+ # regardless of what `$color` is.
806
+ #
807
+ # For example, the lightness of a color can be anywhere between 0 and 100.
808
+ # If `scale-color($color, $lightness: 40%)` is called, the resulting color's lightness
809
+ # will be 40% of the way between its original lightness and 100.
810
+ # If `scale-color($color, $lightness: -40%)` is called instead,
811
+ # the lightness will be 40% of the way between the original and 0.
812
+ #
813
+ # This can change the red, green, blue, saturation, value, and alpha properties.
814
+ # The properties are specified as keyword arguments.
815
+ # All arguments should be percentages between 0% and 100%.
816
+ #
817
+ # All properties are optional.
818
+ # You can't specify both RGB properties (`$red`, `$green`, `$blue`)
819
+ # and HSL properties (`$saturation`, `$value`) at the same time.
820
+ #
821
+ # @example
822
+ # scale-color(hsl(120, 70, 80), $lightness: 50%) => hsl(120, 70, 90)
823
+ # scale-color(rgb(200, 150, 170), $green: -40%, $blue: 70%) => rgb(200, 90, 229)
824
+ # scale-color(hsl(200, 70, 80), $saturation: -90%, $alpha: -30%) => hsla(200, 7, 80, 0.7)
825
+ # @param color [Color]
826
+ # @param red [Number]
827
+ # @param green [Number]
828
+ # @param blue [Number]
829
+ # @param saturation [Number]
830
+ # @param lightness [Number]
831
+ # @param alpha [Number]
832
+ # @return [Color]
833
+ # @raise [ArgumentError] if `color` is not a color,
834
+ # if any keyword argument is not a percentage between 0% and 100%,
835
+ # if an unexpected keyword argument is given,
836
+ # or if both HSL and RGB properties are given.
837
+ def scale_color(color, kwargs)
838
+ assert_type color, :Color
839
+ with = Sass::Util.map_hash({
840
+ "red" => 255,
841
+ "green" => 255,
842
+ "blue" => 255,
843
+ "saturation" => 100,
844
+ "lightness" => 100,
845
+ "alpha" => 1
846
+ }) do |name, max|
847
+
848
+ next unless val = kwargs.delete(name)
849
+ assert_type val, :Number, name
850
+ if !(val.numerator_units == ['%'] && val.denominator_units.empty?)
851
+ raise ArgumentError.new("$#{name}: Amount #{val} must be a % (e.g. #{val.value}%)")
852
+ elsif !(-100..100).include?(val.value)
853
+ raise ArgumentError.new("$#{name}: Amount #{val} must be between -100% and 100%")
854
+ end
855
+
856
+ current = color.send(name)
857
+ scale = val.value/100.0
858
+ diff = scale > 0 ? max - current : current
859
+ [name.to_sym, current + diff*scale]
860
+ end
861
+
862
+ unless kwargs.empty?
863
+ name, val = kwargs.to_a.first
864
+ raise ArgumentError.new("Unknown argument $#{name} (#{val})")
865
+ end
866
+
867
+ color.with(with)
868
+ end
869
+ declare :scale_color, [:color], :var_kwargs => true
870
+
871
+ # Changes one or more properties of a color.
872
+ # This can change the red, green, blue, hue, saturation, value, and alpha properties.
873
+ # The properties are specified as keyword arguments,
874
+ # and replace the color's current value for that property.
875
+ #
876
+ # `$red`, `$green`, and `$blue` properties should be between 0 and 255.
877
+ # `$saturation` and `$lightness` should be between 0% and 100%.
878
+ # `$alpha` should be between 0 and 1.
879
+ #
880
+ # All properties are optional.
881
+ # You can't specify both RGB properties (`$red`, `$green`, `$blue`)
882
+ # and HSL properties (`$hue`, `$saturation`, `$value`) at the same time.
883
+ #
884
+ # @example
885
+ # change-color(#102030, $blue: 5) => #102005
886
+ # change-color(#102030, $red: 120, $blue: 5) => #782005
887
+ # change-color(hsl(25, 100%, 80%), $lightness: 40%, $alpha: 0.8) => hsla(25, 100%, 40%, 0.8)
888
+ # @param color [Color]
889
+ # @param red [Number]
890
+ # @param green [Number]
891
+ # @param blue [Number]
892
+ # @param hue [Number]
893
+ # @param saturation [Number]
894
+ # @param lightness [Number]
895
+ # @param alpha [Number]
896
+ # @return [Color]
897
+ # @raise [ArgumentError] if `color` is not a color,
898
+ # if any keyword argument is not a number,
899
+ # if any keyword argument is not in the legal range,
900
+ # if an unexpected keyword argument is given,
901
+ # or if both HSL and RGB properties are given.
902
+ def change_color(color, kwargs)
903
+ assert_type color, :Color
904
+ with = Sass::Util.map_hash(%w[red green blue hue saturation lightness alpha]) do |name, max|
905
+ next unless val = kwargs.delete(name)
906
+ assert_type val, :Number, name
907
+ [name.to_sym, val.value]
908
+ end
909
+
910
+ unless kwargs.empty?
911
+ name, val = kwargs.to_a.first
912
+ raise ArgumentError.new("Unknown argument $#{name} (#{val})")
913
+ end
914
+
915
+ color.with(with)
916
+ end
917
+ declare :change_color, [:color], :var_kwargs => true
918
+
919
+ # Mixes together two colors.
920
+ # Specifically, takes the average of each of the RGB components,
921
+ # optionally weighted by the given percentage.
922
+ # The opacity of the colors is also considered when weighting the components.
923
+ #
924
+ # The weight specifies the amount of the first color that should be included
925
+ # in the returned color.
926
+ # The default, 50%, means that half the first color
927
+ # and half the second color should be used.
928
+ # 25% means that a quarter of the first color
929
+ # and three quarters of the second color should be used.
930
+ #
931
+ # @example
932
+ # mix(#f00, #00f) => #7f007f
933
+ # mix(#f00, #00f, 25%) => #3f00bf
934
+ # mix(rgba(255, 0, 0, 0.5), #00f) => rgba(63, 0, 191, 0.75)
935
+ # @overload mix(color1, color2, weight: 50%)
936
+ # @param color1 [Color]
937
+ # @param color2 [Color]
938
+ # @param weight [Number] between 0% and 100%
939
+ # @return [Color]
940
+ # @raise [ArgumentError] if `color1` or `color2` aren't colors,
941
+ # or `weight` isn't a number between 0% and 100%
942
+ def mix(color1, color2, weight = Number.new(50))
943
+ assert_type color1, :Color
944
+ assert_type color2, :Color
945
+ assert_type weight, :Number
946
+
947
+ unless (0..100).include?(weight.value)
948
+ raise ArgumentError.new("Weight #{weight} must be between 0% and 100%")
949
+ end
950
+
951
+ # This algorithm factors in both the user-provided weight
952
+ # and the difference between the alpha values of the two colors
953
+ # to decide how to perform the weighted average of the two RGB values.
954
+ #
955
+ # It works by first normalizing both parameters to be within [-1, 1],
956
+ # where 1 indicates "only use color1", -1 indicates "only use color 0",
957
+ # and all values in between indicated a proportionately weighted average.
958
+ #
959
+ # Once we have the normalized variables w and a,
960
+ # we apply the formula (w + a)/(1 + w*a)
961
+ # to get the combined weight (in [-1, 1]) of color1.
962
+ # This formula has two especially nice properties:
963
+ #
964
+ # * When either w or a are -1 or 1, the combined weight is also that number
965
+ # (cases where w * a == -1 are undefined, and handled as a special case).
966
+ #
967
+ # * When a is 0, the combined weight is w, and vice versa
968
+ #
969
+ # Finally, the weight of color1 is renormalized to be within [0, 1]
970
+ # and the weight of color2 is given by 1 minus the weight of color1.
971
+ p = weight.value/100.0
972
+ w = p*2 - 1
973
+ a = color1.alpha - color2.alpha
974
+
975
+ w1 = (((w * a == -1) ? w : (w + a)/(1 + w*a)) + 1)/2.0
976
+ w2 = 1 - w1
977
+
978
+ rgb = color1.rgb.zip(color2.rgb).map {|v1, v2| v1*w1 + v2*w2}
979
+ alpha = color1.alpha*p + color2.alpha*(1-p)
980
+ Color.new(rgb + [alpha])
981
+ end
982
+ declare :mix, [:color_1, :color_2]
983
+ declare :mix, [:color_1, :color_2, :weight]
984
+
985
+ # Converts a color to grayscale.
986
+ # This is identical to `desaturate(color, 100%)`.
987
+ #
988
+ # @param color [Color]
989
+ # @return [Color]
990
+ # @raise [ArgumentError] if `color` isn't a color
991
+ # @see #desaturate
992
+ def grayscale(color)
993
+ desaturate color, Number.new(100)
994
+ end
995
+ declare :grayscale, [:color]
996
+
997
+ # Returns the complement of a color.
998
+ # This is identical to `adjust-hue(color, 180deg)`.
999
+ #
1000
+ # @param color [Color]
1001
+ # @return [Color]
1002
+ # @raise [ArgumentError] if `color` isn't a color
1003
+ # @see #adjust_hue #adjust-hue
1004
+ def complement(color)
1005
+ adjust_hue color, Number.new(180)
1006
+ end
1007
+ declare :complement, [:color]
1008
+
1009
+ # Returns the inverse (negative) of a color.
1010
+ # The red, green, and blue values are inverted, while the opacity is left alone.
1011
+ #
1012
+ # @param color [Color]
1013
+ # @return [Color]
1014
+ # @raise [ArgumentError] if `color` isn't a color
1015
+ def invert(color)
1016
+ assert_type color, :Color
1017
+ color.with(
1018
+ :red => (255 - color.red),
1019
+ :green => (255 - color.green),
1020
+ :blue => (255 - color.blue))
1021
+ end
1022
+
1023
+ # Removes quotes from a string if the string is quoted,
1024
+ # or returns the same string if it's not.
1025
+ #
1026
+ # @param string [String]
1027
+ # @return [String]
1028
+ # @raise [ArgumentError] if `string` isn't a string
1029
+ # @see #quote
1030
+ # @example
1031
+ # unquote("foo") => foo
1032
+ # unquote(foo) => foo
1033
+ def unquote(string)
1034
+ if string.is_a?(Sass::Script::String)
1035
+ Sass::Script::String.new(string.value, :identifier)
1036
+ else
1037
+ string
1038
+ end
1039
+ end
1040
+ declare :unquote, [:string]
1041
+
1042
+ # Add quotes to a string if the string isn't quoted,
1043
+ # or returns the same string if it is.
1044
+ #
1045
+ # @param string [String]
1046
+ # @return [String]
1047
+ # @raise [ArgumentError] if `string` isn't a string
1048
+ # @see #unquote
1049
+ # @example
1050
+ # quote("foo") => "foo"
1051
+ # quote(foo) => "foo"
1052
+ def quote(string)
1053
+ assert_type string, :String
1054
+ Sass::Script::String.new(string.value, :string)
1055
+ end
1056
+ declare :quote, [:string]
1057
+
1058
+ # Inspects the type of the argument, returning it as an unquoted string.
1059
+ #
1060
+ # @example
1061
+ # type-of(100px) => number
1062
+ # type-of(asdf) => string
1063
+ # type-of("asdf") => string
1064
+ # type-of(true) => bool
1065
+ # type-of(#fff) => color
1066
+ # type-of(blue) => color
1067
+ # @param value [Literal] The object to inspect
1068
+ # @return [String] The unquoted string name of the literal's type
1069
+ def type_of(value)
1070
+ Sass::Script::String.new(value.class.name.gsub(/Sass::Script::/,'').downcase)
1071
+ end
1072
+ declare :type_of, [:value]
1073
+
1074
+ # Inspects the unit of the number, returning it as a quoted string.
1075
+ # Complex units are sorted in alphabetical order by numerator and denominator.
1076
+ #
1077
+ # @example
1078
+ # unit(100) => ""
1079
+ # unit(100px) => "px"
1080
+ # unit(3em) => "em"
1081
+ # unit(10px * 5em) => "em*px"
1082
+ # unit(10px * 5em / 30cm / 1rem) => "em*px/cm*rem"
1083
+ # @param number [Literal] The number to inspect
1084
+ # @return [String] The unit(s) of the number
1085
+ # @raise [ArgumentError] if `number` isn't a number
1086
+ def unit(number)
1087
+ assert_type number, :Number
1088
+ Sass::Script::String.new(number.unit_str, :string)
1089
+ end
1090
+ declare :unit, [:number]
1091
+
1092
+ # Inspects the unit of the number, returning a boolean indicating if it is unitless.
1093
+ #
1094
+ # @example
1095
+ # unitless(100) => true
1096
+ # unitless(100px) => false
1097
+ # @param number [Literal] The number to inspect
1098
+ # @return [Bool] Whether or not the number is unitless
1099
+ # @raise [ArgumentError] if `number` isn't a number
1100
+ def unitless(number)
1101
+ assert_type number, :Number
1102
+ Sass::Script::Bool.new(number.unitless?)
1103
+ end
1104
+ declare :unitless, [:number]
1105
+
1106
+ # Returns true if two numbers are similar enough to be added, subtracted, or compared.
1107
+ #
1108
+ # @example
1109
+ # comparable(2px, 1px) => true
1110
+ # comparable(100px, 3em) => false
1111
+ # comparable(10cm, 3mm) => true
1112
+ # @param number_1 [Number]
1113
+ # @param number_2 [Number]
1114
+ # @return [Bool] indicating if the numbers can be compared.
1115
+ # @raise [ArgumentError] if `number_1` or `number_2` aren't numbers
1116
+ def comparable(number_1, number_2)
1117
+ assert_type number_1, :Number
1118
+ assert_type number_2, :Number
1119
+ Sass::Script::Bool.new(number_1.comparable_to?(number_2))
1120
+ end
1121
+ declare :comparable, [:number_1, :number_2]
1122
+
1123
+ # Converts a decimal number to a percentage.
1124
+ #
1125
+ # @example
1126
+ # percentage(100px / 50px) => 200%
1127
+ # @param value [Number] The decimal number to convert to a percentage
1128
+ # @return [Number] The percentage
1129
+ # @raise [ArgumentError] If `value` isn't a unitless number
1130
+ def percentage(value)
1131
+ unless value.is_a?(Sass::Script::Number) && value.unitless?
1132
+ raise ArgumentError.new("#{value.inspect} is not a unitless number")
1133
+ end
1134
+ Sass::Script::Number.new(value.value * 100, ['%'])
1135
+ end
1136
+ declare :percentage, [:value]
1137
+
1138
+ # Rounds a number to the nearest whole number.
1139
+ #
1140
+ # @example
1141
+ # round(10.4px) => 10px
1142
+ # round(10.6px) => 11px
1143
+ # @param value [Number] The number
1144
+ # @return [Number] The rounded number
1145
+ # @raise [ArgumentError] if `value` isn't a number
1146
+ def round(value)
1147
+ numeric_transformation(value) {|n| n.round}
1148
+ end
1149
+ declare :round, [:value]
1150
+
1151
+ # Rounds a number up to the nearest whole number.
1152
+ #
1153
+ # @example
1154
+ # ciel(10.4px) => 11px
1155
+ # ciel(10.6px) => 11px
1156
+ # @param value [Number] The number
1157
+ # @return [Number] The rounded number
1158
+ # @raise [ArgumentError] if `value` isn't a number
1159
+ def ceil(value)
1160
+ numeric_transformation(value) {|n| n.ceil}
1161
+ end
1162
+ declare :ceil, [:value]
1163
+
1164
+ # Rounds down to the nearest whole number.
1165
+ #
1166
+ # @example
1167
+ # floor(10.4px) => 10px
1168
+ # floor(10.6px) => 10px
1169
+ # @param value [Number] The number
1170
+ # @return [Number] The rounded number
1171
+ # @raise [ArgumentError] if `value` isn't a number
1172
+ def floor(value)
1173
+ numeric_transformation(value) {|n| n.floor}
1174
+ end
1175
+ declare :floor, [:value]
1176
+
1177
+ # Finds the absolute value of a number.
1178
+ #
1179
+ # @example
1180
+ # abs(10px) => 10px
1181
+ # abs(-10px) => 10px
1182
+ # @param value [Number] The number
1183
+ # @return [Number] The absolute value
1184
+ # @raise [ArgumentError] if `value` isn't a number
1185
+ def abs(value)
1186
+ numeric_transformation(value) {|n| n.abs}
1187
+ end
1188
+ declare :abs, [:value]
1189
+
1190
+ # Return the length of a list.
1191
+ #
1192
+ # @example
1193
+ # length(10px) => 1
1194
+ # length(10px 20px 30px) => 3
1195
+ # @param list [Literal] The list
1196
+ # @return [Number] The length
1197
+ def length(list)
1198
+ Sass::Script::Number.new(list.to_a.size)
1199
+ end
1200
+ declare :length, [:list]
1201
+
1202
+ # Gets the nth item in a list.
1203
+ #
1204
+ # Note that unlike some languages, the first item in a Sass list is number 1,
1205
+ # the second number 2, and so forth.
1206
+ #
1207
+ # @example
1208
+ # nth(10px 20px 30px, 1) => 10px
1209
+ # nth((Helvetica, Arial, sans-serif), 3) => sans-serif
1210
+ # @param list [Literal] The list
1211
+ # @param n [Number] The index into the list
1212
+ # @return [Literal] The nth item in the list
1213
+ # @raise [ArgumentError] If `n` isn't an integer between 1 and the list's length.
1214
+ def nth(list, n)
1215
+ assert_type n, :Number
1216
+ if !n.int?
1217
+ raise ArgumentError.new("List index #{n} must be an integer")
1218
+ elsif n.to_i < 1
1219
+ raise ArgumentError.new("List index #{n} must be greater than or equal to 1")
1220
+ elsif list.to_a.size == 0
1221
+ raise ArgumentError.new("List index is #{n} but list has no items")
1222
+ elsif n.to_i > (size = list.to_a.size)
1223
+ raise ArgumentError.new("List index is #{n} but list is only #{size} item#{'s' if size != 1} long")
1224
+ end
1225
+
1226
+ list.to_a[n.to_i - 1]
1227
+ end
1228
+ declare :nth, [:list, :n]
1229
+
1230
+ # Joins together two lists into a new list.
1231
+ #
1232
+ # Unless the `$separator` argument is passed,
1233
+ # if one list is comma-separated and one is space-separated,
1234
+ # the first parameter's separator is used for the resulting list.
1235
+ # If the lists have only one item each, spaces are used for the resulting list.
1236
+ #
1237
+ # @example
1238
+ # join(10px 20px, 30px 40px) => 10px 20px 30px 40px
1239
+ # join((blue, red), (#abc, #def)) => blue, red, #abc, #def
1240
+ # join(10px, 20px) => 10px 20px
1241
+ # join(10px, 20px, comma) => 10px, 20px
1242
+ # join((blue, red), (#abc, #def), space) => blue red #abc #def
1243
+ # @overload join(list1, list2, separator: auto)
1244
+ # @param list1 [Literal] The first list to join
1245
+ # @param list2 [Literal] The second list to join
1246
+ # @param separator [String] How the list separator (comma or space) should be determined.
1247
+ # If this is `comma` or `space`, that is always the separator;
1248
+ # if this is `auto` (the default), the separator is determined as explained above.
1249
+ def join(list1, list2, separator = Sass::Script::String.new("auto"))
1250
+ assert_type separator, :String
1251
+ unless %w[auto space comma].include?(separator.value)
1252
+ raise ArgumentError.new("Separator name must be space, comma, or auto")
1253
+ end
1254
+ sep1 = list1.separator if list1.is_a?(Sass::Script::List) && !list1.value.empty?
1255
+ sep2 = list2.separator if list2.is_a?(Sass::Script::List) && !list2.value.empty?
1256
+ Sass::Script::List.new(
1257
+ list1.to_a + list2.to_a,
1258
+ if separator.value == 'auto'
1259
+ sep1 || sep2 || :space
1260
+ else
1261
+ separator.value.to_sym
1262
+ end)
1263
+ end
1264
+ declare :join, [:list1, :list2]
1265
+ declare :join, [:list1, :list2, :separator]
1266
+
1267
+ # Appends a single value onto the end of a list.
1268
+ #
1269
+ # Unless the `$separator` argument is passed,
1270
+ # if the list has only one item,
1271
+ # the resulting list will be space-separated.
1272
+ #
1273
+ # @example
1274
+ # append(10px 20px, 30px) => 10px 20px 30px
1275
+ # append((blue, red), green) => blue, red, green
1276
+ # append(10px 20px, 30px 40px) => 10px 20px (30px 40px)
1277
+ # join(10px, 20px, comma) => 10px, 20px
1278
+ # join((blue, red), green, space) => blue red green
1279
+ # @overload join(list, val, separator: auto)
1280
+ # @param list1 [Literal] The first list to join
1281
+ # @param list2 [Literal] The second list to join
1282
+ # @param separator [String] How the list separator (comma or space) should be determined.
1283
+ # If this is `comma` or `space`, that is always the separator;
1284
+ # if this is `auto` (the default), the separator is determined as explained above.
1285
+ def append(list, val, separator = Sass::Script::String.new("auto"))
1286
+ assert_type separator, :String
1287
+ unless %w[auto space comma].include?(separator.value)
1288
+ raise ArgumentError.new("Separator name must be space, comma, or auto")
1289
+ end
1290
+ sep = list.separator if list.is_a?(Sass::Script::List)
1291
+ Sass::Script::List.new(
1292
+ list.to_a + [val],
1293
+ if separator.value == 'auto'
1294
+ sep || :space
1295
+ else
1296
+ separator.value.to_sym
1297
+ end)
1298
+ end
1299
+ declare :append, [:list, :val]
1300
+ declare :append, [:list, :val, :separator]
1301
+
1302
+ # Combines several lists into a single comma separated list
1303
+ # space separated lists.
1304
+ #
1305
+ # The length of the resulting list is the length of the
1306
+ # shortest list.
1307
+ #
1308
+ # @example
1309
+ # zip(1px 1px 3px, solid dashed solid, red green blue)
1310
+ # => 1px solid red, 1px dashed green, 3px solid blue
1311
+ def zip(*lists)
1312
+ length = nil
1313
+ values = []
1314
+ lists.each do |list|
1315
+ assert_type list, :List
1316
+ values << list.value.dup
1317
+ length = length.nil? ? list.value.length : [length, list.value.length].min
1318
+ end
1319
+ values.each do |value|
1320
+ value.slice!(length)
1321
+ end
1322
+ new_list_value = values.first.zip(*values[1..-1])
1323
+ List.new(new_list_value.map{|list| List.new(list, :space)}, :comma)
1324
+ end
1325
+ declare :zip, [], :var_args => true
1326
+
1327
+
1328
+ # Returns the position of the given value within the given
1329
+ # list. If not found, returns false.
1330
+ #
1331
+ # @example
1332
+ # index(1px solid red, solid) => 2
1333
+ # index(1px solid red, dashed) => false
1334
+ def index(list, value)
1335
+ assert_type list, :List
1336
+ index = list.value.index {|e| e.eq(value).to_bool }
1337
+ if index
1338
+ Number.new(index + 1)
1339
+ else
1340
+ Bool.new(false)
1341
+ end
1342
+ end
1343
+ declare :index, [:list, :value]
1344
+
1345
+ # Returns one of two values based on the truth value of the first argument.
1346
+ #
1347
+ # @example
1348
+ # if(true, 1px, 2px) => 1px
1349
+ # if(false, 1px, 2px) => 2px
1350
+ # @param condition [Bool] Whether the first or second value will be returned.
1351
+ # @param if_true [Literal] The value that will be returned if `$condition` is true.
1352
+ # @param if_false [Literal] The value that will be returned if `$condition` is false.
1353
+ def if(condition, if_true, if_false)
1354
+ if condition.to_bool
1355
+ if_true
1356
+ else
1357
+ if_false
1358
+ end
1359
+ end
1360
+ declare :if, [:condition, :if_true, :if_false]
1361
+
1362
+ private
1363
+
1364
+ # This method implements the pattern of transforming a numeric value into
1365
+ # another numeric value with the same units.
1366
+ # It yields a number to a block to perform the operation and return a number
1367
+ def numeric_transformation(value)
1368
+ assert_type value, :Number
1369
+ Sass::Script::Number.new(yield(value.value), value.numerator_units, value.denominator_units)
1370
+ end
1371
+
1372
+ def _adjust(color, amount, attr, range, op, units = "")
1373
+ assert_type color, :Color
1374
+ assert_type amount, :Number
1375
+ unless range.include?(amount.value)
1376
+ raise ArgumentError.new("Amount #{amount} must be between #{range.first}#{units} and #{range.last}#{units}")
1377
+ end
1378
+
1379
+ # TODO: is it worth restricting here,
1380
+ # or should we do so in the Color constructor itself,
1381
+ # and allow clipping in rgb() et al?
1382
+ color.with(attr => Sass::Util.restrict(
1383
+ color.send(attr).send(op, amount.value), range))
1384
+ end
1385
+ end
1386
+ end