classiccms 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. data/lib/classiccms/application.rb +2 -3
  2. data/lib/classiccms/cli.rb +6 -0
  3. data/lib/classiccms/scaffold/Gemfile +4 -0
  4. data/lib/classiccms/{mongoid.yml → scaffold/config/mongoid.yml} +3 -4
  5. data/lib/classiccms/scaffold/spec/models/article_spec.rb +8 -0
  6. data/lib/classiccms/scaffold/spec/spec_helper.rb +24 -0
  7. data/lib/classiccms/version.rb +1 -1
  8. data/spec/cli_spec.rb +8 -0
  9. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/build/v8/libv8.a +0 -0
  10. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/build/v8/libv8preparser.a +0 -0
  11. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8-debug.h +395 -0
  12. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8-preparser.h +117 -0
  13. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8-profiler.h +505 -0
  14. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8-testing.h +104 -0
  15. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8.h +4124 -0
  16. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/v8/include/v8stdint.h +53 -0
  17. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8/version.rb +6 -0
  18. data/vendor/bundle/gems/libv8-3.3.10.4-x86_64-darwin-11/lib/libv8.rb +15 -0
  19. data/vendor/bundle/gems/sass-3.1.19/.yardopts +11 -0
  20. data/vendor/bundle/gems/sass-3.1.19/CONTRIBUTING +3 -0
  21. data/vendor/bundle/gems/sass-3.1.19/MIT-LICENSE +20 -0
  22. data/vendor/bundle/gems/sass-3.1.19/README.md +200 -0
  23. data/vendor/bundle/gems/sass-3.1.19/REVISION +1 -0
  24. data/vendor/bundle/gems/sass-3.1.19/Rakefile +339 -0
  25. data/vendor/bundle/gems/sass-3.1.19/VERSION +1 -0
  26. data/vendor/bundle/gems/sass-3.1.19/VERSION_NAME +1 -0
  27. data/vendor/bundle/gems/sass-3.1.19/bin/sass +8 -0
  28. data/vendor/bundle/gems/sass-3.1.19/bin/sass-convert +7 -0
  29. data/vendor/bundle/gems/sass-3.1.19/bin/scss +8 -0
  30. data/vendor/bundle/gems/sass-3.1.19/extra/update_watch.rb +13 -0
  31. data/vendor/bundle/gems/sass-3.1.19/init.rb +18 -0
  32. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores/base.rb +86 -0
  33. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores/chain.rb +33 -0
  34. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores/filesystem.rb +61 -0
  35. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores/memory.rb +47 -0
  36. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores/null.rb +25 -0
  37. data/vendor/bundle/gems/sass-3.1.19/lib/sass/cache_stores.rb +15 -0
  38. data/vendor/bundle/gems/sass-3.1.19/lib/sass/callbacks.rb +66 -0
  39. data/vendor/bundle/gems/sass-3.1.19/lib/sass/css.rb +390 -0
  40. data/vendor/bundle/gems/sass-3.1.19/lib/sass/engine.rb +880 -0
  41. data/vendor/bundle/gems/sass-3.1.19/lib/sass/environment.rb +180 -0
  42. data/vendor/bundle/gems/sass-3.1.19/lib/sass/error.rb +201 -0
  43. data/vendor/bundle/gems/sass-3.1.19/lib/sass/exec.rb +682 -0
  44. data/vendor/bundle/gems/sass-3.1.19/lib/sass/importers/base.rb +139 -0
  45. data/vendor/bundle/gems/sass-3.1.19/lib/sass/importers/filesystem.rb +149 -0
  46. data/vendor/bundle/gems/sass-3.1.19/lib/sass/importers.rb +22 -0
  47. data/vendor/bundle/gems/sass-3.1.19/lib/sass/less.rb +382 -0
  48. data/vendor/bundle/gems/sass-3.1.19/lib/sass/logger/base.rb +32 -0
  49. data/vendor/bundle/gems/sass-3.1.19/lib/sass/logger/log_level.rb +49 -0
  50. data/vendor/bundle/gems/sass-3.1.19/lib/sass/logger.rb +15 -0
  51. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/compiler.rb +384 -0
  52. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/configuration.rb +123 -0
  53. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/generic.rb +15 -0
  54. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/merb.rb +48 -0
  55. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/rack.rb +60 -0
  56. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/rails.rb +47 -0
  57. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin/staleness_checker.rb +183 -0
  58. data/vendor/bundle/gems/sass-3.1.19/lib/sass/plugin.rb +132 -0
  59. data/vendor/bundle/gems/sass-3.1.19/lib/sass/railtie.rb +9 -0
  60. data/vendor/bundle/gems/sass-3.1.19/lib/sass/repl.rb +57 -0
  61. data/vendor/bundle/gems/sass-3.1.19/lib/sass/root.rb +7 -0
  62. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/bool.rb +18 -0
  63. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/color.rb +475 -0
  64. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/css_lexer.rb +29 -0
  65. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/css_parser.rb +31 -0
  66. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/funcall.rb +175 -0
  67. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/functions.rb +1381 -0
  68. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/interpolation.rb +79 -0
  69. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/lexer.rb +337 -0
  70. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/list.rb +84 -0
  71. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/literal.rb +230 -0
  72. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/node.rb +99 -0
  73. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/number.rb +452 -0
  74. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/operation.rb +107 -0
  75. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/parser.rb +474 -0
  76. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/string.rb +51 -0
  77. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/string_interpolation.rb +103 -0
  78. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/unary_operation.rb +64 -0
  79. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script/variable.rb +58 -0
  80. data/vendor/bundle/gems/sass-3.1.19/lib/sass/script.rb +39 -0
  81. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/css_parser.rb +46 -0
  82. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/parser.rb +1055 -0
  83. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/rx.rb +137 -0
  84. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/sass_parser.rb +11 -0
  85. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/script_lexer.rb +15 -0
  86. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/script_parser.rb +25 -0
  87. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss/static_parser.rb +40 -0
  88. data/vendor/bundle/gems/sass-3.1.19/lib/sass/scss.rb +17 -0
  89. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector/abstract_sequence.rb +71 -0
  90. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector/comma_sequence.rb +86 -0
  91. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector/sequence.rb +296 -0
  92. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector/simple.rb +119 -0
  93. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector/simple_sequence.rb +154 -0
  94. data/vendor/bundle/gems/sass-3.1.19/lib/sass/selector.rb +373 -0
  95. data/vendor/bundle/gems/sass-3.1.19/lib/sass/shared.rb +76 -0
  96. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/charset_node.rb +22 -0
  97. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/comment_node.rb +90 -0
  98. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/debug_node.rb +18 -0
  99. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/directive_node.rb +28 -0
  100. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/each_node.rb +24 -0
  101. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/extend_node.rb +29 -0
  102. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/for_node.rb +36 -0
  103. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/function_node.rb +27 -0
  104. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/if_node.rb +52 -0
  105. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/import_node.rb +68 -0
  106. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/media_node.rb +32 -0
  107. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/mixin_def_node.rb +27 -0
  108. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/mixin_node.rb +32 -0
  109. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/node.rb +188 -0
  110. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/prop_node.rb +148 -0
  111. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/return_node.rb +18 -0
  112. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/root_node.rb +28 -0
  113. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/rule_node.rb +127 -0
  114. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/variable_node.rb +30 -0
  115. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/base.rb +75 -0
  116. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/check_nesting.rb +127 -0
  117. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/convert.rb +262 -0
  118. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/cssize.rb +206 -0
  119. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/deep_copy.rb +87 -0
  120. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/extend.rb +42 -0
  121. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/perform.rb +357 -0
  122. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/set_options.rb +97 -0
  123. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/to_css.rb +219 -0
  124. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/warn_node.rb +18 -0
  125. data/vendor/bundle/gems/sass-3.1.19/lib/sass/tree/while_node.rb +18 -0
  126. data/vendor/bundle/gems/sass-3.1.19/lib/sass/util/multibyte_string_scanner.rb +134 -0
  127. data/vendor/bundle/gems/sass-3.1.19/lib/sass/util/subset_map.rb +101 -0
  128. data/vendor/bundle/gems/sass-3.1.19/lib/sass/util.rb +800 -0
  129. data/vendor/bundle/gems/sass-3.1.19/lib/sass/version.rb +112 -0
  130. data/vendor/bundle/gems/sass-3.1.19/lib/sass.rb +73 -0
  131. data/vendor/bundle/gems/sass-3.1.19/rails/init.rb +1 -0
  132. data/vendor/bundle/gems/sass-3.1.19/test/Gemfile +4 -0
  133. data/vendor/bundle/gems/sass-3.1.19/test/sass/cache_test.rb +89 -0
  134. data/vendor/bundle/gems/sass-3.1.19/test/sass/callbacks_test.rb +61 -0
  135. data/vendor/bundle/gems/sass-3.1.19/test/sass/conversion_test.rb +1245 -0
  136. data/vendor/bundle/gems/sass-3.1.19/test/sass/css2sass_test.rb +397 -0
  137. data/vendor/bundle/gems/sass-3.1.19/test/sass/data/hsl-rgb.txt +319 -0
  138. data/vendor/bundle/gems/sass-3.1.19/test/sass/engine_test.rb +2730 -0
  139. data/vendor/bundle/gems/sass-3.1.19/test/sass/extend_test.rb +1663 -0
  140. data/vendor/bundle/gems/sass-3.1.19/test/sass/fixtures/test_staleness_check_across_importers.css +1 -0
  141. data/vendor/bundle/gems/sass-3.1.19/test/sass/fixtures/test_staleness_check_across_importers.scss +1 -0
  142. data/vendor/bundle/gems/sass-3.1.19/test/sass/functions_test.rb +1047 -0
  143. data/vendor/bundle/gems/sass-3.1.19/test/sass/importer_test.rb +192 -0
  144. data/vendor/bundle/gems/sass-3.1.19/test/sass/less_conversion_test.rb +653 -0
  145. data/vendor/bundle/gems/sass-3.1.19/test/sass/logger_test.rb +58 -0
  146. data/vendor/bundle/gems/sass-3.1.19/test/sass/mock_importer.rb +49 -0
  147. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_results/more1.css +9 -0
  148. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_results/more1_with_line_comments.css +26 -0
  149. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_results/more_import.css +29 -0
  150. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_templates/_more_partial.sass +2 -0
  151. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_templates/more1.sass +23 -0
  152. data/vendor/bundle/gems/sass-3.1.19/test/sass/more_templates/more_import.sass +11 -0
  153. data/vendor/bundle/gems/sass-3.1.19/test/sass/plugin_test.rb +496 -0
  154. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/alt.css +4 -0
  155. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/basic.css +9 -0
  156. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/compact.css +5 -0
  157. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/complex.css +86 -0
  158. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/compressed.css +1 -0
  159. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/expanded.css +19 -0
  160. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/if.css +3 -0
  161. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/import.css +31 -0
  162. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/import_charset.css +5 -0
  163. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/import_charset_1_8.css +5 -0
  164. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/import_charset_ibm866.css +5 -0
  165. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/line_numbers.css +49 -0
  166. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/mixins.css +95 -0
  167. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/multiline.css +24 -0
  168. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/nested.css +22 -0
  169. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/options.css +1 -0
  170. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/parent_ref.css +13 -0
  171. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/script.css +16 -0
  172. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/scss_import.css +31 -0
  173. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/scss_importee.css +2 -0
  174. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
  175. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/subdir/subdir.css +3 -0
  176. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/units.css +11 -0
  177. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/warn.css +0 -0
  178. data/vendor/bundle/gems/sass-3.1.19/test/sass/results/warn_imported.css +0 -0
  179. data/vendor/bundle/gems/sass-3.1.19/test/sass/script_conversion_test.rb +285 -0
  180. data/vendor/bundle/gems/sass-3.1.19/test/sass/script_test.rb +519 -0
  181. data/vendor/bundle/gems/sass-3.1.19/test/sass/scss/css_test.rb +975 -0
  182. data/vendor/bundle/gems/sass-3.1.19/test/sass/scss/rx_test.rb +156 -0
  183. data/vendor/bundle/gems/sass-3.1.19/test/sass/scss/scss_test.rb +1308 -0
  184. data/vendor/bundle/gems/sass-3.1.19/test/sass/scss/test_helper.rb +37 -0
  185. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/_double_import_loop2.sass +1 -0
  186. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/_imported_charset_ibm866.sass +4 -0
  187. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/_imported_charset_utf8.sass +4 -0
  188. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/_partial.sass +2 -0
  189. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/alt.sass +16 -0
  190. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/basic.sass +23 -0
  191. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/bork1.sass +2 -0
  192. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/bork2.sass +2 -0
  193. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/bork3.sass +2 -0
  194. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/bork4.sass +2 -0
  195. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/bork5.sass +3 -0
  196. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/compact.sass +17 -0
  197. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/complex.sass +305 -0
  198. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/compressed.sass +15 -0
  199. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/double_import_loop1.sass +1 -0
  200. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/expanded.sass +17 -0
  201. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/if.sass +11 -0
  202. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/import.sass +12 -0
  203. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/import_charset.sass +9 -0
  204. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/import_charset_1_8.sass +6 -0
  205. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/import_charset_ibm866.sass +11 -0
  206. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/importee.less +2 -0
  207. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/importee.sass +19 -0
  208. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/line_numbers.sass +13 -0
  209. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/mixin_bork.sass +5 -0
  210. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/mixins.sass +76 -0
  211. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/multiline.sass +20 -0
  212. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested.sass +25 -0
  213. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_bork1.sass +2 -0
  214. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_bork2.sass +2 -0
  215. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_bork3.sass +2 -0
  216. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_bork4.sass +2 -0
  217. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_bork5.sass +2 -0
  218. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_import.sass +2 -0
  219. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/nested_mixin_bork.sass +6 -0
  220. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/options.sass +2 -0
  221. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/parent_ref.sass +25 -0
  222. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/script.sass +101 -0
  223. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/scss_import.scss +11 -0
  224. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/scss_importee.scss +1 -0
  225. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/single_import_loop.sass +1 -0
  226. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  227. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
  228. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/subdir/subdir.sass +6 -0
  229. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/units.sass +11 -0
  230. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/warn.sass +3 -0
  231. data/vendor/bundle/gems/sass-3.1.19/test/sass/templates/warn_imported.sass +4 -0
  232. data/vendor/bundle/gems/sass-3.1.19/test/sass/test_helper.rb +8 -0
  233. data/vendor/bundle/gems/sass-3.1.19/test/sass/util/multibyte_string_scanner_test.rb +147 -0
  234. data/vendor/bundle/gems/sass-3.1.19/test/sass/util/subset_map_test.rb +91 -0
  235. data/vendor/bundle/gems/sass-3.1.19/test/sass/util_test.rb +282 -0
  236. data/vendor/bundle/gems/sass-3.1.19/test/test_helper.rb +70 -0
  237. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/CHANGELOG.md +90 -0
  238. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/Gemfile +35 -0
  239. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/Guardfile +8 -0
  240. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/LICENSE +20 -0
  241. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/README.md +312 -0
  242. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/Rakefile +47 -0
  243. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/Vagrantfile +96 -0
  244. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/adapter.rb +167 -0
  245. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/adapters/darwin.rb +84 -0
  246. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/adapters/linux.rb +110 -0
  247. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/adapters/polling.rb +66 -0
  248. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/adapters/windows.rb +81 -0
  249. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/directory_record.rb +317 -0
  250. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/listener.rb +203 -0
  251. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/multi_listener.rb +121 -0
  252. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/turnstile.rb +28 -0
  253. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen/version.rb +3 -0
  254. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/lib/listen.rb +38 -0
  255. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/listen.gemspec +26 -0
  256. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/adapter_spec.rb +142 -0
  257. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/adapters/darwin_spec.rb +31 -0
  258. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/adapters/linux_spec.rb +41 -0
  259. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/adapters/polling_spec.rb +68 -0
  260. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/adapters/windows_spec.rb +24 -0
  261. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/directory_record_spec.rb +1034 -0
  262. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/listener_spec.rb +155 -0
  263. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/multi_listener_spec.rb +156 -0
  264. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen/turnstile_spec.rb +56 -0
  265. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/listen_spec.rb +73 -0
  266. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/spec_helper.rb +16 -0
  267. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/support/adapter_helper.rb +716 -0
  268. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/support/directory_record_helper.rb +55 -0
  269. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/support/fixtures_helper.rb +29 -0
  270. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/support/listeners_helper.rb +144 -0
  271. data/vendor/bundle/gems/sass-3.1.19/vendor/listen/spec/support/platform_helper.rb +11 -0
  272. data/vendor/bundle/gems/therubyracer-0.10.1/.gitignore +13 -0
  273. data/vendor/bundle/gems/therubyracer-0.10.1/.gitmodules +3 -0
  274. data/vendor/bundle/gems/therubyracer-0.10.1/.travis.yml +9 -0
  275. data/vendor/bundle/gems/therubyracer-0.10.1/.yardopts +1 -0
  276. data/vendor/bundle/gems/therubyracer-0.10.1/Changelog.md +196 -0
  277. data/vendor/bundle/gems/therubyracer-0.10.1/Gemfile +1 -0
  278. data/vendor/bundle/gems/therubyracer-0.10.1/README.md +167 -0
  279. data/vendor/bundle/gems/therubyracer-0.10.1/Rakefile +23 -0
  280. data/vendor/bundle/gems/therubyracer-0.10.1/bin/therubyracer +11 -0
  281. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/Makefile +213 -0
  282. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/extconf.rb +26 -0
  283. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/gem_make.out +156 -0
  284. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/rr.cpp +189 -0
  285. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/rr.h +41 -0
  286. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8.cpp +48 -0
  287. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_array.cpp +48 -0
  288. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_array.h +8 -0
  289. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_callbacks.cpp +81 -0
  290. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_callbacks.h +8 -0
  291. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_context.cpp +92 -0
  292. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_context.h +6 -0
  293. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_date.cpp +34 -0
  294. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_date.h +6 -0
  295. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_debug.cpp +17 -0
  296. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_debug.h +6 -0
  297. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_exception.cpp +133 -0
  298. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_exception.h +11 -0
  299. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_external.cpp +70 -0
  300. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_external.h +8 -0
  301. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_function.cpp +69 -0
  302. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_function.h +11 -0
  303. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_handle.cpp +186 -0
  304. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_handle.h +48 -0
  305. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_locker.cpp +139 -0
  306. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_locker.h +6 -0
  307. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_message.cpp +67 -0
  308. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_message.h +10 -0
  309. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_object.cpp +122 -0
  310. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_object.h +10 -0
  311. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_script.cpp +36 -0
  312. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_script.h +8 -0
  313. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_string.cpp +52 -0
  314. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_string.h +9 -0
  315. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_template.cpp +344 -0
  316. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_template.h +8 -0
  317. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_try_catch.cpp +70 -0
  318. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_try_catch.h +5 -0
  319. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_v8.cpp +35 -0
  320. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_v8.h +6 -0
  321. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_value.cpp +175 -0
  322. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_value.h +10 -0
  323. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_weakref.cpp +61 -0
  324. data/vendor/bundle/gems/therubyracer-0.10.1/ext/v8/v8_weakref.h +29 -0
  325. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/access.rb +87 -0
  326. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/array.rb +17 -0
  327. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/c/locker.rb +18 -0
  328. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/cli.rb +133 -0
  329. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/context.rb +111 -0
  330. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/error.rb +130 -0
  331. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/function.rb +44 -0
  332. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/object.rb +69 -0
  333. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/caller.rb +37 -0
  334. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/constructor.rb +98 -0
  335. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/function.rb +63 -0
  336. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/interceptors.rb +152 -0
  337. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/proxies.rb +151 -0
  338. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal/templates.rb +73 -0
  339. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/portal.rb +86 -0
  340. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/stack.rb +66 -0
  341. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/tap.rb +9 -0
  342. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8/version.rb +3 -0
  343. data/vendor/bundle/gems/therubyracer-0.10.1/lib/v8.rb +23 -0
  344. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/array_spec.rb +15 -0
  345. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/cxt_spec.rb +57 -0
  346. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/ext_spec_helper.rb +27 -0
  347. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/func_spec.rb +64 -0
  348. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/object_spec.rb +10 -0
  349. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/string_spec.rb +11 -0
  350. data/vendor/bundle/gems/therubyracer-0.10.1/spec/ext/try_catch_spec.rb +60 -0
  351. data/vendor/bundle/gems/therubyracer-0.10.1/spec/redjs/.gitignore +1 -0
  352. data/vendor/bundle/gems/therubyracer-0.10.1/spec/redjs/README.txt +8 -0
  353. data/vendor/bundle/gems/therubyracer-0.10.1/spec/redjs/jsapi_spec.rb +922 -0
  354. data/vendor/bundle/gems/therubyracer-0.10.1/spec/redjs/loadme.js +1 -0
  355. data/vendor/bundle/gems/therubyracer-0.10.1/spec/redjs_helper.rb +3 -0
  356. data/vendor/bundle/gems/therubyracer-0.10.1/spec/spec_helper.rb +9 -0
  357. data/vendor/bundle/gems/therubyracer-0.10.1/spec/v8/error_spec.rb +131 -0
  358. data/vendor/bundle/gems/therubyracer-0.10.1/spec/v8/portal/proxies_spec.rb +106 -0
  359. data/vendor/bundle/gems/therubyracer-0.10.1/specmem/handle_memspec.rb +41 -0
  360. data/vendor/bundle/gems/therubyracer-0.10.1/specmem/object_memspec.rb +14 -0
  361. data/vendor/bundle/gems/therubyracer-0.10.1/specmem/proxies_memspec.rb +49 -0
  362. data/vendor/bundle/gems/therubyracer-0.10.1/specmem/spec_helper.rb +24 -0
  363. data/vendor/bundle/gems/therubyracer-0.10.1/specthread/spec_helper.rb +2 -0
  364. data/vendor/bundle/gems/therubyracer-0.10.1/specthread/threading_spec.rb +13 -0
  365. data/vendor/bundle/gems/therubyracer-0.10.1/thefrontside.png +0 -0
  366. data/vendor/bundle/gems/therubyracer-0.10.1/therubyracer.gemspec +29 -0
  367. data/vendor/bundle/specifications/libv8-3.3.10.4-x86_64-darwin-11.gemspec +33 -0
  368. data/vendor/bundle/specifications/sass-3.1.19.gemspec +35 -0
  369. metadata +365 -3
@@ -0,0 +1,716 @@
1
+ # Adapter watch
2
+ #
3
+ # @param [Listen::Listener] listener the adapter listener
4
+ # @param [String] path the path to watch
5
+ #
6
+ def watch(listener, *paths)
7
+ callback = lambda { |changed_dirs, options| @called = true; listener.on_change(changed_dirs, options) }
8
+ @adapter = Listen::Adapter.select_and_initialize(paths, { :latency => test_latency }, &callback)
9
+ @adapter.start(false)
10
+
11
+ yield
12
+
13
+ t = Thread.new { sleep(test_latency * 5); @adapter.stop }
14
+ @adapter.wait_for_callback
15
+ ensure
16
+ Thread.kill(t) if t
17
+ @adapter.stop
18
+ end
19
+
20
+ shared_examples_for 'a filesystem adapter' do
21
+ subject { described_class.new(File.dirname(__FILE__), &Proc.new {}) }
22
+
23
+ describe '#start' do
24
+ after { subject.stop }
25
+
26
+ context 'with the blocking param set to true' do
27
+ it 'blocks the current thread after starting the workers' do
28
+ @called = false
29
+ t = Thread.new { subject.start(true); @called = true }
30
+ sleep(test_latency * 3)
31
+ Thread.kill(t) if t
32
+ @called.should be_false
33
+ end
34
+ end
35
+
36
+ context 'with the blocking param set to false' do
37
+ it 'does not block the current thread after starting the workers' do
38
+ @called = false
39
+ t = Thread.new { subject.start(false); @called = true }
40
+ sleep(test_latency * 3)
41
+ Thread.kill(t) if t
42
+ @called.should be_true
43
+ end
44
+ end
45
+ end
46
+
47
+ describe '#started?' do
48
+ context 'with a new adapter' do
49
+ it 'returns false' do
50
+ subject.should_not be_started
51
+ end
52
+ end
53
+
54
+ context 'with a stopped adapter' do
55
+ before { subject.start(false); subject.stop }
56
+
57
+ it 'returns false' do
58
+ subject.should_not be_started
59
+ end
60
+ end
61
+
62
+ context 'with a started adapter' do
63
+ before { subject.start(false) }
64
+ after { subject.start }
65
+
66
+ it 'returns true' do
67
+ subject.should be_started
68
+ end
69
+ end
70
+ end
71
+ end
72
+
73
+ shared_examples_for 'an adapter that call properly listener#on_change' do |*args|
74
+ options = (args.first && args.first.is_a?(Hash)) ? args.first : {}
75
+ let(:listener) { mock(Listen::Listener) }
76
+ before { described_class.stub(:works?) { true } }
77
+
78
+ context 'single file operations' do
79
+ context 'when a file is created' do
80
+ it 'detects the added file' do
81
+ fixtures do |path|
82
+ if options[:recursive]
83
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
84
+ else
85
+ listener.should_receive(:on_change).once.with([path], {})
86
+ end
87
+
88
+ watch(listener, path) do
89
+ touch 'new_file.rb'
90
+ end
91
+ end
92
+ end
93
+
94
+ context 'given a symlink' do
95
+ it 'detects the added file' do
96
+ fixtures do |path|
97
+ if options[:recursive]
98
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
99
+ else
100
+ listener.should_receive(:on_change).once.with([path], {})
101
+ end
102
+
103
+ touch 'new_file.rb'
104
+
105
+ watch(listener, path) do
106
+ ln_s 'new_file.rb', 'new_file_symlink.rb'
107
+ end
108
+ end
109
+ end
110
+ end
111
+
112
+ context 'given a new created directory' do
113
+ it 'detects the added file' do
114
+ fixtures do |path|
115
+ if options[:recursive]
116
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
117
+ else
118
+ listener.should_receive(:on_change).once.with do |array, options|
119
+ array.should =~ [path, "#{path}/a_directory"]
120
+ end
121
+ end
122
+
123
+ watch(listener, path) do
124
+ mkdir 'a_directory'
125
+ # Needed for INotify, because of :recursive rb-inotify custom flag?
126
+ sleep 0.05 if @adapter.is_a?(Listen::Adapters::Linux)
127
+ touch 'a_directory/new_file.rb'
128
+ end
129
+ end
130
+ end
131
+ end
132
+
133
+ context 'given an existing directory' do
134
+ it 'detects the added file' do
135
+ fixtures do |path|
136
+ if options[:recursive]
137
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
138
+ else
139
+ listener.should_receive(:on_change).once.with(["#{path}/a_directory"], {})
140
+ end
141
+
142
+ mkdir 'a_directory'
143
+
144
+ watch(listener, path) do
145
+ touch 'a_directory/new_file.rb'
146
+ end
147
+ end
148
+ end
149
+ end
150
+
151
+ context 'given a directory with subdirectories' do
152
+ it 'detects the added file' do
153
+ fixtures do |path|
154
+ if options[:recursive]
155
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
156
+ else
157
+ listener.should_receive(:on_change).once.with(["#{path}/a_directory/subdirectory"], {})
158
+ end
159
+
160
+ mkdir_p 'a_directory/subdirectory'
161
+
162
+ watch(listener, path) do
163
+ touch 'a_directory/subdirectory/new_file.rb'
164
+ end
165
+ end
166
+ end
167
+ end
168
+ end
169
+
170
+ context 'when a file is modified' do
171
+ it 'detects the modified file' do
172
+ fixtures do |path|
173
+ if options[:recursive]
174
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
175
+ else
176
+ listener.should_receive(:on_change).once.with([path], {})
177
+ end
178
+
179
+ touch 'existing_file.txt'
180
+
181
+ watch(listener, path) do
182
+ touch 'existing_file.txt'
183
+ end
184
+ end
185
+ end
186
+
187
+ context 'given a symlink' do
188
+ it 'detects the modified file' do
189
+ fixtures do |path|
190
+ if options[:recursive]
191
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
192
+ else
193
+ listener.should_receive(:on_change).once.with([path], {})
194
+ end
195
+
196
+ touch 'existing_file.rb'
197
+ ln_s 'existing_file.rb', 'existing_file_symlink.rb'
198
+
199
+ watch(listener, path) do
200
+ touch 'existing_file.rb'
201
+ end
202
+ end
203
+ end
204
+ end
205
+
206
+ context 'given a hidden file' do
207
+ it 'detects the modified file' do
208
+ fixtures do |path|
209
+ if options[:recursive]
210
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
211
+ else
212
+ listener.should_receive(:on_change).once.with([path], {})
213
+ end
214
+
215
+ touch '.hidden'
216
+
217
+ watch(listener, path) do
218
+ touch '.hidden'
219
+ end
220
+ end
221
+ end
222
+ end
223
+
224
+ unless options[:adapter] == :windows
225
+ context 'given a file mode change' do
226
+ it 'does not detect the mode change' do
227
+ fixtures do |path|
228
+ if options[:recursive]
229
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
230
+ else
231
+ listener.should_receive(:on_change).once.with([path], {})
232
+ end
233
+
234
+ touch 'run.rb'
235
+
236
+ watch(listener, path) do
237
+ chmod 0777, 'run.rb'
238
+ end
239
+ end
240
+ end
241
+ end
242
+ end
243
+
244
+ context 'given an existing directory' do
245
+ it 'detects the modified file' do
246
+ fixtures do |path|
247
+ if options[:recursive]
248
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
249
+ else
250
+ listener.should_receive(:on_change).once.with(["#{path}/a_directory"], {})
251
+ end
252
+
253
+ mkdir 'a_directory'
254
+ touch 'a_directory/existing_file.txt'
255
+
256
+ watch(listener, path) do
257
+ touch 'a_directory/existing_file.txt'
258
+ end
259
+ end
260
+ end
261
+ end
262
+
263
+ context 'given a directory with subdirectories' do
264
+ it 'detects the modified file' do
265
+ fixtures do |path|
266
+ if options[:recursive]
267
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
268
+ else
269
+ listener.should_receive(:on_change).once.with(["#{path}/a_directory/subdirectory"], {})
270
+ end
271
+
272
+ mkdir_p 'a_directory/subdirectory'
273
+ touch 'a_directory/subdirectory/existing_file.txt'
274
+
275
+ watch(listener, path) do
276
+ touch 'a_directory/subdirectory/new_file.rb'
277
+ end
278
+ end
279
+ end
280
+ end
281
+ end
282
+
283
+ context 'when a file is moved' do
284
+ it 'detects the file move' do
285
+ fixtures do |path|
286
+ if options[:recursive]
287
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
288
+ else
289
+ listener.should_receive(:on_change).once.with([path], {})
290
+ end
291
+
292
+ touch 'move_me.txt'
293
+
294
+ watch(listener, path) do
295
+ mv 'move_me.txt', 'new_name.txt'
296
+ end
297
+ end
298
+ end
299
+
300
+ context 'given a symlink' do
301
+ it 'detects the file move' do
302
+ fixtures do |path|
303
+ if options[:recursive]
304
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
305
+ else
306
+ listener.should_receive(:on_change).once.with([path], {})
307
+ end
308
+
309
+ touch 'move_me.rb'
310
+ ln_s 'move_me.rb', 'move_me_symlink.rb'
311
+
312
+ watch(listener, path) do
313
+ mv 'move_me_symlink.rb', 'new_symlink.rb'
314
+ end
315
+ end
316
+ end
317
+ end
318
+
319
+ context 'given an existing directory' do
320
+ it 'detects the file move into the directory' do
321
+ fixtures do |path|
322
+ if options[:recursive]
323
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
324
+ else
325
+ listener.should_receive(:on_change).once.with do |array, options|
326
+ array.should =~ [path, "#{path}/a_directory"]
327
+ end
328
+ end
329
+
330
+ mkdir 'a_directory'
331
+ touch 'move_me.txt'
332
+
333
+ watch(listener, path) do
334
+ mv 'move_me.txt', 'a_directory/move_me.txt'
335
+ end
336
+ end
337
+ end
338
+
339
+ it 'detects a file move out of the directory' do
340
+ fixtures do |path|
341
+ if options[:recursive]
342
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
343
+ else
344
+ listener.should_receive(:on_change).once.with do |array, options|
345
+ array.should =~ [path, "#{path}/a_directory"]
346
+ end
347
+ end
348
+
349
+ mkdir 'a_directory'
350
+ touch 'a_directory/move_me.txt'
351
+
352
+ watch(listener, path) do
353
+ mv 'a_directory/move_me.txt', 'i_am_here.txt'
354
+ end
355
+ end
356
+ end
357
+
358
+ it 'detects a file move between two directories' do
359
+ fixtures do |path|
360
+ if options[:recursive]
361
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
362
+ else
363
+ listener.should_receive(:on_change).once.with do |array, options|
364
+ array.should =~ ["#{path}/from_directory", "#{path}/to_directory"]
365
+ end
366
+ end
367
+
368
+ mkdir 'from_directory'
369
+ touch 'from_directory/move_me.txt'
370
+ mkdir 'to_directory'
371
+
372
+ watch(listener, path) do
373
+ mv 'from_directory/move_me.txt', 'to_directory/move_me.txt'
374
+ end
375
+ end
376
+ end
377
+ end
378
+
379
+ context 'given a directory with subdirectories' do
380
+ it 'detects files movements between subdirectories' do
381
+ fixtures do |path|
382
+ if options[:recursive]
383
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
384
+ else
385
+ listener.should_receive(:on_change).once.with do |array, options|
386
+ array.should =~ ["#{path}/a_directory/subdirectory", "#{path}/b_directory/subdirectory"]
387
+ end
388
+ end
389
+
390
+ mkdir_p 'a_directory/subdirectory'
391
+ mkdir_p 'b_directory/subdirectory'
392
+ touch 'a_directory/subdirectory/move_me.txt'
393
+
394
+ watch(listener, path) do
395
+ mv 'a_directory/subdirectory/move_me.txt', 'b_directory/subdirectory'
396
+ end
397
+ end
398
+ end
399
+ end
400
+ end
401
+
402
+ context 'when a file is deleted' do
403
+ it 'detects the file removal' do
404
+ fixtures do |path|
405
+ if options[:recursive]
406
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
407
+ else
408
+ listener.should_receive(:on_change).once.with([path], {})
409
+ end
410
+
411
+ touch 'unnecessary.txt'
412
+
413
+ watch(listener, path) do
414
+ rm 'unnecessary.txt'
415
+ end
416
+ end
417
+ end
418
+
419
+ context 'given a symlink' do
420
+ it 'detects the file removal' do
421
+ fixtures do |path|
422
+ if options[:recursive]
423
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
424
+ else
425
+ listener.should_receive(:on_change).once.with([path], {})
426
+ end
427
+
428
+ touch 'unnecessary.rb'
429
+ ln_s 'unnecessary.rb', 'unnecessary_symlink.rb'
430
+
431
+ watch(listener, path) do
432
+ rm 'unnecessary_symlink.rb'
433
+ end
434
+ end
435
+ end
436
+ end
437
+
438
+ context 'given an existing directory' do
439
+ it 'detects the file removal' do
440
+ fixtures do |path|
441
+ if options[:recursive]
442
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
443
+ else
444
+ listener.should_receive(:on_change).once.with(["#{path}/a_directory"], {})
445
+ end
446
+
447
+ mkdir 'a_directory'
448
+ touch 'a_directory/do_not_use.rb'
449
+
450
+ watch(listener, path) do
451
+ rm 'a_directory/do_not_use.rb'
452
+ end
453
+ end
454
+ end
455
+ end
456
+
457
+ context 'given a directory with subdirectories' do
458
+ it 'detects the file removal' do
459
+ fixtures do |path|
460
+ if options[:recursive]
461
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
462
+ else
463
+ listener.should_receive(:on_change).once.with(["#{path}/a_directory/subdirectory"], {})
464
+ end
465
+
466
+ mkdir_p 'a_directory/subdirectory'
467
+ touch 'a_directory/subdirectory/do_not_use.rb'
468
+
469
+ watch(listener, path) do
470
+ rm 'a_directory/subdirectory/do_not_use.rb'
471
+ end
472
+ end
473
+ end
474
+ end
475
+ end
476
+ end
477
+
478
+ context 'multiple file operations' do
479
+ it 'detects the added files' do
480
+ fixtures do |path|
481
+ if options[:recursive]
482
+ listener.should_receive(:on_change).at_least(:once).with([path], :recursive => true)
483
+ else
484
+ listener.should_receive(:on_change).once.with do |array, options|
485
+ array.should =~ [path, "#{path}/a_directory"]
486
+ end
487
+ end
488
+
489
+ watch(listener, path) do
490
+ touch 'a_file.rb'
491
+ touch 'b_file.rb'
492
+ mkdir 'a_directory'
493
+ # Needed for INotify, because of :recursive rb-inotify custom flag?
494
+ # Also needed for the osx adapter
495
+ sleep 0.05
496
+ touch 'a_directory/a_file.rb'
497
+ touch 'a_directory/b_file.rb'
498
+ end
499
+ end
500
+ end
501
+
502
+ it 'detects the modified files' do
503
+ fixtures do |path|
504
+ if options[:recursive]
505
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
506
+ else
507
+ listener.should_receive(:on_change).once.with do |array, options|
508
+ array.should =~ [path, "#{path}/a_directory"]
509
+ end
510
+ end
511
+
512
+ touch 'a_file.rb'
513
+ touch 'b_file.rb'
514
+ mkdir 'a_directory'
515
+ touch 'a_directory/a_file.rb'
516
+ touch 'a_directory/b_file.rb'
517
+
518
+ watch(listener, path) do
519
+ touch 'b_file.rb'
520
+ touch 'a_directory/a_file.rb'
521
+ end
522
+ end
523
+ end
524
+
525
+ it 'detects the removed files' do
526
+ fixtures do |path|
527
+ if options[:recursive]
528
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
529
+ else
530
+ listener.should_receive(:on_change).once.with do |array, options|
531
+ array.should =~ [path, "#{path}/a_directory"]
532
+ end
533
+ end
534
+
535
+ touch 'a_file.rb'
536
+ touch 'b_file.rb'
537
+ mkdir 'a_directory'
538
+ touch 'a_directory/a_file.rb'
539
+ touch 'a_directory/b_file.rb'
540
+
541
+ watch(listener, path) do
542
+ rm 'b_file.rb'
543
+ rm 'a_directory/a_file.rb'
544
+ end
545
+ end
546
+ end
547
+ end
548
+
549
+ context 'single directory operations' do
550
+ it 'detects a moved directory' do
551
+ fixtures do |path|
552
+ if options[:recursive]
553
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
554
+ else
555
+ listener.should_receive(:on_change).once.with([path], {})
556
+ end
557
+
558
+ mkdir 'a_directory'
559
+ touch 'a_directory/a_file.rb'
560
+ touch 'a_directory/b_file.rb'
561
+
562
+ watch(listener, path) do
563
+ mv 'a_directory', 'renamed'
564
+ end
565
+ end
566
+ end
567
+
568
+ it 'detects a removed directory' do
569
+ fixtures do |path|
570
+ if options[:recursive]
571
+ listener.should_receive(:on_change).once.with([path], :recursive => true)
572
+ else
573
+ listener.should_receive(:on_change).once.with do |array, options|
574
+ array.should =~ [path, "#{path}/a_directory"]
575
+ end
576
+ end
577
+
578
+ mkdir 'a_directory'
579
+ touch 'a_directory/a_file.rb'
580
+ touch 'a_directory/b_file.rb'
581
+
582
+ watch(listener, path) do
583
+ rm_rf 'a_directory'
584
+ end
585
+ end
586
+ end
587
+ end
588
+
589
+ context "paused adapter" do
590
+ context 'when a file is created' do
591
+ it "doesn't detects the added file" do
592
+ fixtures do |path|
593
+ watch(listener, path) do
594
+ @adapter.paused = true
595
+ touch 'new_file.rb'
596
+ end
597
+ @called.should be_nil
598
+ end
599
+ end
600
+ end
601
+ end
602
+
603
+ context "when multiple directories are listened to" do
604
+ context 'when files are added to one of multiple directories' do
605
+ it 'detects added files' do
606
+ fixtures(2) do |path1, path2|
607
+ if options[:recursive]
608
+ listener.should_receive(:on_change).once.with([path2], :recursive => true)
609
+ else
610
+ listener.should_receive(:on_change).once.with([path2], {})
611
+ end
612
+
613
+ watch(listener, path1, path2) do
614
+ touch "#{path2}/new_file.rb"
615
+ end
616
+ end
617
+ end
618
+ end
619
+
620
+ context 'when files are added to multiple directories' do
621
+ it 'detects added files' do
622
+ fixtures(2) do |path1, path2|
623
+ if options[:recursive]
624
+ listener.should_receive(:on_change).once.with do |directories, options|
625
+ directories.should =~ [path1, path2] && options.should == {:recursive => true}
626
+ end
627
+ else
628
+ listener.should_receive(:on_change).once.with do |directories, options|
629
+ directories.should =~ [path1, path2] && options.should == {}
630
+ end
631
+ end
632
+
633
+ watch(listener, path1, path2) do
634
+ touch "#{path1}/new_file.rb"
635
+ touch "#{path2}/new_file.rb"
636
+ end
637
+ end
638
+ end
639
+ end
640
+
641
+ context 'given a new and an existing directory on multiple directories' do
642
+ it 'detects the added file' do
643
+ fixtures(2) do |path1, path2|
644
+ if options[:recursive]
645
+ listener.should_receive(:on_change).once.with do |directories, options|
646
+ directories.should =~ [path1, path2] && options.should == {:recursive => true}
647
+ end
648
+ else
649
+ listener.should_receive(:on_change).once.with do |directories, options|
650
+ directories.should =~ [path2, "#{path2}/b_directory", "#{path1}/a_directory"] && options.should == {}
651
+ end
652
+ end
653
+
654
+ mkdir "#{path1}/a_directory"
655
+
656
+ watch(listener, path1, path2) do
657
+ mkdir "#{path2}/b_directory"
658
+ sleep 0.05
659
+ touch "#{path1}/a_directory/new_file.rb"
660
+ touch "#{path2}/b_directory/new_file.rb"
661
+ end
662
+ end
663
+ end
664
+ end
665
+
666
+ context 'when a file is moved between the multiple watched directories' do
667
+ it 'detects the movements of the file' do
668
+ fixtures(3) do |path1, path2, path3|
669
+ if options[:recursive]
670
+ listener.should_receive(:on_change).once.with do |directories, options|
671
+ directories.should =~ [path1, path2, path3] && options.should == {:recursive => true}
672
+ end
673
+ else
674
+ listener.should_receive(:on_change).once.with do |directories, options|
675
+ directories.should =~ ["#{path1}/from_directory", path2, "#{path3}/to_directory"] && options.should == {}
676
+ end
677
+ end
678
+
679
+ mkdir "#{path1}/from_directory"
680
+ touch "#{path1}/from_directory/move_me.txt"
681
+ mkdir "#{path3}/to_directory"
682
+
683
+ watch(listener, path1, path2, path3) do
684
+ mv "#{path1}/from_directory/move_me.txt", "#{path2}/move_me.txt"
685
+ mv "#{path2}/move_me.txt", "#{path3}/to_directory/move_me.txt"
686
+ end
687
+ end
688
+ end
689
+ end
690
+
691
+ context 'when files are deleted from the multiple watched directories' do
692
+ it 'detects the files removal' do
693
+ fixtures(2) do |path1, path2|
694
+ if options[:recursive]
695
+ listener.should_receive(:on_change).once.with do |directories, options|
696
+ directories.should =~ [path1, path2] && options.should == {:recursive => true}
697
+ end
698
+ else
699
+ listener.should_receive(:on_change).once.with do |directories, options|
700
+ directories.should =~ [path1, path2] && options.should == {}
701
+ end
702
+ end
703
+
704
+ touch "#{path1}/unnecessary.txt"
705
+ touch "#{path2}/unnecessary.txt"
706
+
707
+ watch(listener, path1, path2) do
708
+ rm "#{path1}/unnecessary.txt"
709
+ rm "#{path2}/unnecessary.txt"
710
+ end
711
+ end
712
+ end
713
+ end
714
+ end
715
+
716
+ end