middleman 0.11.5 → 0.12.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1459) hide show
  1. data/Gemfile +5 -12
  2. data/README.rdoc +4 -0
  3. data/Rakefile +6 -56
  4. data/VERSION +1 -1
  5. data/features/automatic_image_sizes.feature +14 -0
  6. data/features/cache_buster.feature +22 -0
  7. data/features/minify_css.feature +22 -0
  8. data/features/minify_javascript.feature +12 -0
  9. data/features/page_alias_and_layouts.feature +12 -0
  10. data/features/relative_assets.feature +12 -0
  11. data/features/step_definitions/env.rb +2 -0
  12. data/features/step_definitions/middleman_steps.rb +22 -0
  13. data/features/step_definitions/page_layout_steps.rb +13 -0
  14. data/lib/middleman.rb +1 -2
  15. data/lib/middleman/base.rb +22 -23
  16. data/lib/middleman/builder.rb +1 -1
  17. data/lib/middleman/features/automatic_image_sizes.rb +6 -4
  18. data/lib/middleman/features/minify_css.rb +15 -6
  19. data/lib/middleman/features/minify_javascript.rb +13 -9
  20. data/lib/middleman/features/relative_assets.rb +14 -3
  21. data/lib/middleman/features/smush_pngs.rb +2 -1
  22. data/lib/middleman/rack/sprockets.rb +13 -8
  23. data/lib/middleman/rack/static.rb +8 -1
  24. data/lib/middleman/sass.rb +12 -2
  25. data/lib/middleman/vendor/bin/compass +3 -0
  26. data/lib/middleman/vendor/bin/css2sass +3 -0
  27. data/lib/middleman/vendor/bin/edit_json.rb +3 -0
  28. data/lib/middleman/vendor/bin/haml +3 -0
  29. data/lib/middleman/vendor/bin/html2haml +3 -0
  30. data/lib/middleman/vendor/bin/htmldiff +3 -0
  31. data/lib/middleman/vendor/bin/launchy +3 -0
  32. data/lib/middleman/vendor/bin/ldiff +3 -0
  33. data/lib/middleman/vendor/bin/prettify_json.rb +3 -0
  34. data/lib/middleman/vendor/bin/rackup +3 -0
  35. data/lib/middleman/vendor/bin/rake +3 -0
  36. data/lib/middleman/vendor/bin/sass +3 -0
  37. data/lib/middleman/vendor/bin/shotgun +3 -0
  38. data/lib/middleman/vendor/bin/smusher +3 -0
  39. data/lib/middleman/vendor/bin/sprocketize +3 -0
  40. data/lib/middleman/vendor/gems/cache/compass-0.8.17.gem +0 -0
  41. data/lib/middleman/vendor/gems/cache/compass-slickmap-0.2.1.gem +0 -0
  42. data/lib/middleman/vendor/gems/cache/configuration-1.1.0.gem +0 -0
  43. data/lib/middleman/vendor/gems/cache/diff-lcs-1.1.2.gem +0 -0
  44. data/lib/middleman/vendor/gems/cache/extlib-0.9.13.gem +0 -0
  45. data/lib/middleman/vendor/gems/cache/haml-2.2.14.gem +0 -0
  46. data/lib/middleman/vendor/gems/cache/highline-1.5.1.gem +0 -0
  47. data/lib/middleman/vendor/gems/cache/httpclient-2.1.5.2.gem +0 -0
  48. data/lib/middleman/vendor/gems/cache/json-1.2.0.gem +0 -0
  49. data/lib/middleman/vendor/gems/cache/json_pure-1.2.0.gem +0 -0
  50. data/lib/middleman/vendor/gems/cache/launchy-0.3.3.gem +0 -0
  51. data/lib/middleman/vendor/gems/cache/rack-1.0.1.gem +0 -0
  52. data/lib/middleman/vendor/gems/cache/rack-test-0.5.2.gem +0 -0
  53. data/lib/middleman/vendor/gems/cache/rake-0.8.7.gem +0 -0
  54. data/lib/middleman/vendor/gems/cache/shotgun-0.4.gem +0 -0
  55. data/lib/middleman/vendor/gems/cache/sinatra-0.9.4.gem +0 -0
  56. data/lib/middleman/vendor/gems/cache/sinatra-content-for-0.2.gem +0 -0
  57. data/lib/middleman/vendor/gems/cache/smusher-0.4.2.gem +0 -0
  58. data/lib/middleman/vendor/gems/cache/sprockets-1.0.2.gem +0 -0
  59. data/lib/middleman/vendor/gems/cache/templater-1.0.0.gem +0 -0
  60. data/lib/middleman/vendor/gems/cache/yui-compressor-0.9.1.gem +0 -0
  61. data/lib/middleman/vendor/gems/environment.rb +144 -0
  62. data/lib/middleman/vendor/gems/gems/compass-0.8.17/CHANGELOG.markdown +557 -0
  63. data/lib/middleman/vendor/gems/gems/compass-0.8.17/LICENSE.markdown +29 -0
  64. data/lib/middleman/vendor/gems/gems/compass-0.8.17/README.markdown +44 -0
  65. data/lib/middleman/vendor/gems/gems/compass-0.8.17/REVISION +1 -0
  66. data/lib/middleman/vendor/gems/gems/compass-0.8.17/Rakefile +127 -0
  67. data/lib/middleman/vendor/gems/gems/compass-0.8.17/VERSION.yml +4 -0
  68. data/lib/middleman/vendor/gems/gems/compass-0.8.17/bin/compass +8 -0
  69. data/lib/middleman/vendor/gems/gems/compass-0.8.17/deps.rip +1 -0
  70. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/README.markdown +4 -0
  71. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/config.rb +7 -0
  72. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/images/grid.png +0 -0
  73. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/index.html.haml +85 -0
  74. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/elements.html.haml +282 -0
  75. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/forms.html.haml +190 -0
  76. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/grid.html.haml +274 -0
  77. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/test-small.jpg +0 -0
  78. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/test.jpg +0 -0
  79. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/valid.png +0 -0
  80. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/src/ie.sass +3 -0
  81. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/src/images/grid.png +0 -0
  82. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/src/print.sass +3 -0
  83. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/src/screen.sass +8 -0
  84. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/config.rb +8 -0
  85. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/buttons/cross.png +0 -0
  86. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/buttons/key.png +0 -0
  87. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/buttons/tick.png +0 -0
  88. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/grid.png +0 -0
  89. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/doc.png +0 -0
  90. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/email.png +0 -0
  91. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/external.png +0 -0
  92. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/feed.png +0 -0
  93. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/im.png +0 -0
  94. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/pdf.png +0 -0
  95. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/visited.png +0 -0
  96. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/xls.png +0 -0
  97. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/test-small.jpg +0 -0
  98. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/test.jpg +0 -0
  99. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/valid.png +0 -0
  100. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/index.html.haml +96 -0
  101. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/plugins/buttons.html.haml +67 -0
  102. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/plugins/fancy_type.html.haml +100 -0
  103. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/plugins/link_icons.html.haml +61 -0
  104. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/plugins/rtl.html.haml +100 -0
  105. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/buttons.sass +49 -0
  106. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/ie.sass +3 -0
  107. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/images/grid.png +0 -0
  108. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/link_icons.sass +13 -0
  109. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/print.sass +3 -0
  110. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/rtl_screen.sass +13 -0
  111. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/screen.sass +11 -0
  112. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped/images/grid.png +0 -0
  113. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped/src/ie.sass +3 -0
  114. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped/src/print.sass +3 -0
  115. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped/src/screen.sass +4 -0
  116. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped_form/images/grid.png +0 -0
  117. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped_form/src/ie.sass +3 -0
  118. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped_form/src/print.sass +3 -0
  119. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped_form/src/screen.sass +10 -0
  120. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/config.rb +7 -0
  121. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/images/grid.png +0 -0
  122. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/index.html.haml +86 -0
  123. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/parts/fancy_type.html.haml +100 -0
  124. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/parts/liquid.html.haml +100 -0
  125. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/parts/test-small.jpg +0 -0
  126. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/parts/test.jpg +0 -0
  127. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/parts/valid.png +0 -0
  128. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/src/ie.sass +3 -0
  129. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/src/images/grid.png +0 -0
  130. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/src/liquid.sass +70 -0
  131. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/src/print.sass +3 -0
  132. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/src/screen.sass +71 -0
  133. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/compass/compass.html.haml +39 -0
  134. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/compass/config.rb +7 -0
  135. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/compass/images/blue_arrow.gif +0 -0
  136. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/compass/src/compass.sass +47 -0
  137. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/compass/src/images/blue_arrow.gif +0 -0
  138. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/compass/src/sticky_footer.sass +11 -0
  139. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/compass/src/utilities.sass +108 -0
  140. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/compass/sticky_footer.html.haml +14 -0
  141. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/compass/utilities.html.haml +189 -0
  142. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/logo/logo.html.haml +40 -0
  143. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/logo/src/ie.sass +6 -0
  144. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/logo/src/print.sass +6 -0
  145. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/logo/src/screen.sass +29 -0
  146. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/yui/divisions.html.haml +179 -0
  147. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/yui/index.html.haml +19 -0
  148. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/yui/src/screen.sass +13 -0
  149. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/yui/sub_divisions.html.haml +169 -0
  150. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/yui/templates.html.haml +54 -0
  151. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/yui/test.jpg +0 -0
  152. data/lib/middleman/vendor/gems/gems/compass-0.8.17/examples/yui/typography.html.haml +132 -0
  153. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint.rb +2 -0
  154. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/_blueprint.sass +3 -0
  155. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/_ie.sass +93 -0
  156. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/_print.sass +83 -0
  157. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/_reset.sass +3 -0
  158. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/_screen.sass +15 -0
  159. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_buttons.sass +84 -0
  160. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_colors.sass +33 -0
  161. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_debug.sass +9 -0
  162. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_fancy_type.sass +82 -0
  163. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_form.sass +55 -0
  164. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_grid.sass +178 -0
  165. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_interaction.sass +58 -0
  166. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_link_icons.sass +44 -0
  167. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_liquid.sass +141 -0
  168. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_reset.sass +56 -0
  169. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_rtl.sass +104 -0
  170. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_scaffolding.sass +47 -0
  171. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_typography.sass +155 -0
  172. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_utilities.sass +37 -0
  173. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/buttons/buttons.sass +49 -0
  174. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/buttons/buttons/cross.png +0 -0
  175. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/buttons/buttons/key.png +0 -0
  176. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/buttons/buttons/tick.png +0 -0
  177. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/buttons/manifest.rb +5 -0
  178. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons.sass +13 -0
  179. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/doc.png +0 -0
  180. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/email.png +0 -0
  181. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/external.png +0 -0
  182. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/feed.png +0 -0
  183. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/im.png +0 -0
  184. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/pdf.png +0 -0
  185. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/visited.png +0 -0
  186. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/xls.png +0 -0
  187. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/manifest.rb +10 -0
  188. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/grid.png +0 -0
  189. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/ie.sass +15 -0
  190. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/manifest.rb +6 -0
  191. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/partials/_base.sass +11 -0
  192. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/print.sass +3 -0
  193. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/screen.sass +40 -0
  194. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass.rb +2 -0
  195. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/_compass.sass +1 -0
  196. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/_layout.sass +1 -0
  197. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/_misc.sass +24 -0
  198. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/_reset.sass +3 -0
  199. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/_utilities.sass +6 -0
  200. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/layout/_sticky_footer.sass +17 -0
  201. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_general.sass +6 -0
  202. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_links.sass +3 -0
  203. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_lists.sass +3 -0
  204. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_print.sass +24 -0
  205. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_sprites.sass +1 -0
  206. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_tables.sass +3 -0
  207. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_text.sass +2 -0
  208. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.sass +24 -0
  209. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_float.sass +17 -0
  210. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_hacks.sass +6 -0
  211. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_inline_block.sass +6 -0
  212. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_reset.sass +134 -0
  213. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_tabs.sass +0 -0
  214. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_tag_cloud.sass +19 -0
  215. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/links/_hover_link.sass +5 -0
  216. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/links/_link_colors.sass +24 -0
  217. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/links/_unstyled_link.sass +5 -0
  218. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/lists/_bullets.sass +21 -0
  219. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/lists/_horizontal_list.sass +52 -0
  220. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/lists/_inline_list.sass +29 -0
  221. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite_img.sass +12 -0
  222. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/tables/_alternating_rows_and_columns.sass +20 -0
  223. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/tables/_borders.sass +27 -0
  224. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/tables/_scaffolding.sass +9 -0
  225. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/text/_ellipsis.sass +13 -0
  226. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/text/_nowrap.sass +3 -0
  227. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/text/_replacement.sass +17 -0
  228. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/ellipsis/ellipsis.sass +6 -0
  229. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/ellipsis/manifest.rb +2 -0
  230. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/ellipsis/xml/ellipsis.xml +14 -0
  231. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/project/ie.sass +6 -0
  232. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/project/manifest.rb +3 -0
  233. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/project/print.sass +6 -0
  234. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/project/screen.sass +13 -0
  235. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/yui.rb +2 -0
  236. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/yui/stylesheets/_yui.sass +7 -0
  237. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/yui/stylesheets/yui/modules/_base.sass +60 -0
  238. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/yui/stylesheets/yui/modules/_fonts.sass +38 -0
  239. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/yui/stylesheets/yui/modules/_grids.sass +341 -0
  240. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/yui/stylesheets/yui/modules/_reset.sass +61 -0
  241. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/yui/templates/project/manifest.rb +1 -0
  242. data/lib/middleman/vendor/gems/gems/compass-0.8.17/frameworks/yui/templates/project/screen.sass +4 -0
  243. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass.rb +23 -0
  244. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/actions.rb +110 -0
  245. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration.rb +5 -0
  246. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/merb.rb +43 -0
  247. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/rails.rb +12 -0
  248. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/rails/action_controller.rb +15 -0
  249. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/rails/sass_plugin.rb +5 -0
  250. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/rails/templates/compass-install-rails.rb +80 -0
  251. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/rails/urls.rb +14 -0
  252. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/base.rb +33 -0
  253. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/create_project.rb +19 -0
  254. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/generate_grid_background.rb +24 -0
  255. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/installer_command.rb +31 -0
  256. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/list_frameworks.rb +16 -0
  257. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/print_version.rb +23 -0
  258. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/project_base.rb +112 -0
  259. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/stamp_pattern.rb +33 -0
  260. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/update_project.rb +34 -0
  261. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/validate_project.rb +21 -0
  262. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/watch_project.rb +64 -0
  263. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/commands/write_configuration.rb +28 -0
  264. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/compiler.rb +54 -0
  265. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/configuration.rb +324 -0
  266. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/core_ext.rb +14 -0
  267. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/dependencies.rb +10 -0
  268. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/errors.rb +7 -0
  269. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/exec.rb +251 -0
  270. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/frameworks.rb +29 -0
  271. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/grid_builder.rb +72 -0
  272. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/installers.rb +5 -0
  273. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/installers/base.rb +158 -0
  274. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/installers/manifest.rb +58 -0
  275. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/installers/rails.rb +135 -0
  276. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/installers/stand_alone.rb +60 -0
  277. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/logger.rb +42 -0
  278. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions.rb +5 -0
  279. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions.rb +19 -0
  280. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions/display.rb +22 -0
  281. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions/enumerate.rb +6 -0
  282. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions/inline_image.rb +35 -0
  283. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions/selectors.rb +39 -0
  284. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions/urls.rb +105 -0
  285. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/monkey_patches.rb +3 -0
  286. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/monkey_patches/stylesheet_updating.rb +23 -0
  287. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/test_case.rb +38 -0
  288. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/validator.rb +10 -0
  289. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/compass/version.rb +57 -0
  290. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm.rb +41 -0
  291. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/backends/fsevents.rb +37 -0
  292. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/backends/polling.rb +26 -0
  293. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/cache.rb +193 -0
  294. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/ext.rb +37 -0
  295. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/fsevents.rb +129 -0
  296. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/monitor.rb +25 -0
  297. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/path.rb +91 -0
  298. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/state.rb +54 -0
  299. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/support.rb +22 -0
  300. data/lib/middleman/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/tree.rb +176 -0
  301. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/command_line_helper.rb +102 -0
  302. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/command_line_test.rb +66 -0
  303. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/compass_test.rb +141 -0
  304. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/configuration_test.rb +118 -0
  305. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/config.rb +9 -0
  306. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/css/typography.css +158 -0
  307. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/images/grid.png +0 -0
  308. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/sass/ie.sass +3 -0
  309. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/sass/print.sass +3 -0
  310. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/sass/screen.sass +17 -0
  311. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/sass/typography.sass +3 -0
  312. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/config.rb +9 -0
  313. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/css/layout.css +13 -0
  314. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/css/print.css +18 -0
  315. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/css/reset.css +60 -0
  316. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/css/utilities.css +17 -0
  317. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/sass/layout.sass +3 -0
  318. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/sass/print.sass +5 -0
  319. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/sass/reset.sass +10 -0
  320. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/sass/utilities.sass +6 -0
  321. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/image_urls/config.rb +17 -0
  322. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/image_urls/css/screen.css +3 -0
  323. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/image_urls/images/grid.png +0 -0
  324. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/image_urls/sass/screen.sass +6 -0
  325. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/config.rb +9 -0
  326. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/css/mixins.css +13 -0
  327. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/sass/base.sass +3 -0
  328. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/sass/fonts.sass +3 -0
  329. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/sass/grids.sass +3 -0
  330. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/sass/mixins.sass +16 -0
  331. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/rails_integration_test.rb +83 -0
  332. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/sass_extensions_test.rb +31 -0
  333. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/test_case_helper.rb +13 -0
  334. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/test_helper.rb +21 -0
  335. data/lib/middleman/vendor/gems/gems/compass-0.8.17/test/test_rails_helper.rb +20 -0
  336. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/.gitignore +3 -0
  337. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/Rakefile +20 -0
  338. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/VERSION +1 -0
  339. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/compass-slickmap.gemspec +53 -0
  340. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/lib/slickmap.rb +45 -0
  341. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/lib/slickmap/compass_plugin.rb +5 -0
  342. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/sass/_slickmap.sass +206 -0
  343. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/templates/project/images/L1-center.png +0 -0
  344. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/templates/project/images/L1-left.png +0 -0
  345. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/templates/project/images/L1-right.png +0 -0
  346. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/templates/project/images/L3-bottom.png +0 -0
  347. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/templates/project/images/L3-center.png +0 -0
  348. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/templates/project/images/L3-li-top.png +0 -0
  349. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/templates/project/images/L3-ul-top.png +0 -0
  350. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/templates/project/images/vertical-line.png +0 -0
  351. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/templates/project/images/white-highlight.png +0 -0
  352. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/templates/project/manifest.rb +10 -0
  353. data/lib/middleman/vendor/gems/gems/compass-slickmap-0.2.1/templates/project/sitemap.sass +3 -0
  354. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/README +197 -0
  355. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/README.erb +69 -0
  356. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/Rakefile +241 -0
  357. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/config/a.rb +5 -0
  358. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/config/b.rb +19 -0
  359. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/config/c.rb +8 -0
  360. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/config/d.rb +5 -0
  361. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/config/e.rb +13 -0
  362. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/configuration.gemspec +28 -0
  363. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/lib/configuration.rb +199 -0
  364. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/samples/a.rb +11 -0
  365. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/samples/b.rb +11 -0
  366. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/samples/c.rb +11 -0
  367. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/samples/d.rb +14 -0
  368. data/lib/middleman/vendor/gems/gems/configuration-1.1.0/samples/e.rb +12 -0
  369. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/ChangeLog +46 -0
  370. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/Install +6 -0
  371. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/README +76 -0
  372. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/Rakefile +116 -0
  373. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/bin/htmldiff +112 -0
  374. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/bin/ldiff +45 -0
  375. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs.rb +1105 -0
  376. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/array.rb +21 -0
  377. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb +51 -0
  378. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/callbacks.rb +322 -0
  379. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/change.rb +169 -0
  380. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/hunk.rb +257 -0
  381. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/ldiff.rb +226 -0
  382. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/string.rb +19 -0
  383. data/lib/middleman/vendor/gems/gems/diff-lcs-1.1.2/tests/00test.rb +626 -0
  384. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/History.txt +77 -0
  385. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/LICENSE +47 -0
  386. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/README +0 -0
  387. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/Rakefile +180 -0
  388. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib.rb +50 -0
  389. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/array.rb +36 -0
  390. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/assertions.rb +8 -0
  391. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/blank.rb +89 -0
  392. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/boolean.rb +11 -0
  393. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/byte_array.rb +6 -0
  394. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/class.rb +177 -0
  395. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/datetime.rb +29 -0
  396. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/dictionary.rb +433 -0
  397. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/hash.rb +442 -0
  398. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/hook.rb +401 -0
  399. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/inflection.rb +434 -0
  400. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/lazy_array.rb +457 -0
  401. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/lazy_module.rb +18 -0
  402. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/logger.rb +198 -0
  403. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/mash.rb +155 -0
  404. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/module.rb +47 -0
  405. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/nil.rb +5 -0
  406. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/numeric.rb +5 -0
  407. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/object.rb +175 -0
  408. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/object_space.rb +13 -0
  409. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/pathname.rb +20 -0
  410. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/pooling.rb +235 -0
  411. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/rubygems.rb +38 -0
  412. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/simple_set.rb +66 -0
  413. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/string.rb +175 -0
  414. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/struct.rb +17 -0
  415. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/symbol.rb +21 -0
  416. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/tasks/release.rb +15 -0
  417. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/time.rb +43 -0
  418. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/version.rb +3 -0
  419. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/lib/extlib/virtual_file.rb +10 -0
  420. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/array_spec.rb +39 -0
  421. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/blank_spec.rb +85 -0
  422. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/byte_array_spec.rb +7 -0
  423. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/class_spec.rb +157 -0
  424. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/datetime_spec.rb +22 -0
  425. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/hash_spec.rb +537 -0
  426. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/hook_spec.rb +1234 -0
  427. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/inflection/plural_spec.rb +564 -0
  428. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/inflection/singular_spec.rb +497 -0
  429. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/inflection_extras_spec.rb +93 -0
  430. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/lazy_array_spec.rb +1932 -0
  431. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/lazy_module_spec.rb +38 -0
  432. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/mash_spec.rb +311 -0
  433. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/module_spec.rb +70 -0
  434. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/object_space_spec.rb +9 -0
  435. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/object_spec.rb +114 -0
  436. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/pooling_spec.rb +511 -0
  437. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/simple_set_spec.rb +57 -0
  438. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/spec.opts +3 -0
  439. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/spec_helper.rb +10 -0
  440. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/string_spec.rb +220 -0
  441. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/struct_spec.rb +12 -0
  442. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/symbol_spec.rb +8 -0
  443. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/time_spec.rb +29 -0
  444. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/try_call_spec.rb +73 -0
  445. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/try_dup_spec.rb +45 -0
  446. data/lib/middleman/vendor/gems/gems/extlib-0.9.13/spec/virtual_file_spec.rb +21 -0
  447. data/lib/middleman/vendor/gems/gems/haml-2.2.14/.yardopts +5 -0
  448. data/lib/middleman/vendor/gems/gems/haml-2.2.14/CONTRIBUTING +4 -0
  449. data/lib/middleman/vendor/gems/gems/haml-2.2.14/MIT-LICENSE +20 -0
  450. data/lib/middleman/vendor/gems/gems/haml-2.2.14/README.md +357 -0
  451. data/lib/middleman/vendor/gems/gems/haml-2.2.14/REVISION +1 -0
  452. data/lib/middleman/vendor/gems/gems/haml-2.2.14/Rakefile +379 -0
  453. data/lib/middleman/vendor/gems/gems/haml-2.2.14/VERSION +1 -0
  454. data/lib/middleman/vendor/gems/gems/haml-2.2.14/VERSION_NAME +1 -0
  455. data/lib/middleman/vendor/gems/gems/haml-2.2.14/bin/css2sass +7 -0
  456. data/lib/middleman/vendor/gems/gems/haml-2.2.14/bin/haml +9 -0
  457. data/lib/middleman/vendor/gems/gems/haml-2.2.14/bin/html2haml +7 -0
  458. data/lib/middleman/vendor/gems/gems/haml-2.2.14/bin/sass +8 -0
  459. data/lib/middleman/vendor/gems/gems/haml-2.2.14/extra/haml-mode.el +662 -0
  460. data/lib/middleman/vendor/gems/gems/haml-2.2.14/extra/sass-mode.el +206 -0
  461. data/lib/middleman/vendor/gems/gems/haml-2.2.14/extra/update_watch.rb +13 -0
  462. data/lib/middleman/vendor/gems/gems/haml-2.2.14/init.rb +16 -0
  463. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml.rb +40 -0
  464. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/buffer.rb +302 -0
  465. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/engine.rb +299 -0
  466. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/error.rb +22 -0
  467. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/exec.rb +459 -0
  468. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/filters.rb +341 -0
  469. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/helpers.rb +563 -0
  470. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/helpers/action_view_extensions.rb +55 -0
  471. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/helpers/action_view_mods.rb +177 -0
  472. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/helpers/xss_mods.rb +95 -0
  473. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/html.rb +259 -0
  474. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/precompiler.rb +1037 -0
  475. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/shared.rb +78 -0
  476. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/template.rb +85 -0
  477. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/template/patch.rb +58 -0
  478. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/template/plugin.rb +71 -0
  479. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/util.rb +276 -0
  480. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/haml/version.rb +64 -0
  481. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass.rb +24 -0
  482. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/css.rb +404 -0
  483. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/engine.rb +475 -0
  484. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/environment.rb +79 -0
  485. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/error.rb +57 -0
  486. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/files.rb +139 -0
  487. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/plugin.rb +225 -0
  488. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/plugin/merb.rb +49 -0
  489. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/plugin/rack.rb +65 -0
  490. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/plugin/rails.rb +24 -0
  491. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/repl.rb +58 -0
  492. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script.rb +59 -0
  493. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/bool.rb +17 -0
  494. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/color.rb +201 -0
  495. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/funcall.rb +50 -0
  496. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/functions.rb +250 -0
  497. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/lexer.rb +191 -0
  498. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/literal.rb +177 -0
  499. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/node.rb +14 -0
  500. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/number.rb +381 -0
  501. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/operation.rb +45 -0
  502. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/parser.rb +222 -0
  503. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/string.rb +12 -0
  504. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/unary_operation.rb +34 -0
  505. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/script/variable.rb +31 -0
  506. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/comment_node.rb +84 -0
  507. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/debug_node.rb +30 -0
  508. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/directive_node.rb +68 -0
  509. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/for_node.rb +48 -0
  510. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/if_node.rb +54 -0
  511. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/import_node.rb +65 -0
  512. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/mixin_def_node.rb +29 -0
  513. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/mixin_node.rb +48 -0
  514. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/node.rb +251 -0
  515. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/prop_node.rb +121 -0
  516. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/rule_node.rb +223 -0
  517. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/variable_node.rb +34 -0
  518. data/lib/middleman/vendor/gems/gems/haml-2.2.14/lib/sass/tree/while_node.rb +31 -0
  519. data/lib/middleman/vendor/gems/gems/haml-2.2.14/rails/init.rb +1 -0
  520. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/benchmark.rb +99 -0
  521. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/engine_test.rb +1237 -0
  522. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/helper_test.rb +282 -0
  523. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/html2haml_test.rb +139 -0
  524. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/markaby/standard.mab +52 -0
  525. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/mocks/article.rb +6 -0
  526. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/content_for_layout.xhtml +12 -0
  527. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/eval_suppressed.xhtml +9 -0
  528. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/filters.xhtml +62 -0
  529. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/helpers.xhtml +93 -0
  530. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/helpful.xhtml +10 -0
  531. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/just_stuff.xhtml +68 -0
  532. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/list.xhtml +12 -0
  533. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/nuke_inner_whitespace.xhtml +40 -0
  534. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/nuke_outer_whitespace.xhtml +148 -0
  535. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/original_engine.xhtml +20 -0
  536. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/partial_layout.xhtml +5 -0
  537. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/partials.xhtml +21 -0
  538. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/render_layout.xhtml +3 -0
  539. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/silent_script.xhtml +74 -0
  540. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/standard.xhtml +162 -0
  541. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/tag_parsing.xhtml +23 -0
  542. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/very_basic.xhtml +5 -0
  543. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/results/whitespace_handling.xhtml +89 -0
  544. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/rhtml/_av_partial_1.rhtml +12 -0
  545. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/rhtml/_av_partial_2.rhtml +8 -0
  546. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/rhtml/action_view.rhtml +62 -0
  547. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/rhtml/standard.rhtml +54 -0
  548. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/spec/README.md +97 -0
  549. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/spec/lua_haml_spec.lua +30 -0
  550. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/spec/ruby_haml_test.rb +19 -0
  551. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/spec/tests.json +488 -0
  552. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/template_test.rb +296 -0
  553. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/_av_partial_1.haml +9 -0
  554. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/_av_partial_1_ugly.haml +9 -0
  555. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/_av_partial_2.haml +5 -0
  556. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/_av_partial_2_ugly.haml +5 -0
  557. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/_layout.erb +3 -0
  558. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/_layout_for_partial.haml +3 -0
  559. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/_partial.haml +8 -0
  560. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/_text_area.haml +3 -0
  561. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/action_view.haml +47 -0
  562. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/action_view_ugly.haml +47 -0
  563. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/breakage.haml +8 -0
  564. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/content_for_layout.haml +8 -0
  565. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/eval_suppressed.haml +11 -0
  566. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/filters.haml +66 -0
  567. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/helpers.haml +95 -0
  568. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/helpful.haml +11 -0
  569. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/just_stuff.haml +83 -0
  570. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/list.haml +12 -0
  571. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/nuke_inner_whitespace.haml +32 -0
  572. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/nuke_outer_whitespace.haml +144 -0
  573. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/original_engine.haml +17 -0
  574. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/partial_layout.haml +3 -0
  575. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/partialize.haml +1 -0
  576. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/partials.haml +12 -0
  577. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/render_layout.haml +2 -0
  578. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/silent_script.haml +40 -0
  579. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/standard.haml +42 -0
  580. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/standard_ugly.haml +42 -0
  581. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/tag_parsing.haml +21 -0
  582. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/very_basic.haml +4 -0
  583. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/templates/whitespace_handling.haml +87 -0
  584. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/haml/util_test.rb +107 -0
  585. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/linked_rails.rb +21 -0
  586. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/css2sass_test.rb +251 -0
  587. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/engine_test.rb +914 -0
  588. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/functions_test.rb +159 -0
  589. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/more_results/more1.css +9 -0
  590. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/more_results/more1_with_line_comments.css +26 -0
  591. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/more_results/more_import.css +29 -0
  592. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/more_templates/_more_partial.sass +2 -0
  593. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/more_templates/more1.sass +23 -0
  594. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/more_templates/more_import.sass +11 -0
  595. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/plugin_test.rb +222 -0
  596. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/alt.css +4 -0
  597. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/basic.css +9 -0
  598. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/compact.css +5 -0
  599. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/complex.css +87 -0
  600. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/compressed.css +1 -0
  601. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/expanded.css +19 -0
  602. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/import.css +29 -0
  603. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/line_numbers.css +49 -0
  604. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/mixins.css +95 -0
  605. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/multiline.css +24 -0
  606. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/nested.css +22 -0
  607. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/parent_ref.css +13 -0
  608. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/script.css +16 -0
  609. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
  610. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/subdir/subdir.css +3 -0
  611. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/results/units.css +11 -0
  612. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/script_test.rb +267 -0
  613. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/_partial.sass +2 -0
  614. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/alt.sass +16 -0
  615. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/basic.sass +23 -0
  616. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/bork.sass +2 -0
  617. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/bork2.sass +2 -0
  618. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/compact.sass +17 -0
  619. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/complex.sass +307 -0
  620. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/compressed.sass +15 -0
  621. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/expanded.sass +17 -0
  622. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/import.sass +11 -0
  623. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/importee.sass +19 -0
  624. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/line_numbers.sass +13 -0
  625. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/mixins.sass +76 -0
  626. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/multiline.sass +20 -0
  627. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/nested.sass +25 -0
  628. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/parent_ref.sass +25 -0
  629. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/script.sass +101 -0
  630. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  631. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
  632. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/subdir/subdir.sass +6 -0
  633. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/sass/templates/units.sass +11 -0
  634. data/lib/middleman/vendor/gems/gems/haml-2.2.14/test/test_helper.rb +35 -0
  635. data/lib/middleman/vendor/gems/gems/highline-1.5.1/CHANGELOG +222 -0
  636. data/lib/middleman/vendor/gems/gems/highline-1.5.1/INSTALL +35 -0
  637. data/lib/middleman/vendor/gems/gems/highline-1.5.1/LICENSE +7 -0
  638. data/lib/middleman/vendor/gems/gems/highline-1.5.1/README +63 -0
  639. data/lib/middleman/vendor/gems/gems/highline-1.5.1/Rakefile +82 -0
  640. data/lib/middleman/vendor/gems/gems/highline-1.5.1/TODO +6 -0
  641. data/lib/middleman/vendor/gems/gems/highline-1.5.1/examples/ansi_colors.rb +38 -0
  642. data/lib/middleman/vendor/gems/gems/highline-1.5.1/examples/asking_for_arrays.rb +18 -0
  643. data/lib/middleman/vendor/gems/gems/highline-1.5.1/examples/basic_usage.rb +75 -0
  644. data/lib/middleman/vendor/gems/gems/highline-1.5.1/examples/color_scheme.rb +32 -0
  645. data/lib/middleman/vendor/gems/gems/highline-1.5.1/examples/limit.rb +12 -0
  646. data/lib/middleman/vendor/gems/gems/highline-1.5.1/examples/menus.rb +65 -0
  647. data/lib/middleman/vendor/gems/gems/highline-1.5.1/examples/overwrite.rb +19 -0
  648. data/lib/middleman/vendor/gems/gems/highline-1.5.1/examples/page_and_wrap.rb +322 -0
  649. data/lib/middleman/vendor/gems/gems/highline-1.5.1/examples/password.rb +7 -0
  650. data/lib/middleman/vendor/gems/gems/highline-1.5.1/examples/trapping_eof.rb +22 -0
  651. data/lib/middleman/vendor/gems/gems/highline-1.5.1/examples/using_readline.rb +17 -0
  652. data/lib/middleman/vendor/gems/gems/highline-1.5.1/lib/highline.rb +758 -0
  653. data/lib/middleman/vendor/gems/gems/highline-1.5.1/lib/highline/color_scheme.rb +120 -0
  654. data/lib/middleman/vendor/gems/gems/highline-1.5.1/lib/highline/compatibility.rb +17 -0
  655. data/lib/middleman/vendor/gems/gems/highline-1.5.1/lib/highline/import.rb +43 -0
  656. data/lib/middleman/vendor/gems/gems/highline-1.5.1/lib/highline/menu.rb +395 -0
  657. data/lib/middleman/vendor/gems/gems/highline-1.5.1/lib/highline/question.rb +463 -0
  658. data/lib/middleman/vendor/gems/gems/highline-1.5.1/lib/highline/system_extensions.rb +193 -0
  659. data/lib/middleman/vendor/gems/gems/highline-1.5.1/setup.rb +1360 -0
  660. data/lib/middleman/vendor/gems/gems/highline-1.5.1/test/tc_color_scheme.rb +56 -0
  661. data/lib/middleman/vendor/gems/gems/highline-1.5.1/test/tc_highline.rb +823 -0
  662. data/lib/middleman/vendor/gems/gems/highline-1.5.1/test/tc_import.rb +54 -0
  663. data/lib/middleman/vendor/gems/gems/highline-1.5.1/test/tc_menu.rb +429 -0
  664. data/lib/middleman/vendor/gems/gems/highline-1.5.1/test/ts_all.rb +15 -0
  665. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/http-access2.rb +53 -0
  666. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/http-access2/cookie.rb +1 -0
  667. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/http-access2/http.rb +1 -0
  668. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/httpclient.rb +1020 -0
  669. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/httpclient/auth.rb +522 -0
  670. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/httpclient/cacert.p7s +1579 -0
  671. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/httpclient/cacert_sha1.p7s +1579 -0
  672. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/httpclient/connection.rb +84 -0
  673. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/httpclient/cookie.rb +562 -0
  674. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/httpclient/http.rb +867 -0
  675. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/httpclient/session.rb +863 -0
  676. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/httpclient/ssl_config.rb +417 -0
  677. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/httpclient/timeout.rb +136 -0
  678. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/httpclient/util.rb +86 -0
  679. data/lib/middleman/vendor/gems/gems/httpclient-2.1.5.2/lib/tags +908 -0
  680. data/lib/middleman/vendor/gems/gems/json-1.2.0/.require_paths +4 -0
  681. data/lib/middleman/vendor/gems/gems/json-1.2.0/CHANGES +136 -0
  682. data/lib/middleman/vendor/gems/gems/json-1.2.0/COPYING +58 -0
  683. data/lib/middleman/vendor/gems/gems/json-1.2.0/GPL +340 -0
  684. data/lib/middleman/vendor/gems/gems/json-1.2.0/README +360 -0
  685. data/lib/middleman/vendor/gems/gems/json-1.2.0/Rakefile +287 -0
  686. data/lib/middleman/vendor/gems/gems/json-1.2.0/TODO +1 -0
  687. data/lib/middleman/vendor/gems/gems/json-1.2.0/VERSION +1 -0
  688. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log +52 -0
  689. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat +1000 -0
  690. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat +1001 -0
  691. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat +900 -0
  692. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat +901 -0
  693. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat +1000 -0
  694. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat +1001 -0
  695. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log +261 -0
  696. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat +1000 -0
  697. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat +1001 -0
  698. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat +1000 -0
  699. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat +1001 -0
  700. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat +1000 -0
  701. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat +1001 -0
  702. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log +262 -0
  703. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat +1000 -0
  704. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat +1001 -0
  705. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log +82 -0
  706. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log +34 -0
  707. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat +900 -0
  708. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat +901 -0
  709. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log +81 -0
  710. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat +1000 -0
  711. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat +1001 -0
  712. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log +82 -0
  713. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat +1000 -0
  714. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat +1001 -0
  715. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log +82 -0
  716. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat +1000 -0
  717. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat +1001 -0
  718. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log +82 -0
  719. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/generator_benchmark.rb +165 -0
  720. data/lib/middleman/vendor/gems/gems/json-1.2.0/benchmarks/parser_benchmark.rb +197 -0
  721. data/lib/middleman/vendor/gems/gems/json-1.2.0/bin/edit_json.rb +9 -0
  722. data/lib/middleman/vendor/gems/gems/json-1.2.0/bin/prettify_json.rb +75 -0
  723. data/lib/middleman/vendor/gems/gems/json-1.2.0/data/example.json +1 -0
  724. data/lib/middleman/vendor/gems/gems/json-1.2.0/data/index.html +38 -0
  725. data/lib/middleman/vendor/gems/gems/json-1.2.0/data/prototype.js +4184 -0
  726. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/generator.bundle +0 -0
  727. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/Makefile +181 -0
  728. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/extconf.rb +11 -0
  729. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/generator.bundle +0 -0
  730. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/generator.c +935 -0
  731. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/generator.o +0 -0
  732. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/mkmf.log +32 -0
  733. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/unicode.c +180 -0
  734. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/unicode.h +53 -0
  735. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/unicode.o +0 -0
  736. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/parser.bundle +0 -0
  737. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/Makefile +181 -0
  738. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/extconf.rb +11 -0
  739. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/mkmf.log +33 -0
  740. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/parser.bundle +0 -0
  741. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/parser.c +1880 -0
  742. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/parser.o +0 -0
  743. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/parser.rl +737 -0
  744. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/unicode.c +154 -0
  745. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/unicode.h +58 -0
  746. data/lib/middleman/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/unicode.o +0 -0
  747. data/lib/middleman/vendor/gems/gems/json-1.2.0/install.rb +26 -0
  748. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json.rb +10 -0
  749. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/Array.xpm +21 -0
  750. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/FalseClass.xpm +21 -0
  751. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/Hash.xpm +21 -0
  752. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/Key.xpm +73 -0
  753. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/NilClass.xpm +21 -0
  754. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/Numeric.xpm +28 -0
  755. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/String.xpm +96 -0
  756. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/TrueClass.xpm +21 -0
  757. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/add/core.rb +135 -0
  758. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/add/rails.rb +58 -0
  759. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/common.rb +371 -0
  760. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/editor.rb +1371 -0
  761. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/ext.rb +15 -0
  762. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/json.xpm +1499 -0
  763. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/pure.rb +77 -0
  764. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/pure/generator.rb +443 -0
  765. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/pure/parser.rb +303 -0
  766. data/lib/middleman/vendor/gems/gems/json-1.2.0/lib/json/version.rb +8 -0
  767. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail1.json +1 -0
  768. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail10.json +1 -0
  769. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail11.json +1 -0
  770. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail12.json +1 -0
  771. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail13.json +1 -0
  772. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail14.json +1 -0
  773. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail18.json +1 -0
  774. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail19.json +1 -0
  775. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail2.json +1 -0
  776. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail20.json +1 -0
  777. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail21.json +1 -0
  778. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail22.json +1 -0
  779. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail23.json +1 -0
  780. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail24.json +1 -0
  781. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail25.json +1 -0
  782. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail27.json +2 -0
  783. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail28.json +2 -0
  784. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail3.json +1 -0
  785. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail4.json +1 -0
  786. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail5.json +1 -0
  787. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail6.json +1 -0
  788. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail7.json +1 -0
  789. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail8.json +1 -0
  790. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/fail9.json +1 -0
  791. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/pass1.json +56 -0
  792. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/pass15.json +1 -0
  793. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/pass16.json +1 -0
  794. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/pass17.json +1 -0
  795. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/pass2.json +1 -0
  796. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/pass26.json +1 -0
  797. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/fixtures/pass3.json +6 -0
  798. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/test_json.rb +320 -0
  799. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/test_json_addition.rb +164 -0
  800. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/test_json_encoding.rb +67 -0
  801. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/test_json_fixtures.rb +34 -0
  802. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/test_json_generate.rb +120 -0
  803. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/test_json_rails.rb +146 -0
  804. data/lib/middleman/vendor/gems/gems/json-1.2.0/tests/test_json_unicode.rb +62 -0
  805. data/lib/middleman/vendor/gems/gems/json-1.2.0/tools/fuzz.rb +139 -0
  806. data/lib/middleman/vendor/gems/gems/json-1.2.0/tools/server.rb +61 -0
  807. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/CHANGES +136 -0
  808. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/COPYING +58 -0
  809. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/GPL +340 -0
  810. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/README +360 -0
  811. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/Rakefile +287 -0
  812. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/TODO +1 -0
  813. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/VERSION +1 -0
  814. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log +52 -0
  815. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat +1000 -0
  816. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat +1001 -0
  817. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat +900 -0
  818. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat +901 -0
  819. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat +1000 -0
  820. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat +1001 -0
  821. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log +261 -0
  822. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat +1000 -0
  823. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat +1001 -0
  824. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat +1000 -0
  825. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat +1001 -0
  826. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat +1000 -0
  827. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat +1001 -0
  828. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log +262 -0
  829. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat +1000 -0
  830. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat +1001 -0
  831. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log +82 -0
  832. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log +34 -0
  833. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat +900 -0
  834. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat +901 -0
  835. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log +81 -0
  836. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat +1000 -0
  837. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat +1001 -0
  838. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log +82 -0
  839. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat +1000 -0
  840. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat +1001 -0
  841. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log +82 -0
  842. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat +1000 -0
  843. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat +1001 -0
  844. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log +82 -0
  845. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/generator_benchmark.rb +165 -0
  846. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/benchmarks/parser_benchmark.rb +197 -0
  847. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/bin/edit_json.rb +9 -0
  848. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/bin/prettify_json.rb +75 -0
  849. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/data/example.json +1 -0
  850. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/data/index.html +38 -0
  851. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/data/prototype.js +4184 -0
  852. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/ext/json/ext/generator/extconf.rb +11 -0
  853. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/ext/json/ext/generator/generator.c +935 -0
  854. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/ext/json/ext/generator/unicode.c +180 -0
  855. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/ext/json/ext/generator/unicode.h +53 -0
  856. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/ext/json/ext/parser/extconf.rb +11 -0
  857. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/ext/json/ext/parser/parser.c +1880 -0
  858. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/ext/json/ext/parser/parser.rl +737 -0
  859. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/ext/json/ext/parser/unicode.c +154 -0
  860. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/ext/json/ext/parser/unicode.h +58 -0
  861. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/install.rb +26 -0
  862. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json.rb +10 -0
  863. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/Array.xpm +21 -0
  864. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/FalseClass.xpm +21 -0
  865. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/Hash.xpm +21 -0
  866. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/Key.xpm +73 -0
  867. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/NilClass.xpm +21 -0
  868. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/Numeric.xpm +28 -0
  869. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/String.xpm +96 -0
  870. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/TrueClass.xpm +21 -0
  871. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/add/core.rb +135 -0
  872. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/add/rails.rb +58 -0
  873. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/common.rb +371 -0
  874. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/editor.rb +1371 -0
  875. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/ext.rb +15 -0
  876. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/json.xpm +1499 -0
  877. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/pure.rb +77 -0
  878. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/pure/generator.rb +443 -0
  879. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/pure/parser.rb +303 -0
  880. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/lib/json/version.rb +8 -0
  881. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail1.json +1 -0
  882. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail10.json +1 -0
  883. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail11.json +1 -0
  884. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail12.json +1 -0
  885. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail13.json +1 -0
  886. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail14.json +1 -0
  887. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail18.json +1 -0
  888. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail19.json +1 -0
  889. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail2.json +1 -0
  890. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail20.json +1 -0
  891. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail21.json +1 -0
  892. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail22.json +1 -0
  893. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail23.json +1 -0
  894. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail24.json +1 -0
  895. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail25.json +1 -0
  896. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail27.json +2 -0
  897. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail28.json +2 -0
  898. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail3.json +1 -0
  899. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail4.json +1 -0
  900. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail5.json +1 -0
  901. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail6.json +1 -0
  902. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail7.json +1 -0
  903. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail8.json +1 -0
  904. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/fail9.json +1 -0
  905. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/pass1.json +56 -0
  906. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/pass15.json +1 -0
  907. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/pass16.json +1 -0
  908. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/pass17.json +1 -0
  909. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/pass2.json +1 -0
  910. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/pass26.json +1 -0
  911. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/fixtures/pass3.json +6 -0
  912. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/test_json.rb +320 -0
  913. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/test_json_addition.rb +164 -0
  914. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/test_json_encoding.rb +67 -0
  915. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/test_json_fixtures.rb +34 -0
  916. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/test_json_generate.rb +120 -0
  917. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/test_json_rails.rb +146 -0
  918. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tests/test_json_unicode.rb +62 -0
  919. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tools/fuzz.rb +139 -0
  920. data/lib/middleman/vendor/gems/gems/json_pure-1.2.0/tools/server.rb +61 -0
  921. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/HISTORY +57 -0
  922. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/LICENSE +31 -0
  923. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/README +49 -0
  924. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/Rakefile +62 -0
  925. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/bin/launchy +12 -0
  926. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/gemspec.rb +41 -0
  927. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/lib/launchy.rb +53 -0
  928. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/lib/launchy/application.rb +174 -0
  929. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/lib/launchy/browser.rb +98 -0
  930. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/lib/launchy/command_line.rb +48 -0
  931. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/lib/launchy/paths.rb +53 -0
  932. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/lib/launchy/version.rb +17 -0
  933. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/spec/application_spec.rb +58 -0
  934. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/spec/browser_spec.rb +50 -0
  935. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/spec/launchy_spec.rb +18 -0
  936. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/spec/paths_spec.rb +15 -0
  937. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/spec/spec_helper.rb +5 -0
  938. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/spec/version_spec.rb +11 -0
  939. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/tasks/announce.rake +39 -0
  940. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/tasks/config.rb +107 -0
  941. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/tasks/distribution.rake +46 -0
  942. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/tasks/documentation.rake +32 -0
  943. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/tasks/rspec.rake +29 -0
  944. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/tasks/rubyforge.rake +52 -0
  945. data/lib/middleman/vendor/gems/gems/launchy-0.3.3/tasks/utils.rb +80 -0
  946. data/lib/middleman/vendor/gems/gems/rack-1.0.1/COPYING +18 -0
  947. data/lib/middleman/vendor/gems/gems/rack-1.0.1/KNOWN-ISSUES +18 -0
  948. data/lib/middleman/vendor/gems/gems/rack-1.0.1/RDOX +428 -0
  949. data/lib/middleman/vendor/gems/gems/rack-1.0.1/README +364 -0
  950. data/lib/middleman/vendor/gems/gems/rack-1.0.1/Rakefile +164 -0
  951. data/lib/middleman/vendor/gems/gems/rack-1.0.1/SPEC +164 -0
  952. data/lib/middleman/vendor/gems/gems/rack-1.0.1/bin/rackup +176 -0
  953. data/lib/middleman/vendor/gems/gems/rack-1.0.1/contrib/rack_logo.svg +111 -0
  954. data/lib/middleman/vendor/gems/gems/rack-1.0.1/example/lobster.ru +4 -0
  955. data/lib/middleman/vendor/gems/gems/rack-1.0.1/example/protectedlobster.rb +14 -0
  956. data/lib/middleman/vendor/gems/gems/rack-1.0.1/example/protectedlobster.ru +8 -0
  957. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack.rb +90 -0
  958. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/adapter/camping.rb +22 -0
  959. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/auth/abstract/handler.rb +37 -0
  960. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/auth/abstract/request.rb +37 -0
  961. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/auth/basic.rb +58 -0
  962. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/auth/digest/md5.rb +124 -0
  963. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/auth/digest/nonce.rb +51 -0
  964. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/auth/digest/params.rb +55 -0
  965. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/auth/digest/request.rb +40 -0
  966. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/auth/openid.rb +480 -0
  967. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/builder.rb +63 -0
  968. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/cascade.rb +36 -0
  969. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/chunked.rb +49 -0
  970. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/commonlogger.rb +61 -0
  971. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/conditionalget.rb +47 -0
  972. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/content_length.rb +29 -0
  973. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/content_type.rb +23 -0
  974. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/deflater.rb +96 -0
  975. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/directory.rb +153 -0
  976. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/file.rb +88 -0
  977. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/handler.rb +69 -0
  978. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/handler/cgi.rb +61 -0
  979. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/handler/evented_mongrel.rb +8 -0
  980. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/handler/fastcgi.rb +90 -0
  981. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/handler/lsws.rb +60 -0
  982. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/handler/mongrel.rb +87 -0
  983. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/handler/scgi.rb +62 -0
  984. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/handler/swiftiplied_mongrel.rb +8 -0
  985. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/handler/thin.rb +18 -0
  986. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/handler/webrick.rb +71 -0
  987. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/head.rb +19 -0
  988. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/lint.rb +546 -0
  989. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/lobster.rb +65 -0
  990. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/lock.rb +16 -0
  991. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/methodoverride.rb +27 -0
  992. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/mime.rb +204 -0
  993. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/mock.rb +163 -0
  994. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/recursive.rb +57 -0
  995. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/reloader.rb +106 -0
  996. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/request.rb +246 -0
  997. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/response.rb +183 -0
  998. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/rewindable_input.rb +100 -0
  999. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/session/abstract/id.rb +142 -0
  1000. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/session/cookie.rb +91 -0
  1001. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/session/memcache.rb +109 -0
  1002. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/session/pool.rb +100 -0
  1003. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/showexceptions.rb +349 -0
  1004. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/showstatus.rb +106 -0
  1005. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/static.rb +38 -0
  1006. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/urlmap.rb +55 -0
  1007. data/lib/middleman/vendor/gems/gems/rack-1.0.1/lib/rack/utils.rb +401 -0
  1008. data/lib/middleman/vendor/gems/gems/rack-1.0.1/rack.gemspec +54 -0
  1009. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/cgi/lighttpd.conf +20 -0
  1010. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/cgi/test +9 -0
  1011. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/cgi/test.fcgi +8 -0
  1012. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/cgi/test.ru +7 -0
  1013. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/multipart/binary +0 -0
  1014. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/multipart/empty +10 -0
  1015. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/multipart/ie +6 -0
  1016. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/multipart/nested +10 -0
  1017. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/multipart/none +9 -0
  1018. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/multipart/semicolon +6 -0
  1019. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/multipart/text +10 -0
  1020. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_auth_basic.rb +73 -0
  1021. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_auth_digest.rb +226 -0
  1022. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_auth_openid.rb +84 -0
  1023. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_builder.rb +84 -0
  1024. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_camping.rb +51 -0
  1025. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_cascade.rb +50 -0
  1026. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_cgi.rb +89 -0
  1027. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_chunked.rb +62 -0
  1028. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_commonlogger.rb +32 -0
  1029. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_conditionalget.rb +41 -0
  1030. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_content_length.rb +43 -0
  1031. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_content_type.rb +30 -0
  1032. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_deflater.rb +127 -0
  1033. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_directory.rb +61 -0
  1034. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_fastcgi.rb +89 -0
  1035. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_file.rb +75 -0
  1036. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_handler.rb +43 -0
  1037. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_head.rb +30 -0
  1038. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_lint.rb +521 -0
  1039. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_lobster.rb +45 -0
  1040. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_lock.rb +38 -0
  1041. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_methodoverride.rb +60 -0
  1042. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_mock.rb +157 -0
  1043. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_mongrel.rb +189 -0
  1044. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_recursive.rb +77 -0
  1045. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_request.rb +504 -0
  1046. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_response.rb +218 -0
  1047. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_rewindable_input.rb +118 -0
  1048. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_session_cookie.rb +82 -0
  1049. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_session_memcache.rb +240 -0
  1050. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_session_pool.rb +172 -0
  1051. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_showexceptions.rb +21 -0
  1052. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_showstatus.rb +72 -0
  1053. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_static.rb +37 -0
  1054. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_thin.rb +91 -0
  1055. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_urlmap.rb +185 -0
  1056. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_utils.rb +387 -0
  1057. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/spec_rack_webrick.rb +130 -0
  1058. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/testrequest.rb +57 -0
  1059. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/unregistered_handler/rack/handler/unregistered.rb +7 -0
  1060. data/lib/middleman/vendor/gems/gems/rack-1.0.1/test/unregistered_handler/rack/handler/unregistered_long_one.rb +7 -0
  1061. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/.document +4 -0
  1062. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/.gitignore +4 -0
  1063. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/History.txt +101 -0
  1064. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/MIT-LICENSE.txt +19 -0
  1065. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/README.rdoc +57 -0
  1066. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/Rakefile +39 -0
  1067. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/Thorfile +114 -0
  1068. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/lib/rack/mock_session.rb +61 -0
  1069. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/lib/rack/test.rb +276 -0
  1070. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/lib/rack/test/cookie_jar.rb +171 -0
  1071. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/lib/rack/test/methods.rb +80 -0
  1072. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/lib/rack/test/mock_digest_request.rb +29 -0
  1073. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/lib/rack/test/uploaded_file.rb +46 -0
  1074. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/lib/rack/test/utils.rb +101 -0
  1075. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/rack-test.gemspec +73 -0
  1076. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/spec/fixtures/config.ru +3 -0
  1077. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/spec/fixtures/fake_app.rb +115 -0
  1078. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/spec/fixtures/foo.txt +1 -0
  1079. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/spec/rack/test/cookie_spec.rb +190 -0
  1080. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/spec/rack/test/digest_auth_spec.rb +48 -0
  1081. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/spec/rack/test/multipart_spec.rb +87 -0
  1082. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/spec/rack/test/utils_spec.rb +97 -0
  1083. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/spec/rack/test_spec.rb +443 -0
  1084. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/spec/spec.opts +2 -0
  1085. data/lib/middleman/vendor/gems/gems/rack-test-0.5.2/spec/spec_helper.rb +52 -0
  1086. data/lib/middleman/vendor/gems/gems/rake-0.8.7/CHANGES +440 -0
  1087. data/lib/middleman/vendor/gems/gems/rake-0.8.7/MIT-LICENSE +21 -0
  1088. data/lib/middleman/vendor/gems/gems/rake-0.8.7/README +196 -0
  1089. data/lib/middleman/vendor/gems/gems/rake-0.8.7/Rakefile +430 -0
  1090. data/lib/middleman/vendor/gems/gems/rake-0.8.7/TODO +20 -0
  1091. data/lib/middleman/vendor/gems/gems/rake-0.8.7/bin/rake +31 -0
  1092. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/command_line_usage.rdoc +102 -0
  1093. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/example/Rakefile1 +38 -0
  1094. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/example/Rakefile2 +35 -0
  1095. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/example/a.c +6 -0
  1096. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/example/b.c +6 -0
  1097. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/example/main.c +11 -0
  1098. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/glossary.rdoc +51 -0
  1099. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/jamis.rb +591 -0
  1100. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/proto_rake.rdoc +127 -0
  1101. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/rake.1.gz +0 -0
  1102. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/rakefile.rdoc +534 -0
  1103. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/rational.rdoc +151 -0
  1104. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.4.14.rdoc +23 -0
  1105. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.4.15.rdoc +35 -0
  1106. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.5.0.rdoc +53 -0
  1107. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.5.3.rdoc +78 -0
  1108. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.5.4.rdoc +46 -0
  1109. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.6.0.rdoc +141 -0
  1110. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.7.0.rdoc +119 -0
  1111. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.7.1.rdoc +59 -0
  1112. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.7.2.rdoc +121 -0
  1113. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.7.3.rdoc +47 -0
  1114. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.0.rdoc +114 -0
  1115. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.2.rdoc +165 -0
  1116. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.3.rdoc +112 -0
  1117. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.4.rdoc +147 -0
  1118. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.5.rdoc +53 -0
  1119. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.6.rdoc +55 -0
  1120. data/lib/middleman/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.7.rdoc +55 -0
  1121. data/lib/middleman/vendor/gems/gems/rake-0.8.7/install.rb +88 -0
  1122. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake.rb +2506 -0
  1123. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/alt_system.rb +108 -0
  1124. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/classic_namespace.rb +8 -0
  1125. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/clean.rb +33 -0
  1126. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/compositepublisher.rb +24 -0
  1127. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/ftptools.rb +153 -0
  1128. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/publisher.rb +75 -0
  1129. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  1130. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/sshpublisher.rb +47 -0
  1131. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/sys.rb +209 -0
  1132. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/gempackagetask.rb +97 -0
  1133. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/loaders/makefile.rb +42 -0
  1134. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/packagetask.rb +184 -0
  1135. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/rake_test_loader.rb +5 -0
  1136. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/rdoctask.rb +209 -0
  1137. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/ruby182_test_unit_fix.rb +23 -0
  1138. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/runtest.rb +23 -0
  1139. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/tasklib.rb +23 -0
  1140. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/testtask.rb +161 -0
  1141. data/lib/middleman/vendor/gems/gems/rake-0.8.7/lib/rake/win32.rb +55 -0
  1142. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/capture_stdout.rb +26 -0
  1143. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/check_expansion.rb +5 -0
  1144. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/check_no_expansion.rb +5 -0
  1145. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/contrib/test_sys.rb +47 -0
  1146. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/chains/Rakefile +15 -0
  1147. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/default/Rakefile +19 -0
  1148. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/dryrun/Rakefile +22 -0
  1149. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/file_creation_task/Rakefile +33 -0
  1150. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/imports/Rakefile +19 -0
  1151. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/imports/deps.mf +1 -0
  1152. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/multidesc/Rakefile +17 -0
  1153. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/namespace/Rakefile +57 -0
  1154. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/rakelib/test1.rb +3 -0
  1155. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/rbext/rakefile.rb +3 -0
  1156. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/sample.mf +14 -0
  1157. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/statusreturn/Rakefile +8 -0
  1158. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/data/unittest/Rakefile +1 -0
  1159. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/filecreation.rb +32 -0
  1160. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/functional.rb +15 -0
  1161. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/in_environment.rb +30 -0
  1162. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/rake_test_setup.rb +24 -0
  1163. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/reqfile.rb +3 -0
  1164. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/reqfile2.rb +3 -0
  1165. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/session_functional.rb +339 -0
  1166. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/shellcommand.rb +3 -0
  1167. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_application.rb +675 -0
  1168. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_clean.rb +14 -0
  1169. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_definitions.rb +85 -0
  1170. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_earlytime.rb +35 -0
  1171. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_extension.rb +63 -0
  1172. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_file_creation_task.rb +62 -0
  1173. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_file_task.rb +143 -0
  1174. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_filelist.rb +623 -0
  1175. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_fileutils.rb +251 -0
  1176. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_ftp.rb +59 -0
  1177. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_invocation_chain.rb +81 -0
  1178. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_makefile_loader.rb +26 -0
  1179. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_multitask.rb +45 -0
  1180. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_namespace.rb +55 -0
  1181. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_package_task.rb +118 -0
  1182. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_pathmap.rb +210 -0
  1183. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_pseudo_status.rb +26 -0
  1184. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_rake.rb +41 -0
  1185. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_rdoc_task.rb +88 -0
  1186. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_require.rb +35 -0
  1187. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_rules.rb +349 -0
  1188. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_task_arguments.rb +89 -0
  1189. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_task_manager.rb +173 -0
  1190. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_tasklib.rb +12 -0
  1191. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_tasks.rb +374 -0
  1192. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_test_task.rb +77 -0
  1193. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_top_level_functions.rb +86 -0
  1194. data/lib/middleman/vendor/gems/gems/rake-0.8.7/test/test_win32.rb +72 -0
  1195. data/lib/middleman/vendor/gems/gems/shotgun-0.4/COPYING +18 -0
  1196. data/lib/middleman/vendor/gems/gems/shotgun-0.4/README +46 -0
  1197. data/lib/middleman/vendor/gems/gems/shotgun-0.4/Rakefile +56 -0
  1198. data/lib/middleman/vendor/gems/gems/shotgun-0.4/bin/shotgun +136 -0
  1199. data/lib/middleman/vendor/gems/gems/shotgun-0.4/lib/shotgun.rb +99 -0
  1200. data/lib/middleman/vendor/gems/gems/shotgun-0.4/shotgun.gemspec +34 -0
  1201. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/AUTHORS +41 -0
  1202. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/CHANGES +385 -0
  1203. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/LICENSE +22 -0
  1204. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/README.rdoc +573 -0
  1205. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/Rakefile +138 -0
  1206. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/app_test.rb +282 -0
  1207. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/application_test.rb +262 -0
  1208. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/builder_test.rb +101 -0
  1209. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/compat_test.rb +12 -0
  1210. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/custom_error_test.rb +62 -0
  1211. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/erb_test.rb +136 -0
  1212. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/events_test.rb +78 -0
  1213. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/filter_test.rb +30 -0
  1214. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/haml_test.rb +236 -0
  1215. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/helper.rb +33 -0
  1216. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/mapped_error_test.rb +72 -0
  1217. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/pipeline_test.rb +45 -0
  1218. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/public/foo.xml +1 -0
  1219. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/sass_test.rb +67 -0
  1220. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/sessions_test.rb +42 -0
  1221. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/streaming_test.rb +133 -0
  1222. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/sym_params_test.rb +19 -0
  1223. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/template_test.rb +30 -0
  1224. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/use_in_file_templates_test.rb +47 -0
  1225. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/foo.builder +1 -0
  1226. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/foo.erb +1 -0
  1227. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/foo.haml +1 -0
  1228. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/foo.sass +2 -0
  1229. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/foo_layout.erb +2 -0
  1230. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/foo_layout.haml +2 -0
  1231. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/foo.builder +1 -0
  1232. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/foo.erb +1 -0
  1233. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/foo.haml +1 -0
  1234. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/foo.sass +2 -0
  1235. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/layout.builder +3 -0
  1236. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/layout.erb +1 -0
  1237. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/layout.haml +1 -0
  1238. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/layout.sass +2 -0
  1239. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/no_layout/no_layout.builder +1 -0
  1240. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/compat/views/no_layout/no_layout.haml +1 -0
  1241. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra.rb +8 -0
  1242. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/base.rb +1119 -0
  1243. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/compat.rb +266 -0
  1244. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/images/404.png +0 -0
  1245. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/images/500.png +0 -0
  1246. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/main.rb +35 -0
  1247. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/showexceptions.rb +303 -0
  1248. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/test.rb +128 -0
  1249. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/test/bacon.rb +19 -0
  1250. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/test/rspec.rb +13 -0
  1251. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/test/spec.rb +11 -0
  1252. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/test/unit.rb +13 -0
  1253. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/sinatra.gemspec +125 -0
  1254. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/base_test.rb +160 -0
  1255. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/builder_test.rb +65 -0
  1256. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/contest.rb +64 -0
  1257. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/data/reload_app_file.rb +3 -0
  1258. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/erb_test.rb +81 -0
  1259. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/extensions_test.rb +100 -0
  1260. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/filter_test.rb +99 -0
  1261. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/haml_test.rb +90 -0
  1262. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/helper.rb +76 -0
  1263. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/helpers_test.rb +503 -0
  1264. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/mapped_error_test.rb +155 -0
  1265. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/middleware_test.rb +68 -0
  1266. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/options_test.rb +372 -0
  1267. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/render_backtrace_test.rb +145 -0
  1268. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/request_test.rb +18 -0
  1269. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/response_test.rb +42 -0
  1270. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/result_test.rb +98 -0
  1271. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/route_added_hook_test.rb +59 -0
  1272. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/routing_test.rb +784 -0
  1273. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/sass_test.rb +79 -0
  1274. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/server_test.rb +47 -0
  1275. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/sinatra_test.rb +13 -0
  1276. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/static_test.rb +80 -0
  1277. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/templates_test.rb +122 -0
  1278. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/test_test.rb +152 -0
  1279. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/error.builder +3 -0
  1280. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/error.erb +3 -0
  1281. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/error.haml +3 -0
  1282. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/error.sass +2 -0
  1283. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/foo/hello.test +1 -0
  1284. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/hello.builder +1 -0
  1285. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/hello.erb +1 -0
  1286. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/hello.haml +1 -0
  1287. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/hello.sass +2 -0
  1288. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/hello.test +1 -0
  1289. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/layout2.builder +3 -0
  1290. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/layout2.erb +2 -0
  1291. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/layout2.haml +2 -0
  1292. data/lib/middleman/vendor/gems/gems/sinatra-0.9.4/test/views/layout2.test +1 -0
  1293. data/lib/middleman/vendor/gems/gems/sinatra-content-for-0.2/.gitignore +3 -0
  1294. data/lib/middleman/vendor/gems/gems/sinatra-content-for-0.2/LICENSE +22 -0
  1295. data/lib/middleman/vendor/gems/gems/sinatra-content-for-0.2/README.rdoc +41 -0
  1296. data/lib/middleman/vendor/gems/gems/sinatra-content-for-0.2/lib/sinatra/content_for.rb +58 -0
  1297. data/lib/middleman/vendor/gems/gems/sinatra-content-for-0.2/sinatra-content-for.gemspec +34 -0
  1298. data/lib/middleman/vendor/gems/gems/sinatra-content-for-0.2/test/content_for_test.rb +156 -0
  1299. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/.gitignore +2 -0
  1300. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/README.markdown +59 -0
  1301. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/Rakefile +20 -0
  1302. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/VERSION +1 -0
  1303. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/bin/smusher +35 -0
  1304. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/lib/smusher.rb +97 -0
  1305. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/lib/smusher/puny_png.rb +17 -0
  1306. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/lib/smusher/smush_it.rb +22 -0
  1307. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/smusher.gemspec +78 -0
  1308. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/empty/.gitignore +0 -0
  1309. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/images/ad.gif +0 -0
  1310. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/images/add.png +0 -0
  1311. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/images/drink_empty.png +0 -0
  1312. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/images/logo.gif +0 -0
  1313. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/images/people.jpg +0 -0
  1314. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/images/water.JPG +0 -0
  1315. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/images/woman.jpeg +0 -0
  1316. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/out/ad.gif +0 -0
  1317. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/out/people.jpg +0 -0
  1318. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/reduced/add.png +0 -0
  1319. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/reduced/add_puny.png +0 -0
  1320. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/reduced/fam.png +0 -0
  1321. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/smusher/puny_png_spec.rb +12 -0
  1322. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/smusher/smush_it_spec.rb +12 -0
  1323. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/smusher_spec.rb +181 -0
  1324. data/lib/middleman/vendor/gems/gems/smusher-0.4.2/spec/spec_helper.rb +8 -0
  1325. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/Rakefile +19 -0
  1326. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/bin/sprocketize +54 -0
  1327. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/ext/nph-sprockets.cgi +127 -0
  1328. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/lib/sprockets.rb +42 -0
  1329. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/concatenation.rb +36 -0
  1330. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/environment.rb +52 -0
  1331. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/error.rb +5 -0
  1332. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/pathname.rb +37 -0
  1333. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/preprocessor.rb +91 -0
  1334. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/secretary.rb +106 -0
  1335. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/source_file.rb +54 -0
  1336. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/source_line.rb +82 -0
  1337. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/version.rb +9 -0
  1338. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/assets/images/script_with_assets/one.png +1 -0
  1339. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/assets/images/script_with_assets/two.png +1 -0
  1340. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/assets/stylesheets/script_with_assets.css +1 -0
  1341. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/constants.yml +1 -0
  1342. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/double_slash_comments_that_are_not_requires_should_be_ignored_when_strip_comments_is_false.js +8 -0
  1343. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/double_slash_comments_that_are_not_requires_should_be_removed_by_default.js +2 -0
  1344. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/multiline_comments_should_be_removed_by_default.js +4 -0
  1345. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/requiring_a_file_after_it_has_already_been_required_should_do_nothing.js +5 -0
  1346. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/requiring_a_file_that_does_not_exist_should_raise_an_error.js +1 -0
  1347. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/requiring_a_single_file_should_replace_the_require_comment_with_the_file_contents.js +3 -0
  1348. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/requiring_the_current_file_should_do_nothing.js +1 -0
  1349. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/src/constants.yml +3 -0
  1350. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/src/foo.js +1 -0
  1351. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/src/foo/bar.js +4 -0
  1352. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/src/foo/foo.js +1 -0
  1353. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/fixtures/src/script_with_assets.js +3 -0
  1354. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/test_concatenation.rb +28 -0
  1355. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/test_environment.rb +64 -0
  1356. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/test_helper.rb +55 -0
  1357. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/test_pathname.rb +43 -0
  1358. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/test_preprocessor.rb +107 -0
  1359. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/test_secretary.rb +83 -0
  1360. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/test_source_file.rb +34 -0
  1361. data/lib/middleman/vendor/gems/gems/sprockets-1.0.2/test/test_source_line.rb +89 -0
  1362. data/lib/middleman/vendor/gems/gems/templater-1.0.0/History.txt +3 -0
  1363. data/lib/middleman/vendor/gems/gems/templater-1.0.0/Manifest.txt +64 -0
  1364. data/lib/middleman/vendor/gems/gems/templater-1.0.0/README.rdoc +266 -0
  1365. data/lib/middleman/vendor/gems/gems/templater-1.0.0/Rakefile +23 -0
  1366. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater.rb +49 -0
  1367. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/actions/action.rb +43 -0
  1368. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/actions/directory.rb +22 -0
  1369. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/actions/empty_directory.rb +57 -0
  1370. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/actions/file.rb +60 -0
  1371. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/actions/template.rb +61 -0
  1372. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/capture_helpers.rb +62 -0
  1373. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/cli/generator.rb +175 -0
  1374. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/cli/manifold.rb +59 -0
  1375. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/cli/parser.rb +85 -0
  1376. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/core_ext/kernel.rb +14 -0
  1377. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/core_ext/string.rb +17 -0
  1378. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/description.rb +78 -0
  1379. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/discovery.rb +86 -0
  1380. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/generator.rb +644 -0
  1381. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/manifold.rb +98 -0
  1382. data/lib/middleman/vendor/gems/gems/templater-1.0.0/lib/templater/spec/helpers.rb +67 -0
  1383. data/lib/middleman/vendor/gems/gems/templater-1.0.0/script/console +10 -0
  1384. data/lib/middleman/vendor/gems/gems/templater-1.0.0/script/destroy +14 -0
  1385. data/lib/middleman/vendor/gems/gems/templater-1.0.0/script/generate +14 -0
  1386. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/actions/directory_spec.rb +21 -0
  1387. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/actions/empty_directory_spec.rb +108 -0
  1388. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/actions/file_spec.rb +112 -0
  1389. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/actions/template_spec.rb +141 -0
  1390. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/core_ext/string_spec.rb +39 -0
  1391. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/actions_spec.rb +111 -0
  1392. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/arguments_spec.rb +225 -0
  1393. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/desc_spec.rb +10 -0
  1394. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/destination_root_spec.rb +9 -0
  1395. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/empty_directories_spec.rb +148 -0
  1396. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/files_spec.rb +199 -0
  1397. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/generators_spec.rb +63 -0
  1398. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/glob_spec.rb +94 -0
  1399. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/invocations_spec.rb +173 -0
  1400. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/invoke_spec.rb +21 -0
  1401. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/options_spec.rb +46 -0
  1402. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/render_spec.rb +21 -0
  1403. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/source_root_spec.rb +18 -0
  1404. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/generator/templates_spec.rb +209 -0
  1405. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/manifold_spec.rb +146 -0
  1406. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/options_parser_spec.rb +20 -0
  1407. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/results/erb.rbs +1 -0
  1408. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/results/file.rbs +1 -0
  1409. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/results/random.rbs +1 -0
  1410. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/results/simple_erb.rbs +1 -0
  1411. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/spec_helper.rb +65 -0
  1412. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/spec_helpers_spec.rb +85 -0
  1413. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templater_spec.rb +7 -0
  1414. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templates/erb.rbt +1 -0
  1415. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templates/glob/README +1 -0
  1416. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templates/glob/arg.js +3 -0
  1417. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templates/glob/hellothar.%feh% +1 -0
  1418. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templates/glob/hellothar.html.%feh% +1 -0
  1419. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templates/glob/subfolder/jessica_alba.jpg +1 -0
  1420. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templates/glob/subfolder/monkey.rb +1 -0
  1421. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templates/glob/test.rb +1 -0
  1422. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templates/literals_erb.rbt +1 -0
  1423. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templates/simple.rbt +1 -0
  1424. data/lib/middleman/vendor/gems/gems/templater-1.0.0/spec/templates/simple_erb.rbt +1 -0
  1425. data/lib/middleman/vendor/gems/gems/templater-1.0.0/templater.gemspec +54 -0
  1426. data/lib/middleman/vendor/gems/gems/yui-compressor-0.9.1/Rakefile +21 -0
  1427. data/lib/middleman/vendor/gems/gems/yui-compressor-0.9.1/lib/yui/compressor.rb +200 -0
  1428. data/lib/middleman/vendor/gems/gems/yui-compressor-0.9.1/test/compressor_test.rb +94 -0
  1429. data/lib/middleman/vendor/gems/gems/yui-compressor-0.9.1/vendor/yuicompressor-2.4.2.jar +0 -0
  1430. data/lib/middleman/vendor/gems/specifications/compass-0.8.17.gemspec +36 -0
  1431. data/lib/middleman/vendor/gems/specifications/compass-slickmap-0.2.1.gemspec +31 -0
  1432. data/lib/middleman/vendor/gems/specifications/configuration-1.1.0.gemspec +27 -0
  1433. data/lib/middleman/vendor/gems/specifications/diff-lcs-1.1.2.gemspec +34 -0
  1434. data/lib/middleman/vendor/gems/specifications/extlib-0.9.13.gemspec +28 -0
  1435. data/lib/middleman/vendor/gems/specifications/haml-2.2.14.gemspec +45 -0
  1436. data/lib/middleman/vendor/gems/specifications/highline-1.5.1.gemspec +31 -0
  1437. data/lib/middleman/vendor/gems/specifications/httpclient-2.1.5.2.gemspec +26 -0
  1438. data/lib/middleman/vendor/gems/specifications/json-1.2.0.gemspec +34 -0
  1439. data/lib/middleman/vendor/gems/specifications/json_pure-1.2.0.gemspec +33 -0
  1440. data/lib/middleman/vendor/gems/specifications/launchy-0.3.3.gemspec +38 -0
  1441. data/lib/middleman/vendor/gems/specifications/rack-1.0.1.gemspec +53 -0
  1442. data/lib/middleman/vendor/gems/specifications/rack-test-0.5.2.gemspec +36 -0
  1443. data/lib/middleman/vendor/gems/specifications/rake-0.8.7.gemspec +32 -0
  1444. data/lib/middleman/vendor/gems/specifications/shotgun-0.4.gemspec +37 -0
  1445. data/lib/middleman/vendor/gems/specifications/sinatra-0.9.4.gemspec +40 -0
  1446. data/lib/middleman/vendor/gems/specifications/sinatra-content-for-0.2.gemspec +40 -0
  1447. data/lib/middleman/vendor/gems/specifications/smusher-0.4.2.gemspec +40 -0
  1448. data/lib/middleman/vendor/gems/specifications/sprockets-1.0.2.gemspec +31 -0
  1449. data/lib/middleman/vendor/gems/specifications/templater-1.0.0.gemspec +54 -0
  1450. data/lib/middleman/vendor/gems/specifications/yui-compressor-0.9.1.gemspec +29 -0
  1451. data/middleman.gemspec +1445 -18
  1452. metadata +1459 -18
  1453. data/spec/auto_image_sizes.rb +0 -22
  1454. data/spec/cache_buster_off_spec.rb +0 -20
  1455. data/spec/cache_buster_on_spec.rb +0 -20
  1456. data/spec/minify_css_spec.rb +0 -20
  1457. data/spec/minify_javascript_spec.rb +0 -20
  1458. data/spec/page_alias_and_layouts_spec.rb +0 -22
  1459. data/spec/relative_assets_spec.rb +0 -20
@@ -0,0 +1,55 @@
1
+ = Rake 0.8.6 Released
2
+
3
+ Rake version 0.8.5 introduced greatly improved support for executing
4
+ commands on Windows. The "sh" command now has the same semantics on
5
+ Windows that it has on Unix based platforms.
6
+
7
+ Rake version 0.8.6 includes minor fixes the the RDoc generation.
8
+
9
+ == Changes
10
+
11
+ === New Features / Enhancements in Version 0.8.5
12
+
13
+ * Improved implementation of the Rake system command for Windows.
14
+ (patch from James M. Lawrence/quix)
15
+
16
+ * Support for Ruby 1.9's improved system command. (patch from James
17
+ M. Lawrence/quix)
18
+
19
+ * Rake now includes the configured extension when invoking an
20
+ executable (Config::CONFIG['EXEEXT])
21
+
22
+ === Bug Fixes in Version 0.8.5
23
+
24
+ * Environment variable keys are now correctly cased (it matters in
25
+ some implementations).
26
+
27
+ == What is Rake
28
+
29
+ Rake is a build tool similar to the make program in many ways. But
30
+ instead of cryptic make recipes, Rake uses standard Ruby code to
31
+ declare tasks and dependencies. You have the full power of a modern
32
+ scripting language built right into your build tool.
33
+
34
+ == Availability
35
+
36
+ The easiest way to get and install rake is via RubyGems ...
37
+
38
+ gem install rake (you may need root/admin privileges)
39
+
40
+ Otherwise, you can get it from the more traditional places:
41
+
42
+ Home Page:: http://rake.rubyforge.org/
43
+ Download:: http://rubyforge.org/project/showfiles.php?group_id=50
44
+ GitHub:: git://github.com/jimweirich/rake.git
45
+
46
+ == Thanks
47
+
48
+ As usual, it was input from users that drove a alot of these changes. The
49
+ following people either contributed patches, made suggestions or made
50
+ otherwise helpful comments. Thanks to ...
51
+
52
+ * James M. Lawrence/quix
53
+ * Luis Lavena
54
+
55
+ -- Jim Weirich
@@ -0,0 +1,55 @@
1
+ = Rake 0.8.7 Released
2
+
3
+ Rake version 0.8.5 introduced greatly improved support for executing
4
+ commands on Windows. The "sh" command now has the same semantics on
5
+ Windows that it has on Unix based platforms.
6
+
7
+ Rake version 0.8.6 includes minor fixes the the RDoc generation.
8
+ Rake version 0.8.7 includes a minor fix for JRuby running on windows.
9
+
10
+ == Changes
11
+
12
+ === New Features / Enhancements in Version 0.8.5
13
+
14
+ * Improved implementation of the Rake system command for Windows.
15
+ (patch from James M. Lawrence/quix)
16
+
17
+ * Support for Ruby 1.9's improved system command. (patch from James
18
+ M. Lawrence/quix)
19
+
20
+ * Rake now includes the configured extension when invoking an
21
+ executable (Config::CONFIG['EXEEXT])
22
+
23
+ === Bug Fixes in Version 0.8.5
24
+
25
+ * Environment variable keys are now correctly cased (it matters in
26
+ some implementations).
27
+
28
+ == What is Rake
29
+
30
+ Rake is a build tool similar to the make program in many ways. But
31
+ instead of cryptic make recipes, Rake uses standard Ruby code to
32
+ declare tasks and dependencies. You have the full power of a modern
33
+ scripting language built right into your build tool.
34
+
35
+ == Availability
36
+
37
+ The easiest way to get and install rake is via RubyGems ...
38
+
39
+ gem install rake (you may need root/admin privileges)
40
+
41
+ Otherwise, you can get it from the more traditional places:
42
+
43
+ Home Page:: http://rake.rubyforge.org/
44
+ Download:: http://rubyforge.org/project/showfiles.php?group_id=50
45
+ GitHub:: git://github.com/jimweirich/rake.git
46
+
47
+ == Thanks
48
+
49
+ As usual, it was input from users that drove a alot of these changes. The
50
+ following people either contributed patches, made suggestions or made
51
+ otherwise helpful comments. Thanks to ...
52
+
53
+ * Charles Nutter
54
+
55
+ -- Jim Weirich
@@ -0,0 +1,88 @@
1
+ require 'rbconfig'
2
+ require 'find'
3
+ require 'ftools'
4
+
5
+ include Config
6
+
7
+ $ruby = CONFIG['ruby_install_name']
8
+
9
+ ##
10
+ # Install a binary file. We patch in on the way through to
11
+ # insert a #! line. If this is a Unix install, we name
12
+ # the command (for example) 'rake' and let the shebang line
13
+ # handle running it. Under windows, we add a '.rb' extension
14
+ # and let file associations to their stuff
15
+ #
16
+
17
+ def installBIN(from, opfile)
18
+
19
+ tmp_dir = nil
20
+ for t in [".", "/tmp", "c:/temp", $bindir]
21
+ stat = File.stat(t) rescue next
22
+ if stat.directory? and stat.writable?
23
+ tmp_dir = t
24
+ break
25
+ end
26
+ end
27
+
28
+ fail "Cannot find a temporary directory" unless tmp_dir
29
+ tmp_file = File.join(tmp_dir, "_tmp")
30
+
31
+ File.open(from) do |ip|
32
+ File.open(tmp_file, "w") do |op|
33
+ ruby = File.join($realbindir, $ruby)
34
+ op.puts "#!#{ruby} -w"
35
+ op.write ip.read
36
+ end
37
+ end
38
+
39
+ opfile += ".rb" if CONFIG["target_os"] =~ /mswin/i
40
+ File::install(tmp_file, File.join($bindir, opfile), 0755, true)
41
+ File::unlink(tmp_file)
42
+ end
43
+
44
+ $sitedir = CONFIG["sitelibdir"]
45
+ unless $sitedir
46
+ version = CONFIG["MAJOR"]+"."+CONFIG["MINOR"]
47
+ $libdir = File.join(CONFIG["libdir"], "ruby", version)
48
+ $sitedir = $:.find {|x| x =~ /site_ruby/}
49
+ if !$sitedir
50
+ $sitedir = File.join($libdir, "site_ruby")
51
+ elsif $sitedir !~ Regexp.quote(version)
52
+ $sitedir = File.join($sitedir, version)
53
+ end
54
+ end
55
+
56
+ $bindir = CONFIG["bindir"]
57
+
58
+ $realbindir = $bindir
59
+
60
+ bindir = CONFIG["bindir"]
61
+ if (destdir = ENV['DESTDIR'])
62
+ $bindir = destdir + $bindir
63
+ $sitedir = destdir + $sitedir
64
+
65
+ File::makedirs($bindir)
66
+ File::makedirs($sitedir)
67
+ end
68
+
69
+ rake_dest = File.join($sitedir, "rake")
70
+ File::makedirs(rake_dest, true)
71
+ File::chmod(0755, rake_dest)
72
+
73
+ # The library files
74
+
75
+ files = Dir.chdir('lib') { Dir['**/*.rb'] }
76
+
77
+ for fn in files
78
+ fn_dir = File.dirname(fn)
79
+ target_dir = File.join($sitedir, fn_dir)
80
+ if ! File.exist?(target_dir)
81
+ File.makedirs(target_dir)
82
+ end
83
+ File::install(File.join('lib', fn), File.join($sitedir, fn), 0644, true)
84
+ end
85
+
86
+ # and the executable
87
+
88
+ installBIN("bin/rake", "rake")
@@ -0,0 +1,2506 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #--
4
+
5
+ # Copyright 2003, 2004, 2005, 2006, 2007, 2008 by Jim Weirich (jim@weirichhouse.org)
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ # of this software and associated documentation files (the "Software"), to
9
+ # deal in the Software without restriction, including without limitation the
10
+ # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11
+ # sell copies of the Software, and to permit persons to whom the Software is
12
+ # furnished to do so, subject to the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be included in
15
+ # all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23
+ # IN THE SOFTWARE.
24
+ #++
25
+ #
26
+ # = Rake -- Ruby Make
27
+ #
28
+ # This is the main file for the Rake application. Normally it is referenced
29
+ # as a library via a require statement, but it can be distributed
30
+ # independently as an application.
31
+
32
+ RAKEVERSION = '0.8.7'
33
+
34
+ require 'rbconfig'
35
+ require 'fileutils'
36
+ require 'singleton'
37
+ require 'monitor'
38
+ require 'optparse'
39
+ require 'ostruct'
40
+
41
+ require 'rake/win32'
42
+
43
+ $trace = false
44
+
45
+ ######################################################################
46
+ # Rake extensions to Module.
47
+ #
48
+ class Module
49
+ # Check for an existing method in the current class before extending. IF
50
+ # the method already exists, then a warning is printed and the extension is
51
+ # not added. Otherwise the block is yielded and any definitions in the
52
+ # block will take effect.
53
+ #
54
+ # Usage:
55
+ #
56
+ # class String
57
+ # rake_extension("xyz") do
58
+ # def xyz
59
+ # ...
60
+ # end
61
+ # end
62
+ # end
63
+ #
64
+ def rake_extension(method)
65
+ if method_defined?(method)
66
+ $stderr.puts "WARNING: Possible conflict with Rake extension: #{self}##{method} already exists"
67
+ else
68
+ yield
69
+ end
70
+ end
71
+ end # module Module
72
+
73
+
74
+ ######################################################################
75
+ # User defined methods to be added to String.
76
+ #
77
+ class String
78
+ rake_extension("ext") do
79
+ # Replace the file extension with +newext+. If there is no extension on
80
+ # the string, append the new extension to the end. If the new extension
81
+ # is not given, or is the empty string, remove any existing extension.
82
+ #
83
+ # +ext+ is a user added method for the String class.
84
+ def ext(newext='')
85
+ return self.dup if ['.', '..'].include? self
86
+ if newext != ''
87
+ newext = (newext =~ /^\./) ? newext : ("." + newext)
88
+ end
89
+ self.chomp(File.extname(self)) << newext
90
+ end
91
+ end
92
+
93
+ rake_extension("pathmap") do
94
+ # Explode a path into individual components. Used by +pathmap+.
95
+ def pathmap_explode
96
+ head, tail = File.split(self)
97
+ return [self] if head == self
98
+ return [tail] if head == '.' || tail == '/'
99
+ return [head, tail] if head == '/'
100
+ return head.pathmap_explode + [tail]
101
+ end
102
+ protected :pathmap_explode
103
+
104
+ # Extract a partial path from the path. Include +n+ directories from the
105
+ # front end (left hand side) if +n+ is positive. Include |+n+|
106
+ # directories from the back end (right hand side) if +n+ is negative.
107
+ def pathmap_partial(n)
108
+ dirs = File.dirname(self).pathmap_explode
109
+ partial_dirs =
110
+ if n > 0
111
+ dirs[0...n]
112
+ elsif n < 0
113
+ dirs.reverse[0...-n].reverse
114
+ else
115
+ "."
116
+ end
117
+ File.join(partial_dirs)
118
+ end
119
+ protected :pathmap_partial
120
+
121
+ # Preform the pathmap replacement operations on the given path. The
122
+ # patterns take the form 'pat1,rep1;pat2,rep2...'.
123
+ def pathmap_replace(patterns, &block)
124
+ result = self
125
+ patterns.split(';').each do |pair|
126
+ pattern, replacement = pair.split(',')
127
+ pattern = Regexp.new(pattern)
128
+ if replacement == '*' && block_given?
129
+ result = result.sub(pattern, &block)
130
+ elsif replacement
131
+ result = result.sub(pattern, replacement)
132
+ else
133
+ result = result.sub(pattern, '')
134
+ end
135
+ end
136
+ result
137
+ end
138
+ protected :pathmap_replace
139
+
140
+ # Map the path according to the given specification. The specification
141
+ # controls the details of the mapping. The following special patterns are
142
+ # recognized:
143
+ #
144
+ # * <b>%p</b> -- The complete path.
145
+ # * <b>%f</b> -- The base file name of the path, with its file extension,
146
+ # but without any directories.
147
+ # * <b>%n</b> -- The file name of the path without its file extension.
148
+ # * <b>%d</b> -- The directory list of the path.
149
+ # * <b>%x</b> -- The file extension of the path. An empty string if there
150
+ # is no extension.
151
+ # * <b>%X</b> -- Everything *but* the file extension.
152
+ # * <b>%s</b> -- The alternate file separater if defined, otherwise use
153
+ # the standard file separator.
154
+ # * <b>%%</b> -- A percent sign.
155
+ #
156
+ # The %d specifier can also have a numeric prefix (e.g. '%2d'). If the
157
+ # number is positive, only return (up to) +n+ directories in the path,
158
+ # starting from the left hand side. If +n+ is negative, return (up to)
159
+ # |+n+| directories from the right hand side of the path.
160
+ #
161
+ # Examples:
162
+ #
163
+ # 'a/b/c/d/file.txt'.pathmap("%2d") => 'a/b'
164
+ # 'a/b/c/d/file.txt'.pathmap("%-2d") => 'c/d'
165
+ #
166
+ # Also the %d, %p, %f, %n, %x, and %X operators can take a
167
+ # pattern/replacement argument to perform simple string substititions on a
168
+ # particular part of the path. The pattern and replacement are speparated
169
+ # by a comma and are enclosed by curly braces. The replacement spec comes
170
+ # after the % character but before the operator letter. (e.g.
171
+ # "%{old,new}d"). Muliple replacement specs should be separated by
172
+ # semi-colons (e.g. "%{old,new;src,bin}d").
173
+ #
174
+ # Regular expressions may be used for the pattern, and back refs may be
175
+ # used in the replacement text. Curly braces, commas and semi-colons are
176
+ # excluded from both the pattern and replacement text (let's keep parsing
177
+ # reasonable).
178
+ #
179
+ # For example:
180
+ #
181
+ # "src/org/onestepback/proj/A.java".pathmap("%{^src,bin}X.class")
182
+ #
183
+ # returns:
184
+ #
185
+ # "bin/org/onestepback/proj/A.class"
186
+ #
187
+ # If the replacement text is '*', then a block may be provided to perform
188
+ # some arbitrary calculation for the replacement.
189
+ #
190
+ # For example:
191
+ #
192
+ # "/path/to/file.TXT".pathmap("%X%{.*,*}x") { |ext|
193
+ # ext.downcase
194
+ # }
195
+ #
196
+ # Returns:
197
+ #
198
+ # "/path/to/file.txt"
199
+ #
200
+ def pathmap(spec=nil, &block)
201
+ return self if spec.nil?
202
+ result = ''
203
+ spec.scan(/%\{[^}]*\}-?\d*[sdpfnxX%]|%-?\d+d|%.|[^%]+/) do |frag|
204
+ case frag
205
+ when '%f'
206
+ result << File.basename(self)
207
+ when '%n'
208
+ result << File.basename(self).ext
209
+ when '%d'
210
+ result << File.dirname(self)
211
+ when '%x'
212
+ result << File.extname(self)
213
+ when '%X'
214
+ result << self.ext
215
+ when '%p'
216
+ result << self
217
+ when '%s'
218
+ result << (File::ALT_SEPARATOR || File::SEPARATOR)
219
+ when '%-'
220
+ # do nothing
221
+ when '%%'
222
+ result << "%"
223
+ when /%(-?\d+)d/
224
+ result << pathmap_partial($1.to_i)
225
+ when /^%\{([^}]*)\}(\d*[dpfnxX])/
226
+ patterns, operator = $1, $2
227
+ result << pathmap('%' + operator).pathmap_replace(patterns, &block)
228
+ when /^%/
229
+ fail ArgumentError, "Unknown pathmap specifier #{frag} in '#{spec}'"
230
+ else
231
+ result << frag
232
+ end
233
+ end
234
+ result
235
+ end
236
+ end
237
+ end # class String
238
+
239
+ ##############################################################################
240
+ module Rake
241
+
242
+ # Errors -----------------------------------------------------------
243
+
244
+ # Error indicating an ill-formed task declaration.
245
+ class TaskArgumentError < ArgumentError
246
+ end
247
+
248
+ # Error indicating a recursion overflow error in task selection.
249
+ class RuleRecursionOverflowError < StandardError
250
+ def initialize(*args)
251
+ super
252
+ @targets = []
253
+ end
254
+
255
+ def add_target(target)
256
+ @targets << target
257
+ end
258
+
259
+ def message
260
+ super + ": [" + @targets.reverse.join(' => ') + "]"
261
+ end
262
+ end
263
+
264
+ # --------------------------------------------------------------------------
265
+ # Rake module singleton methods.
266
+ #
267
+ class << self
268
+ # Current Rake Application
269
+ def application
270
+ @application ||= Rake::Application.new
271
+ end
272
+
273
+ # Set the current Rake application object.
274
+ def application=(app)
275
+ @application = app
276
+ end
277
+
278
+ # Return the original directory where the Rake application was started.
279
+ def original_dir
280
+ application.original_dir
281
+ end
282
+
283
+ end
284
+
285
+ ####################################################################
286
+ # Mixin for creating easily cloned objects.
287
+ #
288
+ module Cloneable
289
+ # Clone an object by making a new object and setting all the instance
290
+ # variables to the same values.
291
+ def dup
292
+ sibling = self.class.new
293
+ instance_variables.each do |ivar|
294
+ value = self.instance_variable_get(ivar)
295
+ new_value = value.clone rescue value
296
+ sibling.instance_variable_set(ivar, new_value)
297
+ end
298
+ sibling.taint if tainted?
299
+ sibling
300
+ end
301
+
302
+ def clone
303
+ sibling = dup
304
+ sibling.freeze if frozen?
305
+ sibling
306
+ end
307
+ end
308
+
309
+ ####################################################################
310
+ # Exit status class for times the system just gives us a nil.
311
+ class PseudoStatus
312
+ attr_reader :exitstatus
313
+ def initialize(code=0)
314
+ @exitstatus = code
315
+ end
316
+ def to_i
317
+ @exitstatus << 8
318
+ end
319
+ def >>(n)
320
+ to_i >> n
321
+ end
322
+ def stopped?
323
+ false
324
+ end
325
+ def exited?
326
+ true
327
+ end
328
+ end
329
+
330
+ ####################################################################
331
+ # TaskAguments manage the arguments passed to a task.
332
+ #
333
+ class TaskArguments
334
+ include Enumerable
335
+
336
+ attr_reader :names
337
+
338
+ # Create a TaskArgument object with a list of named arguments
339
+ # (given by :names) and a set of associated values (given by
340
+ # :values). :parent is the parent argument object.
341
+ def initialize(names, values, parent=nil)
342
+ @names = names
343
+ @parent = parent
344
+ @hash = {}
345
+ names.each_with_index { |name, i|
346
+ @hash[name.to_sym] = values[i] unless values[i].nil?
347
+ }
348
+ end
349
+
350
+ # Create a new argument scope using the prerequisite argument
351
+ # names.
352
+ def new_scope(names)
353
+ values = names.collect { |n| self[n] }
354
+ self.class.new(names, values, self)
355
+ end
356
+
357
+ # Find an argument value by name or index.
358
+ def [](index)
359
+ lookup(index.to_sym)
360
+ end
361
+
362
+ # Specify a hash of default values for task arguments. Use the
363
+ # defaults only if there is no specific value for the given
364
+ # argument.
365
+ def with_defaults(defaults)
366
+ @hash = defaults.merge(@hash)
367
+ end
368
+
369
+ def each(&block)
370
+ @hash.each(&block)
371
+ end
372
+
373
+ def method_missing(sym, *args, &block)
374
+ lookup(sym.to_sym)
375
+ end
376
+
377
+ def to_hash
378
+ @hash
379
+ end
380
+
381
+ def to_s
382
+ @hash.inspect
383
+ end
384
+
385
+ def inspect
386
+ to_s
387
+ end
388
+
389
+ protected
390
+
391
+ def lookup(name)
392
+ if @hash.has_key?(name)
393
+ @hash[name]
394
+ elsif ENV.has_key?(name.to_s)
395
+ ENV[name.to_s]
396
+ elsif ENV.has_key?(name.to_s.upcase)
397
+ ENV[name.to_s.upcase]
398
+ elsif @parent
399
+ @parent.lookup(name)
400
+ end
401
+ end
402
+ end
403
+
404
+ EMPTY_TASK_ARGS = TaskArguments.new([], [])
405
+
406
+ ####################################################################
407
+ # InvocationChain tracks the chain of task invocations to detect
408
+ # circular dependencies.
409
+ class InvocationChain
410
+ def initialize(value, tail)
411
+ @value = value
412
+ @tail = tail
413
+ end
414
+
415
+ def member?(obj)
416
+ @value == obj || @tail.member?(obj)
417
+ end
418
+
419
+ def append(value)
420
+ if member?(value)
421
+ fail RuntimeError, "Circular dependency detected: #{to_s} => #{value}"
422
+ end
423
+ self.class.new(value, self)
424
+ end
425
+
426
+ def to_s
427
+ "#{prefix}#{@value}"
428
+ end
429
+
430
+ def self.append(value, chain)
431
+ chain.append(value)
432
+ end
433
+
434
+ private
435
+
436
+ def prefix
437
+ "#{@tail.to_s} => "
438
+ end
439
+
440
+ class EmptyInvocationChain
441
+ def member?(obj)
442
+ false
443
+ end
444
+ def append(value)
445
+ InvocationChain.new(value, self)
446
+ end
447
+ def to_s
448
+ "TOP"
449
+ end
450
+ end
451
+
452
+ EMPTY = EmptyInvocationChain.new
453
+
454
+ end # class InvocationChain
455
+
456
+ end # module Rake
457
+
458
+ module Rake
459
+
460
+ ###########################################################################
461
+ # A Task is the basic unit of work in a Rakefile. Tasks have associated
462
+ # actions (possibly more than one) and a list of prerequisites. When
463
+ # invoked, a task will first ensure that all of its prerequisites have an
464
+ # opportunity to run and then it will execute its own actions.
465
+ #
466
+ # Tasks are not usually created directly using the new method, but rather
467
+ # use the +file+ and +task+ convenience methods.
468
+ #
469
+ class Task
470
+ # List of prerequisites for a task.
471
+ attr_reader :prerequisites
472
+
473
+ # List of actions attached to a task.
474
+ attr_reader :actions
475
+
476
+ # Application owning this task.
477
+ attr_accessor :application
478
+
479
+ # Comment for this task. Restricted to a single line of no more than 50
480
+ # characters.
481
+ attr_reader :comment
482
+
483
+ # Full text of the (possibly multi-line) comment.
484
+ attr_reader :full_comment
485
+
486
+ # Array of nested namespaces names used for task lookup by this task.
487
+ attr_reader :scope
488
+
489
+ # Return task name
490
+ def to_s
491
+ name
492
+ end
493
+
494
+ def inspect
495
+ "<#{self.class} #{name} => [#{prerequisites.join(', ')}]>"
496
+ end
497
+
498
+ # List of sources for task.
499
+ attr_writer :sources
500
+ def sources
501
+ @sources ||= []
502
+ end
503
+
504
+ # First source from a rule (nil if no sources)
505
+ def source
506
+ @sources.first if defined?(@sources)
507
+ end
508
+
509
+ # Create a task named +task_name+ with no actions or prerequisites. Use
510
+ # +enhance+ to add actions and prerequisites.
511
+ def initialize(task_name, app)
512
+ @name = task_name.to_s
513
+ @prerequisites = []
514
+ @actions = []
515
+ @already_invoked = false
516
+ @full_comment = nil
517
+ @comment = nil
518
+ @lock = Monitor.new
519
+ @application = app
520
+ @scope = app.current_scope
521
+ @arg_names = nil
522
+ end
523
+
524
+ # Enhance a task with prerequisites or actions. Returns self.
525
+ def enhance(deps=nil, &block)
526
+ @prerequisites |= deps if deps
527
+ @actions << block if block_given?
528
+ self
529
+ end
530
+
531
+ # Name of the task, including any namespace qualifiers.
532
+ def name
533
+ @name.to_s
534
+ end
535
+
536
+ # Name of task with argument list description.
537
+ def name_with_args # :nodoc:
538
+ if arg_description
539
+ "#{name}#{arg_description}"
540
+ else
541
+ name
542
+ end
543
+ end
544
+
545
+ # Argument description (nil if none).
546
+ def arg_description # :nodoc:
547
+ @arg_names ? "[#{(arg_names || []).join(',')}]" : nil
548
+ end
549
+
550
+ # Name of arguments for this task.
551
+ def arg_names
552
+ @arg_names || []
553
+ end
554
+
555
+ # Reenable the task, allowing its tasks to be executed if the task
556
+ # is invoked again.
557
+ def reenable
558
+ @already_invoked = false
559
+ end
560
+
561
+ # Clear the existing prerequisites and actions of a rake task.
562
+ def clear
563
+ clear_prerequisites
564
+ clear_actions
565
+ self
566
+ end
567
+
568
+ # Clear the existing prerequisites of a rake task.
569
+ def clear_prerequisites
570
+ prerequisites.clear
571
+ self
572
+ end
573
+
574
+ # Clear the existing actions on a rake task.
575
+ def clear_actions
576
+ actions.clear
577
+ self
578
+ end
579
+
580
+ # Invoke the task if it is needed. Prerequites are invoked first.
581
+ def invoke(*args)
582
+ task_args = TaskArguments.new(arg_names, args)
583
+ invoke_with_call_chain(task_args, InvocationChain::EMPTY)
584
+ end
585
+
586
+ # Same as invoke, but explicitly pass a call chain to detect
587
+ # circular dependencies.
588
+ def invoke_with_call_chain(task_args, invocation_chain) # :nodoc:
589
+ new_chain = InvocationChain.append(self, invocation_chain)
590
+ @lock.synchronize do
591
+ if application.options.trace
592
+ puts "** Invoke #{name} #{format_trace_flags}"
593
+ end
594
+ return if @already_invoked
595
+ @already_invoked = true
596
+ invoke_prerequisites(task_args, new_chain)
597
+ execute(task_args) if needed?
598
+ end
599
+ end
600
+ protected :invoke_with_call_chain
601
+
602
+ # Invoke all the prerequisites of a task.
603
+ def invoke_prerequisites(task_args, invocation_chain) # :nodoc:
604
+ @prerequisites.each { |n|
605
+ prereq = application[n, @scope]
606
+ prereq_args = task_args.new_scope(prereq.arg_names)
607
+ prereq.invoke_with_call_chain(prereq_args, invocation_chain)
608
+ }
609
+ end
610
+
611
+ # Format the trace flags for display.
612
+ def format_trace_flags
613
+ flags = []
614
+ flags << "first_time" unless @already_invoked
615
+ flags << "not_needed" unless needed?
616
+ flags.empty? ? "" : "(" + flags.join(", ") + ")"
617
+ end
618
+ private :format_trace_flags
619
+
620
+ # Execute the actions associated with this task.
621
+ def execute(args=nil)
622
+ args ||= EMPTY_TASK_ARGS
623
+ if application.options.dryrun
624
+ puts "** Execute (dry run) #{name}"
625
+ return
626
+ end
627
+ if application.options.trace
628
+ puts "** Execute #{name}"
629
+ end
630
+ application.enhance_with_matching_rule(name) if @actions.empty?
631
+ @actions.each do |act|
632
+ case act.arity
633
+ when 1
634
+ act.call(self)
635
+ else
636
+ act.call(self, args)
637
+ end
638
+ end
639
+ end
640
+
641
+ # Is this task needed?
642
+ def needed?
643
+ true
644
+ end
645
+
646
+ # Timestamp for this task. Basic tasks return the current time for their
647
+ # time stamp. Other tasks can be more sophisticated.
648
+ def timestamp
649
+ @prerequisites.collect { |p| application[p].timestamp }.max || Time.now
650
+ end
651
+
652
+ # Add a description to the task. The description can consist of an option
653
+ # argument list (enclosed brackets) and an optional comment.
654
+ def add_description(description)
655
+ return if ! description
656
+ comment = description.strip
657
+ add_comment(comment) if comment && ! comment.empty?
658
+ end
659
+
660
+ # Writing to the comment attribute is the same as adding a description.
661
+ def comment=(description)
662
+ add_description(description)
663
+ end
664
+
665
+ # Add a comment to the task. If a comment alread exists, separate
666
+ # the new comment with " / ".
667
+ def add_comment(comment)
668
+ if @full_comment
669
+ @full_comment << " / "
670
+ else
671
+ @full_comment = ''
672
+ end
673
+ @full_comment << comment
674
+ if @full_comment =~ /\A([^.]+?\.)( |$)/
675
+ @comment = $1
676
+ else
677
+ @comment = @full_comment
678
+ end
679
+ end
680
+ private :add_comment
681
+
682
+ # Set the names of the arguments for this task. +args+ should be
683
+ # an array of symbols, one for each argument name.
684
+ def set_arg_names(args)
685
+ @arg_names = args.map { |a| a.to_sym }
686
+ end
687
+
688
+ # Return a string describing the internal state of a task. Useful for
689
+ # debugging.
690
+ def investigation
691
+ result = "------------------------------\n"
692
+ result << "Investigating #{name}\n"
693
+ result << "class: #{self.class}\n"
694
+ result << "task needed: #{needed?}\n"
695
+ result << "timestamp: #{timestamp}\n"
696
+ result << "pre-requisites: \n"
697
+ prereqs = @prerequisites.collect {|name| application[name]}
698
+ prereqs.sort! {|a,b| a.timestamp <=> b.timestamp}
699
+ prereqs.each do |p|
700
+ result << "--#{p.name} (#{p.timestamp})\n"
701
+ end
702
+ latest_prereq = @prerequisites.collect{|n| application[n].timestamp}.max
703
+ result << "latest-prerequisite time: #{latest_prereq}\n"
704
+ result << "................................\n\n"
705
+ return result
706
+ end
707
+
708
+ # ----------------------------------------------------------------
709
+ # Rake Module Methods
710
+ #
711
+ class << self
712
+
713
+ # Clear the task list. This cause rake to immediately forget all the
714
+ # tasks that have been assigned. (Normally used in the unit tests.)
715
+ def clear
716
+ Rake.application.clear
717
+ end
718
+
719
+ # List of all defined tasks.
720
+ def tasks
721
+ Rake.application.tasks
722
+ end
723
+
724
+ # Return a task with the given name. If the task is not currently
725
+ # known, try to synthesize one from the defined rules. If no rules are
726
+ # found, but an existing file matches the task name, assume it is a file
727
+ # task with no dependencies or actions.
728
+ def [](task_name)
729
+ Rake.application[task_name]
730
+ end
731
+
732
+ # TRUE if the task name is already defined.
733
+ def task_defined?(task_name)
734
+ Rake.application.lookup(task_name) != nil
735
+ end
736
+
737
+ # Define a task given +args+ and an option block. If a rule with the
738
+ # given name already exists, the prerequisites and actions are added to
739
+ # the existing task. Returns the defined task.
740
+ def define_task(*args, &block)
741
+ Rake.application.define_task(self, *args, &block)
742
+ end
743
+
744
+ # Define a rule for synthesizing tasks.
745
+ def create_rule(*args, &block)
746
+ Rake.application.create_rule(*args, &block)
747
+ end
748
+
749
+ # Apply the scope to the task name according to the rules for
750
+ # this kind of task. Generic tasks will accept the scope as
751
+ # part of the name.
752
+ def scope_name(scope, task_name)
753
+ (scope + [task_name]).join(':')
754
+ end
755
+
756
+ end # class << Rake::Task
757
+ end # class Rake::Task
758
+
759
+
760
+ ###########################################################################
761
+ # A FileTask is a task that includes time based dependencies. If any of a
762
+ # FileTask's prerequisites have a timestamp that is later than the file
763
+ # represented by this task, then the file must be rebuilt (using the
764
+ # supplied actions).
765
+ #
766
+ class FileTask < Task
767
+
768
+ # Is this file task needed? Yes if it doesn't exist, or if its time stamp
769
+ # is out of date.
770
+ def needed?
771
+ ! File.exist?(name) || out_of_date?(timestamp)
772
+ end
773
+
774
+ # Time stamp for file task.
775
+ def timestamp
776
+ if File.exist?(name)
777
+ File.mtime(name.to_s)
778
+ else
779
+ Rake::EARLY
780
+ end
781
+ end
782
+
783
+ private
784
+
785
+ # Are there any prerequisites with a later time than the given time stamp?
786
+ def out_of_date?(stamp)
787
+ @prerequisites.any? { |n| application[n].timestamp > stamp}
788
+ end
789
+
790
+ # ----------------------------------------------------------------
791
+ # Task class methods.
792
+ #
793
+ class << self
794
+ # Apply the scope to the task name according to the rules for this kind
795
+ # of task. File based tasks ignore the scope when creating the name.
796
+ def scope_name(scope, task_name)
797
+ task_name
798
+ end
799
+ end
800
+ end # class Rake::FileTask
801
+
802
+ ###########################################################################
803
+ # A FileCreationTask is a file task that when used as a dependency will be
804
+ # needed if and only if the file has not been created. Once created, it is
805
+ # not re-triggered if any of its dependencies are newer, nor does trigger
806
+ # any rebuilds of tasks that depend on it whenever it is updated.
807
+ #
808
+ class FileCreationTask < FileTask
809
+ # Is this file task needed? Yes if it doesn't exist.
810
+ def needed?
811
+ ! File.exist?(name)
812
+ end
813
+
814
+ # Time stamp for file creation task. This time stamp is earlier
815
+ # than any other time stamp.
816
+ def timestamp
817
+ Rake::EARLY
818
+ end
819
+ end
820
+
821
+ ###########################################################################
822
+ # Same as a regular task, but the immediate prerequisites are done in
823
+ # parallel using Ruby threads.
824
+ #
825
+ class MultiTask < Task
826
+ private
827
+ def invoke_prerequisites(args, invocation_chain)
828
+ threads = @prerequisites.collect { |p|
829
+ Thread.new(p) { |r| application[r].invoke_with_call_chain(args, invocation_chain) }
830
+ }
831
+ threads.each { |t| t.join }
832
+ end
833
+ end
834
+ end # module Rake
835
+
836
+ ## ###########################################################################
837
+ # Task Definition Functions ...
838
+
839
+ # Declare a basic task.
840
+ #
841
+ # Example:
842
+ # task :clobber => [:clean] do
843
+ # rm_rf "html"
844
+ # end
845
+ #
846
+ def task(*args, &block)
847
+ Rake::Task.define_task(*args, &block)
848
+ end
849
+
850
+
851
+ # Declare a file task.
852
+ #
853
+ # Example:
854
+ # file "config.cfg" => ["config.template"] do
855
+ # open("config.cfg", "w") do |outfile|
856
+ # open("config.template") do |infile|
857
+ # while line = infile.gets
858
+ # outfile.puts line
859
+ # end
860
+ # end
861
+ # end
862
+ # end
863
+ #
864
+ def file(*args, &block)
865
+ Rake::FileTask.define_task(*args, &block)
866
+ end
867
+
868
+ # Declare a file creation task.
869
+ # (Mainly used for the directory command).
870
+ def file_create(args, &block)
871
+ Rake::FileCreationTask.define_task(args, &block)
872
+ end
873
+
874
+ # Declare a set of files tasks to create the given directories on demand.
875
+ #
876
+ # Example:
877
+ # directory "testdata/doc"
878
+ #
879
+ def directory(dir)
880
+ Rake.each_dir_parent(dir) do |d|
881
+ file_create d do |t|
882
+ mkdir_p t.name if ! File.exist?(t.name)
883
+ end
884
+ end
885
+ end
886
+
887
+ # Declare a task that performs its prerequisites in parallel. Multitasks does
888
+ # *not* guarantee that its prerequisites will execute in any given order
889
+ # (which is obvious when you think about it)
890
+ #
891
+ # Example:
892
+ # multitask :deploy => [:deploy_gem, :deploy_rdoc]
893
+ #
894
+ def multitask(args, &block)
895
+ Rake::MultiTask.define_task(args, &block)
896
+ end
897
+
898
+ # Create a new rake namespace and use it for evaluating the given block.
899
+ # Returns a NameSpace object that can be used to lookup tasks defined in the
900
+ # namespace.
901
+ #
902
+ # E.g.
903
+ #
904
+ # ns = namespace "nested" do
905
+ # task :run
906
+ # end
907
+ # task_run = ns[:run] # find :run in the given namespace.
908
+ #
909
+ def namespace(name=nil, &block)
910
+ Rake.application.in_namespace(name, &block)
911
+ end
912
+
913
+ # Declare a rule for auto-tasks.
914
+ #
915
+ # Example:
916
+ # rule '.o' => '.c' do |t|
917
+ # sh %{cc -o #{t.name} #{t.source}}
918
+ # end
919
+ #
920
+ def rule(*args, &block)
921
+ Rake::Task.create_rule(*args, &block)
922
+ end
923
+
924
+ # Describe the next rake task.
925
+ #
926
+ # Example:
927
+ # desc "Run the Unit Tests"
928
+ # task :test => [:build]
929
+ # runtests
930
+ # end
931
+ #
932
+ def desc(description)
933
+ Rake.application.last_description = description
934
+ end
935
+
936
+ # Import the partial Rakefiles +fn+. Imported files are loaded _after_ the
937
+ # current file is completely loaded. This allows the import statement to
938
+ # appear anywhere in the importing file, and yet allowing the imported files
939
+ # to depend on objects defined in the importing file.
940
+ #
941
+ # A common use of the import statement is to include files containing
942
+ # dependency declarations.
943
+ #
944
+ # See also the --rakelibdir command line option.
945
+ #
946
+ # Example:
947
+ # import ".depend", "my_rules"
948
+ #
949
+ def import(*fns)
950
+ fns.each do |fn|
951
+ Rake.application.add_import(fn)
952
+ end
953
+ end
954
+
955
+ #############################################################################
956
+ # This a FileUtils extension that defines several additional commands to be
957
+ # added to the FileUtils utility functions.
958
+ #
959
+ module FileUtils
960
+ RUBY_EXT = ((Config::CONFIG['ruby_install_name'] =~ /\.(com|cmd|exe|bat|rb|sh)$/) ?
961
+ "" :
962
+ Config::CONFIG['EXEEXT'])
963
+
964
+ RUBY = File.join(
965
+ Config::CONFIG['bindir'],
966
+ Config::CONFIG['ruby_install_name'] + RUBY_EXT).
967
+ sub(/.*\s.*/m, '"\&"')
968
+
969
+ OPT_TABLE['sh'] = %w(noop verbose)
970
+ OPT_TABLE['ruby'] = %w(noop verbose)
971
+
972
+ # Run the system command +cmd+. If multiple arguments are given the command
973
+ # is not run with the shell (same semantics as Kernel::exec and
974
+ # Kernel::system).
975
+ #
976
+ # Example:
977
+ # sh %{ls -ltr}
978
+ #
979
+ # sh 'ls', 'file with spaces'
980
+ #
981
+ # # check exit status after command runs
982
+ # sh %{grep pattern file} do |ok, res|
983
+ # if ! ok
984
+ # puts "pattern not found (status = #{res.exitstatus})"
985
+ # end
986
+ # end
987
+ #
988
+ def sh(*cmd, &block)
989
+ options = (Hash === cmd.last) ? cmd.pop : {}
990
+ unless block_given?
991
+ show_command = cmd.join(" ")
992
+ show_command = show_command[0,42] + "..." unless $trace
993
+ # TODO code application logic heref show_command.length > 45
994
+ block = lambda { |ok, status|
995
+ ok or fail "Command failed with status (#{status.exitstatus}): [#{show_command}]"
996
+ }
997
+ end
998
+ if RakeFileUtils.verbose_flag == :default
999
+ options[:verbose] = true
1000
+ else
1001
+ options[:verbose] ||= RakeFileUtils.verbose_flag
1002
+ end
1003
+ options[:noop] ||= RakeFileUtils.nowrite_flag
1004
+ rake_check_options options, :noop, :verbose
1005
+ rake_output_message cmd.join(" ") if options[:verbose]
1006
+ unless options[:noop]
1007
+ res = rake_system(*cmd)
1008
+ status = $?
1009
+ status = PseudoStatus.new(1) if !res && status.nil?
1010
+ block.call(res, status)
1011
+ end
1012
+ end
1013
+
1014
+ def rake_system(*cmd)
1015
+ Rake::AltSystem.system(*cmd)
1016
+ end
1017
+ private :rake_system
1018
+
1019
+ # Run a Ruby interpreter with the given arguments.
1020
+ #
1021
+ # Example:
1022
+ # ruby %{-pe '$_.upcase!' <README}
1023
+ #
1024
+ def ruby(*args,&block)
1025
+ options = (Hash === args.last) ? args.pop : {}
1026
+ if args.length > 1 then
1027
+ sh(*([RUBY] + args + [options]), &block)
1028
+ else
1029
+ sh("#{RUBY} #{args.first}", options, &block)
1030
+ end
1031
+ end
1032
+
1033
+ LN_SUPPORTED = [true]
1034
+
1035
+ # Attempt to do a normal file link, but fall back to a copy if the link
1036
+ # fails.
1037
+ def safe_ln(*args)
1038
+ unless LN_SUPPORTED[0]
1039
+ cp(*args)
1040
+ else
1041
+ begin
1042
+ ln(*args)
1043
+ rescue StandardError, NotImplementedError => ex
1044
+ LN_SUPPORTED[0] = false
1045
+ cp(*args)
1046
+ end
1047
+ end
1048
+ end
1049
+
1050
+ # Split a file path into individual directory names.
1051
+ #
1052
+ # Example:
1053
+ # split_all("a/b/c") => ['a', 'b', 'c']
1054
+ #
1055
+ def split_all(path)
1056
+ head, tail = File.split(path)
1057
+ return [tail] if head == '.' || tail == '/'
1058
+ return [head, tail] if head == '/'
1059
+ return split_all(head) + [tail]
1060
+ end
1061
+ end
1062
+
1063
+ #############################################################################
1064
+ # RakeFileUtils provides a custom version of the FileUtils methods that
1065
+ # respond to the <tt>verbose</tt> and <tt>nowrite</tt> commands.
1066
+ #
1067
+ module RakeFileUtils
1068
+ include FileUtils
1069
+
1070
+ class << self
1071
+ attr_accessor :verbose_flag, :nowrite_flag
1072
+ end
1073
+ RakeFileUtils.verbose_flag = :default
1074
+ RakeFileUtils.nowrite_flag = false
1075
+
1076
+ $fileutils_verbose = true
1077
+ $fileutils_nowrite = false
1078
+
1079
+ FileUtils::OPT_TABLE.each do |name, opts|
1080
+ default_options = []
1081
+ if opts.include?(:verbose) || opts.include?("verbose")
1082
+ default_options << ':verbose => RakeFileUtils.verbose_flag'
1083
+ end
1084
+ if opts.include?(:noop) || opts.include?("noop")
1085
+ default_options << ':noop => RakeFileUtils.nowrite_flag'
1086
+ end
1087
+
1088
+ next if default_options.empty?
1089
+ module_eval(<<-EOS, __FILE__, __LINE__ + 1)
1090
+ def #{name}( *args, &block )
1091
+ super(
1092
+ *rake_merge_option(args,
1093
+ #{default_options.join(', ')}
1094
+ ), &block)
1095
+ end
1096
+ EOS
1097
+ end
1098
+
1099
+ # Get/set the verbose flag controlling output from the FileUtils utilities.
1100
+ # If verbose is true, then the utility method is echoed to standard output.
1101
+ #
1102
+ # Examples:
1103
+ # verbose # return the current value of the verbose flag
1104
+ # verbose(v) # set the verbose flag to _v_.
1105
+ # verbose(v) { code } # Execute code with the verbose flag set temporarily to _v_.
1106
+ # # Return to the original value when code is done.
1107
+ def verbose(value=nil)
1108
+ oldvalue = RakeFileUtils.verbose_flag
1109
+ RakeFileUtils.verbose_flag = value unless value.nil?
1110
+ if block_given?
1111
+ begin
1112
+ yield
1113
+ ensure
1114
+ RakeFileUtils.verbose_flag = oldvalue
1115
+ end
1116
+ end
1117
+ RakeFileUtils.verbose_flag
1118
+ end
1119
+
1120
+ # Get/set the nowrite flag controlling output from the FileUtils utilities.
1121
+ # If verbose is true, then the utility method is echoed to standard output.
1122
+ #
1123
+ # Examples:
1124
+ # nowrite # return the current value of the nowrite flag
1125
+ # nowrite(v) # set the nowrite flag to _v_.
1126
+ # nowrite(v) { code } # Execute code with the nowrite flag set temporarily to _v_.
1127
+ # # Return to the original value when code is done.
1128
+ def nowrite(value=nil)
1129
+ oldvalue = RakeFileUtils.nowrite_flag
1130
+ RakeFileUtils.nowrite_flag = value unless value.nil?
1131
+ if block_given?
1132
+ begin
1133
+ yield
1134
+ ensure
1135
+ RakeFileUtils.nowrite_flag = oldvalue
1136
+ end
1137
+ end
1138
+ oldvalue
1139
+ end
1140
+
1141
+ # Use this function to prevent protentially destructive ruby code from
1142
+ # running when the :nowrite flag is set.
1143
+ #
1144
+ # Example:
1145
+ #
1146
+ # when_writing("Building Project") do
1147
+ # project.build
1148
+ # end
1149
+ #
1150
+ # The following code will build the project under normal conditions. If the
1151
+ # nowrite(true) flag is set, then the example will print:
1152
+ # DRYRUN: Building Project
1153
+ # instead of actually building the project.
1154
+ #
1155
+ def when_writing(msg=nil)
1156
+ if RakeFileUtils.nowrite_flag
1157
+ puts "DRYRUN: #{msg}" if msg
1158
+ else
1159
+ yield
1160
+ end
1161
+ end
1162
+
1163
+ # Merge the given options with the default values.
1164
+ def rake_merge_option(args, defaults)
1165
+ if Hash === args.last
1166
+ defaults.update(args.last)
1167
+ args.pop
1168
+ end
1169
+ args.push defaults
1170
+ args
1171
+ end
1172
+ private :rake_merge_option
1173
+
1174
+ # Send the message to the default rake output (which is $stderr).
1175
+ def rake_output_message(message)
1176
+ $stderr.puts(message)
1177
+ end
1178
+ private :rake_output_message
1179
+
1180
+ # Check that the options do not contain options not listed in +optdecl+. An
1181
+ # ArgumentError exception is thrown if non-declared options are found.
1182
+ def rake_check_options(options, *optdecl)
1183
+ h = options.dup
1184
+ optdecl.each do |name|
1185
+ h.delete name
1186
+ end
1187
+ raise ArgumentError, "no such option: #{h.keys.join(' ')}" unless h.empty?
1188
+ end
1189
+ private :rake_check_options
1190
+
1191
+ extend self
1192
+ end
1193
+
1194
+ #############################################################################
1195
+ # Include the FileUtils file manipulation functions in the top level module,
1196
+ # but mark them private so that they don't unintentionally define methods on
1197
+ # other objects.
1198
+
1199
+ include RakeFileUtils
1200
+ private(*FileUtils.instance_methods(false))
1201
+ private(*RakeFileUtils.instance_methods(false))
1202
+
1203
+ ######################################################################
1204
+ module Rake
1205
+
1206
+ ###########################################################################
1207
+ # A FileList is essentially an array with a few helper methods defined to
1208
+ # make file manipulation a bit easier.
1209
+ #
1210
+ # FileLists are lazy. When given a list of glob patterns for possible files
1211
+ # to be included in the file list, instead of searching the file structures
1212
+ # to find the files, a FileList holds the pattern for latter use.
1213
+ #
1214
+ # This allows us to define a number of FileList to match any number of
1215
+ # files, but only search out the actual files when then FileList itself is
1216
+ # actually used. The key is that the first time an element of the
1217
+ # FileList/Array is requested, the pending patterns are resolved into a real
1218
+ # list of file names.
1219
+ #
1220
+ class FileList
1221
+
1222
+ include Cloneable
1223
+
1224
+ # == Method Delegation
1225
+ #
1226
+ # The lazy evaluation magic of FileLists happens by implementing all the
1227
+ # array specific methods to call +resolve+ before delegating the heavy
1228
+ # lifting to an embedded array object (@items).
1229
+ #
1230
+ # In addition, there are two kinds of delegation calls. The regular kind
1231
+ # delegates to the @items array and returns the result directly. Well,
1232
+ # almost directly. It checks if the returned value is the @items object
1233
+ # itself, and if so will return the FileList object instead.
1234
+ #
1235
+ # The second kind of delegation call is used in methods that normally
1236
+ # return a new Array object. We want to capture the return value of these
1237
+ # methods and wrap them in a new FileList object. We enumerate these
1238
+ # methods in the +SPECIAL_RETURN+ list below.
1239
+
1240
+ # List of array methods (that are not in +Object+) that need to be
1241
+ # delegated.
1242
+ ARRAY_METHODS = (Array.instance_methods - Object.instance_methods).map { |n| n.to_s }
1243
+
1244
+ # List of additional methods that must be delegated.
1245
+ MUST_DEFINE = %w[to_a inspect]
1246
+
1247
+ # List of methods that should not be delegated here (we define special
1248
+ # versions of them explicitly below).
1249
+ MUST_NOT_DEFINE = %w[to_a to_ary partition *]
1250
+
1251
+ # List of delegated methods that return new array values which need
1252
+ # wrapping.
1253
+ SPECIAL_RETURN = %w[
1254
+ map collect sort sort_by select find_all reject grep
1255
+ compact flatten uniq values_at
1256
+ + - & |
1257
+ ]
1258
+
1259
+ DELEGATING_METHODS = (ARRAY_METHODS + MUST_DEFINE - MUST_NOT_DEFINE).collect{ |s| s.to_s }.sort.uniq
1260
+
1261
+ # Now do the delegation.
1262
+ DELEGATING_METHODS.each_with_index do |sym, i|
1263
+ if SPECIAL_RETURN.include?(sym)
1264
+ ln = __LINE__+1
1265
+ class_eval %{
1266
+ def #{sym}(*args, &block)
1267
+ resolve
1268
+ result = @items.send(:#{sym}, *args, &block)
1269
+ FileList.new.import(result)
1270
+ end
1271
+ }, __FILE__, ln
1272
+ else
1273
+ ln = __LINE__+1
1274
+ class_eval %{
1275
+ def #{sym}(*args, &block)
1276
+ resolve
1277
+ result = @items.send(:#{sym}, *args, &block)
1278
+ result.object_id == @items.object_id ? self : result
1279
+ end
1280
+ }, __FILE__, ln
1281
+ end
1282
+ end
1283
+
1284
+ # Create a file list from the globbable patterns given. If you wish to
1285
+ # perform multiple includes or excludes at object build time, use the
1286
+ # "yield self" pattern.
1287
+ #
1288
+ # Example:
1289
+ # file_list = FileList.new('lib/**/*.rb', 'test/test*.rb')
1290
+ #
1291
+ # pkg_files = FileList.new('lib/**/*') do |fl|
1292
+ # fl.exclude(/\bCVS\b/)
1293
+ # end
1294
+ #
1295
+ def initialize(*patterns)
1296
+ @pending_add = []
1297
+ @pending = false
1298
+ @exclude_patterns = DEFAULT_IGNORE_PATTERNS.dup
1299
+ @exclude_procs = DEFAULT_IGNORE_PROCS.dup
1300
+ @exclude_re = nil
1301
+ @items = []
1302
+ patterns.each { |pattern| include(pattern) }
1303
+ yield self if block_given?
1304
+ end
1305
+
1306
+ # Add file names defined by glob patterns to the file list. If an array
1307
+ # is given, add each element of the array.
1308
+ #
1309
+ # Example:
1310
+ # file_list.include("*.java", "*.cfg")
1311
+ # file_list.include %w( math.c lib.h *.o )
1312
+ #
1313
+ def include(*filenames)
1314
+ # TODO: check for pending
1315
+ filenames.each do |fn|
1316
+ if fn.respond_to? :to_ary
1317
+ include(*fn.to_ary)
1318
+ else
1319
+ @pending_add << fn
1320
+ end
1321
+ end
1322
+ @pending = true
1323
+ self
1324
+ end
1325
+ alias :add :include
1326
+
1327
+ # Register a list of file name patterns that should be excluded from the
1328
+ # list. Patterns may be regular expressions, glob patterns or regular
1329
+ # strings. In addition, a block given to exclude will remove entries that
1330
+ # return true when given to the block.
1331
+ #
1332
+ # Note that glob patterns are expanded against the file system. If a file
1333
+ # is explicitly added to a file list, but does not exist in the file
1334
+ # system, then an glob pattern in the exclude list will not exclude the
1335
+ # file.
1336
+ #
1337
+ # Examples:
1338
+ # FileList['a.c', 'b.c'].exclude("a.c") => ['b.c']
1339
+ # FileList['a.c', 'b.c'].exclude(/^a/) => ['b.c']
1340
+ #
1341
+ # If "a.c" is a file, then ...
1342
+ # FileList['a.c', 'b.c'].exclude("a.*") => ['b.c']
1343
+ #
1344
+ # If "a.c" is not a file, then ...
1345
+ # FileList['a.c', 'b.c'].exclude("a.*") => ['a.c', 'b.c']
1346
+ #
1347
+ def exclude(*patterns, &block)
1348
+ patterns.each do |pat|
1349
+ @exclude_patterns << pat
1350
+ end
1351
+ if block_given?
1352
+ @exclude_procs << block
1353
+ end
1354
+ resolve_exclude if ! @pending
1355
+ self
1356
+ end
1357
+
1358
+
1359
+ # Clear all the exclude patterns so that we exclude nothing.
1360
+ def clear_exclude
1361
+ @exclude_patterns = []
1362
+ @exclude_procs = []
1363
+ calculate_exclude_regexp if ! @pending
1364
+ self
1365
+ end
1366
+
1367
+ # Define equality.
1368
+ def ==(array)
1369
+ to_ary == array
1370
+ end
1371
+
1372
+ # Return the internal array object.
1373
+ def to_a
1374
+ resolve
1375
+ @items
1376
+ end
1377
+
1378
+ # Return the internal array object.
1379
+ def to_ary
1380
+ to_a
1381
+ end
1382
+
1383
+ # Lie about our class.
1384
+ def is_a?(klass)
1385
+ klass == Array || super(klass)
1386
+ end
1387
+ alias kind_of? is_a?
1388
+
1389
+ # Redefine * to return either a string or a new file list.
1390
+ def *(other)
1391
+ result = @items * other
1392
+ case result
1393
+ when Array
1394
+ FileList.new.import(result)
1395
+ else
1396
+ result
1397
+ end
1398
+ end
1399
+
1400
+ # Resolve all the pending adds now.
1401
+ def resolve
1402
+ if @pending
1403
+ @pending = false
1404
+ @pending_add.each do |fn| resolve_add(fn) end
1405
+ @pending_add = []
1406
+ resolve_exclude
1407
+ end
1408
+ self
1409
+ end
1410
+
1411
+ def calculate_exclude_regexp
1412
+ ignores = []
1413
+ @exclude_patterns.each do |pat|
1414
+ case pat
1415
+ when Regexp
1416
+ ignores << pat
1417
+ when /[*?]/
1418
+ Dir[pat].each do |p| ignores << p end
1419
+ else
1420
+ ignores << Regexp.quote(pat)
1421
+ end
1422
+ end
1423
+ if ignores.empty?
1424
+ @exclude_re = /^$/
1425
+ else
1426
+ re_str = ignores.collect { |p| "(" + p.to_s + ")" }.join("|")
1427
+ @exclude_re = Regexp.new(re_str)
1428
+ end
1429
+ end
1430
+
1431
+ def resolve_add(fn)
1432
+ case fn
1433
+ when %r{[*?\[\{]}
1434
+ add_matching(fn)
1435
+ else
1436
+ self << fn
1437
+ end
1438
+ end
1439
+ private :resolve_add
1440
+
1441
+ def resolve_exclude
1442
+ calculate_exclude_regexp
1443
+ reject! { |fn| exclude?(fn) }
1444
+ self
1445
+ end
1446
+ private :resolve_exclude
1447
+
1448
+ # Return a new FileList with the results of running +sub+ against each
1449
+ # element of the oringal list.
1450
+ #
1451
+ # Example:
1452
+ # FileList['a.c', 'b.c'].sub(/\.c$/, '.o') => ['a.o', 'b.o']
1453
+ #
1454
+ def sub(pat, rep)
1455
+ inject(FileList.new) { |res, fn| res << fn.sub(pat,rep) }
1456
+ end
1457
+
1458
+ # Return a new FileList with the results of running +gsub+ against each
1459
+ # element of the original list.
1460
+ #
1461
+ # Example:
1462
+ # FileList['lib/test/file', 'x/y'].gsub(/\//, "\\")
1463
+ # => ['lib\\test\\file', 'x\\y']
1464
+ #
1465
+ def gsub(pat, rep)
1466
+ inject(FileList.new) { |res, fn| res << fn.gsub(pat,rep) }
1467
+ end
1468
+
1469
+ # Same as +sub+ except that the oringal file list is modified.
1470
+ def sub!(pat, rep)
1471
+ each_with_index { |fn, i| self[i] = fn.sub(pat,rep) }
1472
+ self
1473
+ end
1474
+
1475
+ # Same as +gsub+ except that the original file list is modified.
1476
+ def gsub!(pat, rep)
1477
+ each_with_index { |fn, i| self[i] = fn.gsub(pat,rep) }
1478
+ self
1479
+ end
1480
+
1481
+ # Apply the pathmap spec to each of the included file names, returning a
1482
+ # new file list with the modified paths. (See String#pathmap for
1483
+ # details.)
1484
+ def pathmap(spec=nil)
1485
+ collect { |fn| fn.pathmap(spec) }
1486
+ end
1487
+
1488
+ # Return a new FileList with <tt>String#ext</tt> method applied
1489
+ # to each member of the array.
1490
+ #
1491
+ # This method is a shortcut for:
1492
+ #
1493
+ # array.collect { |item| item.ext(newext) }
1494
+ #
1495
+ # +ext+ is a user added method for the Array class.
1496
+ def ext(newext='')
1497
+ collect { |fn| fn.ext(newext) }
1498
+ end
1499
+
1500
+
1501
+ # Grep each of the files in the filelist using the given pattern. If a
1502
+ # block is given, call the block on each matching line, passing the file
1503
+ # name, line number, and the matching line of text. If no block is given,
1504
+ # a standard emac style file:linenumber:line message will be printed to
1505
+ # standard out.
1506
+ def egrep(pattern, *options)
1507
+ each do |fn|
1508
+ open(fn, "rb", *options) do |inf|
1509
+ count = 0
1510
+ inf.each do |line|
1511
+ count += 1
1512
+ if pattern.match(line)
1513
+ if block_given?
1514
+ yield fn, count, line
1515
+ else
1516
+ puts "#{fn}:#{count}:#{line}"
1517
+ end
1518
+ end
1519
+ end
1520
+ end
1521
+ end
1522
+ end
1523
+
1524
+ # Return a new file list that only contains file names from the current
1525
+ # file list that exist on the file system.
1526
+ def existing
1527
+ select { |fn| File.exist?(fn) }
1528
+ end
1529
+
1530
+ # Modify the current file list so that it contains only file name that
1531
+ # exist on the file system.
1532
+ def existing!
1533
+ resolve
1534
+ @items = @items.select { |fn| File.exist?(fn) }
1535
+ self
1536
+ end
1537
+
1538
+ # FileList version of partition. Needed because the nested arrays should
1539
+ # be FileLists in this version.
1540
+ def partition(&block) # :nodoc:
1541
+ resolve
1542
+ result = @items.partition(&block)
1543
+ [
1544
+ FileList.new.import(result[0]),
1545
+ FileList.new.import(result[1]),
1546
+ ]
1547
+ end
1548
+
1549
+ # Convert a FileList to a string by joining all elements with a space.
1550
+ def to_s
1551
+ resolve
1552
+ self.join(' ')
1553
+ end
1554
+
1555
+ # Add matching glob patterns.
1556
+ def add_matching(pattern)
1557
+ Dir[pattern].each do |fn|
1558
+ self << fn unless exclude?(fn)
1559
+ end
1560
+ end
1561
+ private :add_matching
1562
+
1563
+ # Should the given file name be excluded?
1564
+ def exclude?(fn)
1565
+ calculate_exclude_regexp unless @exclude_re
1566
+ fn =~ @exclude_re || @exclude_procs.any? { |p| p.call(fn) }
1567
+ end
1568
+
1569
+ DEFAULT_IGNORE_PATTERNS = [
1570
+ /(^|[\/\\])CVS([\/\\]|$)/,
1571
+ /(^|[\/\\])\.svn([\/\\]|$)/,
1572
+ /\.bak$/,
1573
+ /~$/
1574
+ ]
1575
+ DEFAULT_IGNORE_PROCS = [
1576
+ proc { |fn| fn =~ /(^|[\/\\])core$/ && ! File.directory?(fn) }
1577
+ ]
1578
+ # @exclude_patterns = DEFAULT_IGNORE_PATTERNS.dup
1579
+
1580
+ def import(array)
1581
+ @items = array
1582
+ self
1583
+ end
1584
+
1585
+ class << self
1586
+ # Create a new file list including the files listed. Similar to:
1587
+ #
1588
+ # FileList.new(*args)
1589
+ def [](*args)
1590
+ new(*args)
1591
+ end
1592
+ end
1593
+ end # FileList
1594
+ end
1595
+
1596
+ module Rake
1597
+ class << self
1598
+
1599
+ # Yield each file or directory component.
1600
+ def each_dir_parent(dir) # :nodoc:
1601
+ old_length = nil
1602
+ while dir != '.' && dir.length != old_length
1603
+ yield(dir)
1604
+ old_length = dir.length
1605
+ dir = File.dirname(dir)
1606
+ end
1607
+ end
1608
+ end
1609
+ end # module Rake
1610
+
1611
+ # Alias FileList to be available at the top level.
1612
+ FileList = Rake::FileList
1613
+
1614
+ #############################################################################
1615
+ module Rake
1616
+
1617
+ # Default Rakefile loader used by +import+.
1618
+ class DefaultLoader
1619
+ def load(fn)
1620
+ Kernel.load(File.expand_path(fn))
1621
+ end
1622
+ end
1623
+
1624
+ # EarlyTime is a fake timestamp that occurs _before_ any other time value.
1625
+ class EarlyTime
1626
+ include Comparable
1627
+ include Singleton
1628
+
1629
+ def <=>(other)
1630
+ -1
1631
+ end
1632
+
1633
+ def to_s
1634
+ "<EARLY TIME>"
1635
+ end
1636
+ end
1637
+
1638
+ EARLY = EarlyTime.instance
1639
+ end # module Rake
1640
+
1641
+ #############################################################################
1642
+ # Extensions to time to allow comparisons with an early time class.
1643
+ #
1644
+ class Time
1645
+ alias rake_original_time_compare :<=>
1646
+ def <=>(other)
1647
+ if Rake::EarlyTime === other
1648
+ - other.<=>(self)
1649
+ else
1650
+ rake_original_time_compare(other)
1651
+ end
1652
+ end
1653
+ end # class Time
1654
+
1655
+ module Rake
1656
+
1657
+ ####################################################################
1658
+ # The NameSpace class will lookup task names in the the scope
1659
+ # defined by a +namespace+ command.
1660
+ #
1661
+ class NameSpace
1662
+
1663
+ # Create a namespace lookup object using the given task manager
1664
+ # and the list of scopes.
1665
+ def initialize(task_manager, scope_list)
1666
+ @task_manager = task_manager
1667
+ @scope = scope_list.dup
1668
+ end
1669
+
1670
+ # Lookup a task named +name+ in the namespace.
1671
+ def [](name)
1672
+ @task_manager.lookup(name, @scope)
1673
+ end
1674
+
1675
+ # Return the list of tasks defined in this and nested namespaces.
1676
+ def tasks
1677
+ @task_manager.tasks_in_scope(@scope)
1678
+ end
1679
+ end # NameSpace
1680
+
1681
+
1682
+ ####################################################################
1683
+ # The TaskManager module is a mixin for managing tasks.
1684
+ module TaskManager
1685
+ # Track the last comment made in the Rakefile.
1686
+ attr_accessor :last_description
1687
+ alias :last_comment :last_description # Backwards compatibility
1688
+
1689
+ def initialize
1690
+ super
1691
+ @tasks = Hash.new
1692
+ @rules = Array.new
1693
+ @scope = Array.new
1694
+ @last_description = nil
1695
+ end
1696
+
1697
+ def create_rule(*args, &block)
1698
+ pattern, arg_names, deps = resolve_args(args)
1699
+ pattern = Regexp.new(Regexp.quote(pattern) + '$') if String === pattern
1700
+ @rules << [pattern, deps, block]
1701
+ end
1702
+
1703
+ def define_task(task_class, *args, &block)
1704
+ task_name, arg_names, deps = resolve_args(args)
1705
+ task_name = task_class.scope_name(@scope, task_name)
1706
+ deps = [deps] unless deps.respond_to?(:to_ary)
1707
+ deps = deps.collect {|d| d.to_s }
1708
+ task = intern(task_class, task_name)
1709
+ task.set_arg_names(arg_names) unless arg_names.empty?
1710
+ task.add_description(@last_description)
1711
+ @last_description = nil
1712
+ task.enhance(deps, &block)
1713
+ task
1714
+ end
1715
+
1716
+ # Lookup a task. Return an existing task if found, otherwise
1717
+ # create a task of the current type.
1718
+ def intern(task_class, task_name)
1719
+ @tasks[task_name.to_s] ||= task_class.new(task_name, self)
1720
+ end
1721
+
1722
+ # Find a matching task for +task_name+.
1723
+ def [](task_name, scopes=nil)
1724
+ task_name = task_name.to_s
1725
+ self.lookup(task_name, scopes) or
1726
+ enhance_with_matching_rule(task_name) or
1727
+ synthesize_file_task(task_name) or
1728
+ fail "Don't know how to build task '#{task_name}'"
1729
+ end
1730
+
1731
+ def synthesize_file_task(task_name)
1732
+ return nil unless File.exist?(task_name)
1733
+ define_task(Rake::FileTask, task_name)
1734
+ end
1735
+
1736
+ # Resolve the arguments for a task/rule. Returns a triplet of
1737
+ # [task_name, arg_name_list, prerequisites].
1738
+ def resolve_args(args)
1739
+ if args.last.is_a?(Hash)
1740
+ deps = args.pop
1741
+ resolve_args_with_dependencies(args, deps)
1742
+ else
1743
+ resolve_args_without_dependencies(args)
1744
+ end
1745
+ end
1746
+
1747
+ # Resolve task arguments for a task or rule when there are no
1748
+ # dependencies declared.
1749
+ #
1750
+ # The patterns recognized by this argument resolving function are:
1751
+ #
1752
+ # task :t
1753
+ # task :t, [:a]
1754
+ # task :t, :a (deprecated)
1755
+ #
1756
+ def resolve_args_without_dependencies(args)
1757
+ task_name = args.shift
1758
+ if args.size == 1 && args.first.respond_to?(:to_ary)
1759
+ arg_names = args.first.to_ary
1760
+ else
1761
+ arg_names = args
1762
+ end
1763
+ [task_name, arg_names, []]
1764
+ end
1765
+ private :resolve_args_without_dependencies
1766
+
1767
+ # Resolve task arguments for a task or rule when there are
1768
+ # dependencies declared.
1769
+ #
1770
+ # The patterns recognized by this argument resolving function are:
1771
+ #
1772
+ # task :t => [:d]
1773
+ # task :t, [a] => [:d]
1774
+ # task :t, :needs => [:d] (deprecated)
1775
+ # task :t, :a, :needs => [:d] (deprecated)
1776
+ #
1777
+ def resolve_args_with_dependencies(args, hash) # :nodoc:
1778
+ fail "Task Argument Error" if hash.size != 1
1779
+ key, value = hash.map { |k, v| [k,v] }.first
1780
+ if args.empty?
1781
+ task_name = key
1782
+ arg_names = []
1783
+ deps = value
1784
+ elsif key == :needs
1785
+ task_name = args.shift
1786
+ arg_names = args
1787
+ deps = value
1788
+ else
1789
+ task_name = args.shift
1790
+ arg_names = key
1791
+ deps = value
1792
+ end
1793
+ deps = [deps] unless deps.respond_to?(:to_ary)
1794
+ [task_name, arg_names, deps]
1795
+ end
1796
+ private :resolve_args_with_dependencies
1797
+
1798
+ # If a rule can be found that matches the task name, enhance the
1799
+ # task with the prerequisites and actions from the rule. Set the
1800
+ # source attribute of the task appropriately for the rule. Return
1801
+ # the enhanced task or nil of no rule was found.
1802
+ def enhance_with_matching_rule(task_name, level=0)
1803
+ fail Rake::RuleRecursionOverflowError,
1804
+ "Rule Recursion Too Deep" if level >= 16
1805
+ @rules.each do |pattern, extensions, block|
1806
+ if md = pattern.match(task_name)
1807
+ task = attempt_rule(task_name, extensions, block, level)
1808
+ return task if task
1809
+ end
1810
+ end
1811
+ nil
1812
+ rescue Rake::RuleRecursionOverflowError => ex
1813
+ ex.add_target(task_name)
1814
+ fail ex
1815
+ end
1816
+
1817
+ # List of all defined tasks in this application.
1818
+ def tasks
1819
+ @tasks.values.sort_by { |t| t.name }
1820
+ end
1821
+
1822
+ # List of all the tasks defined in the given scope (and its
1823
+ # sub-scopes).
1824
+ def tasks_in_scope(scope)
1825
+ prefix = scope.join(":")
1826
+ tasks.select { |t|
1827
+ /^#{prefix}:/ =~ t.name
1828
+ }
1829
+ end
1830
+
1831
+ # Clear all tasks in this application.
1832
+ def clear
1833
+ @tasks.clear
1834
+ @rules.clear
1835
+ end
1836
+
1837
+ # Lookup a task, using scope and the scope hints in the task name.
1838
+ # This method performs straight lookups without trying to
1839
+ # synthesize file tasks or rules. Special scope names (e.g. '^')
1840
+ # are recognized. If no scope argument is supplied, use the
1841
+ # current scope. Return nil if the task cannot be found.
1842
+ def lookup(task_name, initial_scope=nil)
1843
+ initial_scope ||= @scope
1844
+ task_name = task_name.to_s
1845
+ if task_name =~ /^rake:/
1846
+ scopes = []
1847
+ task_name = task_name.sub(/^rake:/, '')
1848
+ elsif task_name =~ /^(\^+)/
1849
+ scopes = initial_scope[0, initial_scope.size - $1.size]
1850
+ task_name = task_name.sub(/^(\^+)/, '')
1851
+ else
1852
+ scopes = initial_scope
1853
+ end
1854
+ lookup_in_scope(task_name, scopes)
1855
+ end
1856
+
1857
+ # Lookup the task name
1858
+ def lookup_in_scope(name, scope)
1859
+ n = scope.size
1860
+ while n >= 0
1861
+ tn = (scope[0,n] + [name]).join(':')
1862
+ task = @tasks[tn]
1863
+ return task if task
1864
+ n -= 1
1865
+ end
1866
+ nil
1867
+ end
1868
+ private :lookup_in_scope
1869
+
1870
+ # Return the list of scope names currently active in the task
1871
+ # manager.
1872
+ def current_scope
1873
+ @scope.dup
1874
+ end
1875
+
1876
+ # Evaluate the block in a nested namespace named +name+. Create
1877
+ # an anonymous namespace if +name+ is nil.
1878
+ def in_namespace(name)
1879
+ name ||= generate_name
1880
+ @scope.push(name)
1881
+ ns = NameSpace.new(self, @scope)
1882
+ yield(ns)
1883
+ ns
1884
+ ensure
1885
+ @scope.pop
1886
+ end
1887
+
1888
+ private
1889
+
1890
+ # Generate an anonymous namespace name.
1891
+ def generate_name
1892
+ @seed ||= 0
1893
+ @seed += 1
1894
+ "_anon_#{@seed}"
1895
+ end
1896
+
1897
+ def trace_rule(level, message)
1898
+ puts "#{" "*level}#{message}" if Rake.application.options.trace_rules
1899
+ end
1900
+
1901
+ # Attempt to create a rule given the list of prerequisites.
1902
+ def attempt_rule(task_name, extensions, block, level)
1903
+ sources = make_sources(task_name, extensions)
1904
+ prereqs = sources.collect { |source|
1905
+ trace_rule level, "Attempting Rule #{task_name} => #{source}"
1906
+ if File.exist?(source) || Rake::Task.task_defined?(source)
1907
+ trace_rule level, "(#{task_name} => #{source} ... EXIST)"
1908
+ source
1909
+ elsif parent = enhance_with_matching_rule(source, level+1)
1910
+ trace_rule level, "(#{task_name} => #{source} ... ENHANCE)"
1911
+ parent.name
1912
+ else
1913
+ trace_rule level, "(#{task_name} => #{source} ... FAIL)"
1914
+ return nil
1915
+ end
1916
+ }
1917
+ task = FileTask.define_task({task_name => prereqs}, &block)
1918
+ task.sources = prereqs
1919
+ task
1920
+ end
1921
+
1922
+ # Make a list of sources from the list of file name extensions /
1923
+ # translation procs.
1924
+ def make_sources(task_name, extensions)
1925
+ extensions.collect { |ext|
1926
+ case ext
1927
+ when /%/
1928
+ task_name.pathmap(ext)
1929
+ when %r{/}
1930
+ ext
1931
+ when /^\./
1932
+ task_name.ext(ext)
1933
+ when String
1934
+ ext
1935
+ when Proc
1936
+ if ext.arity == 1
1937
+ ext.call(task_name)
1938
+ else
1939
+ ext.call
1940
+ end
1941
+ else
1942
+ fail "Don't know how to handle rule dependent: #{ext.inspect}"
1943
+ end
1944
+ }.flatten
1945
+ end
1946
+
1947
+ end # TaskManager
1948
+
1949
+ ######################################################################
1950
+ # Rake main application object. When invoking +rake+ from the
1951
+ # command line, a Rake::Application object is created and run.
1952
+ #
1953
+ class Application
1954
+ include TaskManager
1955
+
1956
+ # The name of the application (typically 'rake')
1957
+ attr_reader :name
1958
+
1959
+ # The original directory where rake was invoked.
1960
+ attr_reader :original_dir
1961
+
1962
+ # Name of the actual rakefile used.
1963
+ attr_reader :rakefile
1964
+
1965
+ # List of the top level task names (task names from the command line).
1966
+ attr_reader :top_level_tasks
1967
+
1968
+ DEFAULT_RAKEFILES = ['rakefile', 'Rakefile', 'rakefile.rb', 'Rakefile.rb'].freeze
1969
+
1970
+ # Initialize a Rake::Application object.
1971
+ def initialize
1972
+ super
1973
+ @name = 'rake'
1974
+ @rakefiles = DEFAULT_RAKEFILES.dup
1975
+ @rakefile = nil
1976
+ @pending_imports = []
1977
+ @imported = []
1978
+ @loaders = {}
1979
+ @default_loader = Rake::DefaultLoader.new
1980
+ @original_dir = Dir.pwd
1981
+ @top_level_tasks = []
1982
+ add_loader('rb', DefaultLoader.new)
1983
+ add_loader('rf', DefaultLoader.new)
1984
+ add_loader('rake', DefaultLoader.new)
1985
+ @tty_output = STDOUT.tty?
1986
+ end
1987
+
1988
+ # Run the Rake application. The run method performs the following three steps:
1989
+ #
1990
+ # * Initialize the command line options (+init+).
1991
+ # * Define the tasks (+load_rakefile+).
1992
+ # * Run the top level tasks (+run_tasks+).
1993
+ #
1994
+ # If you wish to build a custom rake command, you should call +init+ on your
1995
+ # application. The define any tasks. Finally, call +top_level+ to run your top
1996
+ # level tasks.
1997
+ def run
1998
+ standard_exception_handling do
1999
+ init
2000
+ load_rakefile
2001
+ top_level
2002
+ end
2003
+ end
2004
+
2005
+ # Initialize the command line parameters and app name.
2006
+ def init(app_name='rake')
2007
+ standard_exception_handling do
2008
+ @name = app_name
2009
+ handle_options
2010
+ collect_tasks
2011
+ end
2012
+ end
2013
+
2014
+ # Find the rakefile and then load it and any pending imports.
2015
+ def load_rakefile
2016
+ standard_exception_handling do
2017
+ raw_load_rakefile
2018
+ end
2019
+ end
2020
+
2021
+ # Run the top level tasks of a Rake application.
2022
+ def top_level
2023
+ standard_exception_handling do
2024
+ if options.show_tasks
2025
+ display_tasks_and_comments
2026
+ elsif options.show_prereqs
2027
+ display_prerequisites
2028
+ else
2029
+ top_level_tasks.each { |task_name| invoke_task(task_name) }
2030
+ end
2031
+ end
2032
+ end
2033
+
2034
+ # Add a loader to handle imported files ending in the extension
2035
+ # +ext+.
2036
+ def add_loader(ext, loader)
2037
+ ext = ".#{ext}" unless ext =~ /^\./
2038
+ @loaders[ext] = loader
2039
+ end
2040
+
2041
+ # Application options from the command line
2042
+ def options
2043
+ @options ||= OpenStruct.new
2044
+ end
2045
+
2046
+ # private ----------------------------------------------------------------
2047
+
2048
+ def invoke_task(task_string)
2049
+ name, args = parse_task_string(task_string)
2050
+ t = self[name]
2051
+ t.invoke(*args)
2052
+ end
2053
+
2054
+ def parse_task_string(string)
2055
+ if string =~ /^([^\[]+)(\[(.*)\])$/
2056
+ name = $1
2057
+ args = $3.split(/\s*,\s*/)
2058
+ else
2059
+ name = string
2060
+ args = []
2061
+ end
2062
+ [name, args]
2063
+ end
2064
+
2065
+ # Provide standard execption handling for the given block.
2066
+ def standard_exception_handling
2067
+ begin
2068
+ yield
2069
+ rescue SystemExit => ex
2070
+ # Exit silently with current status
2071
+ raise
2072
+ rescue OptionParser::InvalidOption => ex
2073
+ # Exit silently
2074
+ exit(false)
2075
+ rescue Exception => ex
2076
+ # Exit with error message
2077
+ $stderr.puts "#{name} aborted!"
2078
+ $stderr.puts ex.message
2079
+ if options.trace
2080
+ $stderr.puts ex.backtrace.join("\n")
2081
+ else
2082
+ $stderr.puts ex.backtrace.find {|str| str =~ /#{@rakefile}/ } || ""
2083
+ $stderr.puts "(See full trace by running task with --trace)"
2084
+ end
2085
+ exit(false)
2086
+ end
2087
+ end
2088
+
2089
+ # True if one of the files in RAKEFILES is in the current directory.
2090
+ # If a match is found, it is copied into @rakefile.
2091
+ def have_rakefile
2092
+ @rakefiles.each do |fn|
2093
+ if File.exist?(fn)
2094
+ others = Dir.glob(fn, File::FNM_CASEFOLD)
2095
+ return others.size == 1 ? others.first : fn
2096
+ elsif fn == ''
2097
+ return fn
2098
+ end
2099
+ end
2100
+ return nil
2101
+ end
2102
+
2103
+ # True if we are outputting to TTY, false otherwise
2104
+ def tty_output?
2105
+ @tty_output
2106
+ end
2107
+
2108
+ # Override the detected TTY output state (mostly for testing)
2109
+ def tty_output=( tty_output_state )
2110
+ @tty_output = tty_output_state
2111
+ end
2112
+
2113
+ # We will truncate output if we are outputting to a TTY or if we've been
2114
+ # given an explicit column width to honor
2115
+ def truncate_output?
2116
+ tty_output? || ENV['RAKE_COLUMNS']
2117
+ end
2118
+
2119
+ # Display the tasks and comments.
2120
+ def display_tasks_and_comments
2121
+ displayable_tasks = tasks.select { |t|
2122
+ t.comment && t.name =~ options.show_task_pattern
2123
+ }
2124
+ if options.full_description
2125
+ displayable_tasks.each do |t|
2126
+ puts "#{name} #{t.name_with_args}"
2127
+ t.full_comment.split("\n").each do |line|
2128
+ puts " #{line}"
2129
+ end
2130
+ puts
2131
+ end
2132
+ else
2133
+ width = displayable_tasks.collect { |t| t.name_with_args.length }.max || 10
2134
+ max_column = truncate_output? ? terminal_width - name.size - width - 7 : nil
2135
+ displayable_tasks.each do |t|
2136
+ printf "#{name} %-#{width}s # %s\n",
2137
+ t.name_with_args, max_column ? truncate(t.comment, max_column) : t.comment
2138
+ end
2139
+ end
2140
+ end
2141
+
2142
+ def terminal_width
2143
+ if ENV['RAKE_COLUMNS']
2144
+ result = ENV['RAKE_COLUMNS'].to_i
2145
+ else
2146
+ result = unix? ? dynamic_width : 80
2147
+ end
2148
+ (result < 10) ? 80 : result
2149
+ rescue
2150
+ 80
2151
+ end
2152
+
2153
+ # Calculate the dynamic width of the
2154
+ def dynamic_width
2155
+ @dynamic_width ||= (dynamic_width_stty.nonzero? || dynamic_width_tput)
2156
+ end
2157
+
2158
+ def dynamic_width_stty
2159
+ %x{stty size 2>/dev/null}.split[1].to_i
2160
+ end
2161
+
2162
+ def dynamic_width_tput
2163
+ %x{tput cols 2>/dev/null}.to_i
2164
+ end
2165
+
2166
+ def unix?
2167
+ RUBY_PLATFORM =~ /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i
2168
+ end
2169
+
2170
+ def windows?
2171
+ Win32.windows?
2172
+ end
2173
+
2174
+ def truncate(string, width)
2175
+ if string.length <= width
2176
+ string
2177
+ else
2178
+ ( string[0, width-3] || "" ) + "..."
2179
+ end
2180
+ end
2181
+
2182
+ # Display the tasks and prerequisites
2183
+ def display_prerequisites
2184
+ tasks.each do |t|
2185
+ puts "#{name} #{t.name}"
2186
+ t.prerequisites.each { |pre| puts " #{pre}" }
2187
+ end
2188
+ end
2189
+
2190
+ # A list of all the standard options used in rake, suitable for
2191
+ # passing to OptionParser.
2192
+ def standard_rake_options
2193
+ [
2194
+ ['--classic-namespace', '-C', "Put Task and FileTask in the top level namespace",
2195
+ lambda { |value|
2196
+ require 'rake/classic_namespace'
2197
+ options.classic_namespace = true
2198
+ }
2199
+ ],
2200
+ ['--describe', '-D [PATTERN]', "Describe the tasks (matching optional PATTERN), then exit.",
2201
+ lambda { |value|
2202
+ options.show_tasks = true
2203
+ options.full_description = true
2204
+ options.show_task_pattern = Regexp.new(value || '')
2205
+ }
2206
+ ],
2207
+ ['--dry-run', '-n', "Do a dry run without executing actions.",
2208
+ lambda { |value|
2209
+ verbose(true)
2210
+ nowrite(true)
2211
+ options.dryrun = true
2212
+ options.trace = true
2213
+ }
2214
+ ],
2215
+ ['--execute', '-e CODE', "Execute some Ruby code and exit.",
2216
+ lambda { |value|
2217
+ eval(value)
2218
+ exit
2219
+ }
2220
+ ],
2221
+ ['--execute-print', '-p CODE', "Execute some Ruby code, print the result, then exit.",
2222
+ lambda { |value|
2223
+ puts eval(value)
2224
+ exit
2225
+ }
2226
+ ],
2227
+ ['--execute-continue', '-E CODE',
2228
+ "Execute some Ruby code, then continue with normal task processing.",
2229
+ lambda { |value| eval(value) }
2230
+ ],
2231
+ ['--libdir', '-I LIBDIR', "Include LIBDIR in the search path for required modules.",
2232
+ lambda { |value| $:.push(value) }
2233
+ ],
2234
+ ['--prereqs', '-P', "Display the tasks and dependencies, then exit.",
2235
+ lambda { |value| options.show_prereqs = true }
2236
+ ],
2237
+ ['--quiet', '-q', "Do not log messages to standard output.",
2238
+ lambda { |value| verbose(false) }
2239
+ ],
2240
+ ['--rakefile', '-f [FILE]', "Use FILE as the rakefile.",
2241
+ lambda { |value|
2242
+ value ||= ''
2243
+ @rakefiles.clear
2244
+ @rakefiles << value
2245
+ }
2246
+ ],
2247
+ ['--rakelibdir', '--rakelib', '-R RAKELIBDIR',
2248
+ "Auto-import any .rake files in RAKELIBDIR. (default is 'rakelib')",
2249
+ lambda { |value| options.rakelib = value.split(':') }
2250
+ ],
2251
+ ['--require', '-r MODULE', "Require MODULE before executing rakefile.",
2252
+ lambda { |value|
2253
+ begin
2254
+ require value
2255
+ rescue LoadError => ex
2256
+ begin
2257
+ rake_require value
2258
+ rescue LoadError => ex2
2259
+ raise ex
2260
+ end
2261
+ end
2262
+ }
2263
+ ],
2264
+ ['--rules', "Trace the rules resolution.",
2265
+ lambda { |value| options.trace_rules = true }
2266
+ ],
2267
+ ['--no-search', '--nosearch', '-N', "Do not search parent directories for the Rakefile.",
2268
+ lambda { |value| options.nosearch = true }
2269
+ ],
2270
+ ['--silent', '-s', "Like --quiet, but also suppresses the 'in directory' announcement.",
2271
+ lambda { |value|
2272
+ verbose(false)
2273
+ options.silent = true
2274
+ }
2275
+ ],
2276
+ ['--system', '-g',
2277
+ "Using system wide (global) rakefiles (usually '~/.rake/*.rake').",
2278
+ lambda { |value| options.load_system = true }
2279
+ ],
2280
+ ['--no-system', '--nosystem', '-G',
2281
+ "Use standard project Rakefile search paths, ignore system wide rakefiles.",
2282
+ lambda { |value| options.ignore_system = true }
2283
+ ],
2284
+ ['--tasks', '-T [PATTERN]', "Display the tasks (matching optional PATTERN) with descriptions, then exit.",
2285
+ lambda { |value|
2286
+ options.show_tasks = true
2287
+ options.show_task_pattern = Regexp.new(value || '')
2288
+ options.full_description = false
2289
+ }
2290
+ ],
2291
+ ['--trace', '-t', "Turn on invoke/execute tracing, enable full backtrace.",
2292
+ lambda { |value|
2293
+ options.trace = true
2294
+ verbose(true)
2295
+ }
2296
+ ],
2297
+ ['--verbose', '-v', "Log message to standard output.",
2298
+ lambda { |value| verbose(true) }
2299
+ ],
2300
+ ['--version', '-V', "Display the program version.",
2301
+ lambda { |value|
2302
+ puts "rake, version #{RAKEVERSION}"
2303
+ exit
2304
+ }
2305
+ ]
2306
+ ]
2307
+ end
2308
+
2309
+ # Read and handle the command line options.
2310
+ def handle_options
2311
+ options.rakelib = ['rakelib']
2312
+
2313
+ OptionParser.new do |opts|
2314
+ opts.banner = "rake [-f rakefile] {options} targets..."
2315
+ opts.separator ""
2316
+ opts.separator "Options are ..."
2317
+
2318
+ opts.on_tail("-h", "--help", "-H", "Display this help message.") do
2319
+ puts opts
2320
+ exit
2321
+ end
2322
+
2323
+ standard_rake_options.each { |args| opts.on(*args) }
2324
+ end.parse!
2325
+
2326
+ # If class namespaces are requested, set the global options
2327
+ # according to the values in the options structure.
2328
+ if options.classic_namespace
2329
+ $show_tasks = options.show_tasks
2330
+ $show_prereqs = options.show_prereqs
2331
+ $trace = options.trace
2332
+ $dryrun = options.dryrun
2333
+ $silent = options.silent
2334
+ end
2335
+ end
2336
+
2337
+ # Similar to the regular Ruby +require+ command, but will check
2338
+ # for *.rake files in addition to *.rb files.
2339
+ def rake_require(file_name, paths=$LOAD_PATH, loaded=$")
2340
+ return false if loaded.include?(file_name)
2341
+ paths.each do |path|
2342
+ fn = file_name + ".rake"
2343
+ full_path = File.join(path, fn)
2344
+ if File.exist?(full_path)
2345
+ load full_path
2346
+ loaded << fn
2347
+ return true
2348
+ end
2349
+ end
2350
+ fail LoadError, "Can't find #{file_name}"
2351
+ end
2352
+
2353
+ def find_rakefile_location
2354
+ here = Dir.pwd
2355
+ while ! (fn = have_rakefile)
2356
+ Dir.chdir("..")
2357
+ if Dir.pwd == here || options.nosearch
2358
+ return nil
2359
+ end
2360
+ here = Dir.pwd
2361
+ end
2362
+ [fn, here]
2363
+ ensure
2364
+ Dir.chdir(Rake.original_dir)
2365
+ end
2366
+
2367
+ def raw_load_rakefile # :nodoc:
2368
+ rakefile, location = find_rakefile_location
2369
+ if (! options.ignore_system) &&
2370
+ (options.load_system || rakefile.nil?) &&
2371
+ system_dir && File.directory?(system_dir)
2372
+ puts "(in #{Dir.pwd})" unless options.silent
2373
+ glob("#{system_dir}/*.rake") do |name|
2374
+ add_import name
2375
+ end
2376
+ else
2377
+ fail "No Rakefile found (looking for: #{@rakefiles.join(', ')})" if
2378
+ rakefile.nil?
2379
+ @rakefile = rakefile
2380
+ Dir.chdir(location)
2381
+ puts "(in #{Dir.pwd})" unless options.silent
2382
+ $rakefile = @rakefile if options.classic_namespace
2383
+ load File.expand_path(@rakefile) if @rakefile && @rakefile != ''
2384
+ options.rakelib.each do |rlib|
2385
+ glob("#{rlib}/*.rake") do |name|
2386
+ add_import name
2387
+ end
2388
+ end
2389
+ end
2390
+ load_imports
2391
+ end
2392
+
2393
+ def glob(path, &block)
2394
+ Dir[path.gsub("\\", '/')].each(&block)
2395
+ end
2396
+ private :glob
2397
+
2398
+ # The directory path containing the system wide rakefiles.
2399
+ def system_dir
2400
+ @system_dir ||=
2401
+ begin
2402
+ if ENV['RAKE_SYSTEM']
2403
+ ENV['RAKE_SYSTEM']
2404
+ else
2405
+ standard_system_dir
2406
+ end
2407
+ end
2408
+ end
2409
+
2410
+ # The standard directory containing system wide rake files.
2411
+ if Win32.windows?
2412
+ def standard_system_dir #:nodoc:
2413
+ Win32.win32_system_dir
2414
+ end
2415
+ else
2416
+ def standard_system_dir #:nodoc:
2417
+ File.join(File.expand_path('~'), '.rake')
2418
+ end
2419
+ end
2420
+ private :standard_system_dir
2421
+
2422
+ # Collect the list of tasks on the command line. If no tasks are
2423
+ # given, return a list containing only the default task.
2424
+ # Environmental assignments are processed at this time as well.
2425
+ def collect_tasks
2426
+ @top_level_tasks = []
2427
+ ARGV.each do |arg|
2428
+ if arg =~ /^(\w+)=(.*)$/
2429
+ ENV[$1] = $2
2430
+ else
2431
+ @top_level_tasks << arg unless arg =~ /^-/
2432
+ end
2433
+ end
2434
+ @top_level_tasks.push("default") if @top_level_tasks.size == 0
2435
+ end
2436
+
2437
+ # Add a file to the list of files to be imported.
2438
+ def add_import(fn)
2439
+ @pending_imports << fn
2440
+ end
2441
+
2442
+ # Load the pending list of imported files.
2443
+ def load_imports
2444
+ while fn = @pending_imports.shift
2445
+ next if @imported.member?(fn)
2446
+ if fn_task = lookup(fn)
2447
+ fn_task.invoke
2448
+ end
2449
+ ext = File.extname(fn)
2450
+ loader = @loaders[ext] || @default_loader
2451
+ loader.load(fn)
2452
+ @imported << fn
2453
+ end
2454
+ end
2455
+
2456
+ # Warn about deprecated use of top level constant names.
2457
+ def const_warning(const_name)
2458
+ @const_warning ||= false
2459
+ if ! @const_warning
2460
+ $stderr.puts %{WARNING: Deprecated reference to top-level constant '#{const_name}' } +
2461
+ %{found at: #{rakefile_location}} # '
2462
+ $stderr.puts %{ Use --classic-namespace on rake command}
2463
+ $stderr.puts %{ or 'require "rake/classic_namespace"' in Rakefile}
2464
+ end
2465
+ @const_warning = true
2466
+ end
2467
+
2468
+ def rakefile_location
2469
+ begin
2470
+ fail
2471
+ rescue RuntimeError => ex
2472
+ ex.backtrace.find {|str| str =~ /#{@rakefile}/ } || ""
2473
+ end
2474
+ end
2475
+ end
2476
+ end
2477
+
2478
+
2479
+ class Module
2480
+ # Rename the original handler to make it available.
2481
+ alias :rake_original_const_missing :const_missing
2482
+
2483
+ # Check for deprecated uses of top level (i.e. in Object) uses of
2484
+ # Rake class names. If someone tries to reference the constant
2485
+ # name, display a warning and return the proper object. Using the
2486
+ # --classic-namespace command line option will define these
2487
+ # constants in Object and avoid this handler.
2488
+ def const_missing(const_name)
2489
+ case const_name
2490
+ when :Task
2491
+ Rake.application.const_warning(const_name)
2492
+ Rake::Task
2493
+ when :FileTask
2494
+ Rake.application.const_warning(const_name)
2495
+ Rake::FileTask
2496
+ when :FileCreationTask
2497
+ Rake.application.const_warning(const_name)
2498
+ Rake::FileCreationTask
2499
+ when :RakeApp
2500
+ Rake.application.const_warning(const_name)
2501
+ Rake::Application
2502
+ else
2503
+ rake_original_const_missing(const_name)
2504
+ end
2505
+ end
2506
+ end