dwaite-cucumber 0.3.101

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 (454) hide show
  1. data/History.txt +1067 -0
  2. data/License.txt +22 -0
  3. data/Manifest.txt +453 -0
  4. data/README.txt +4 -0
  5. data/Rakefile +9 -0
  6. data/bin/cucumber +17 -0
  7. data/config/hoe.rb +78 -0
  8. data/config/requirements.rb +15 -0
  9. data/cucumber.yml +2 -0
  10. data/examples/cs/README.textile +1 -0
  11. data/examples/cs/Rakefile +12 -0
  12. data/examples/cs/compile.bat +1 -0
  13. data/examples/cs/features/addition.feature +16 -0
  14. data/examples/cs/features/step_definitons/calculator_steps.rb +19 -0
  15. data/examples/cs/src/demo/Calculator.cs +20 -0
  16. data/examples/dos_line_endings/Rakefile +6 -0
  17. data/examples/dos_line_endings/features/dos_line_endings.feature +9 -0
  18. data/examples/i18n/README.textile +18 -0
  19. data/examples/i18n/Rakefile +32 -0
  20. data/examples/i18n/ar/Rakefile +6 -0
  21. data/examples/i18n/ar/features/addition.feature +17 -0
  22. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +24 -0
  23. data/examples/i18n/ar/lib/calculator.rb +11 -0
  24. data/examples/i18n/bg/Rakefile +6 -0
  25. data/examples/i18n/bg/features/addition.feature +12 -0
  26. data/examples/i18n/bg/features/consecutive_calculations.feature +19 -0
  27. data/examples/i18n/bg/features/division.feature +17 -0
  28. data/examples/i18n/bg/features/step_definitons/calculator_steps.rb +24 -0
  29. data/examples/i18n/bg/features/support/env.rb +6 -0
  30. data/examples/i18n/bg/features/support/world.rb +8 -0
  31. data/examples/i18n/bg/lib/calculator.rb +24 -0
  32. data/examples/i18n/cat/Rakefile +6 -0
  33. data/examples/i18n/cat/features/step_definitons/calculator_steps.rb +21 -0
  34. data/examples/i18n/cat/features/suma.feature +17 -0
  35. data/examples/i18n/cat/lib/calculadora.rb +16 -0
  36. data/examples/i18n/da/Rakefile +6 -0
  37. data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +24 -0
  38. data/examples/i18n/da/features/summering.feature +18 -0
  39. data/examples/i18n/da/lib/kalkulator.rb +11 -0
  40. data/examples/i18n/de/Rakefile +6 -0
  41. data/examples/i18n/de/features/addition.feature +17 -0
  42. data/examples/i18n/de/features/division.feature +10 -0
  43. data/examples/i18n/de/features/step_definitons/calculator_steps.rb +24 -0
  44. data/examples/i18n/de/lib/calculator.rb +14 -0
  45. data/examples/i18n/en/Rakefile +6 -0
  46. data/examples/i18n/en/features/addition.feature +17 -0
  47. data/examples/i18n/en/features/division.feature +10 -0
  48. data/examples/i18n/en/features/step_definitons/calculator_steps.rb +24 -0
  49. data/examples/i18n/en/lib/calculator.rb +14 -0
  50. data/examples/i18n/en-lol/Rakefile +6 -0
  51. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
  52. data/examples/i18n/en-lol/features/stuffing.feature +8 -0
  53. data/examples/i18n/en-lol/features/support/env.rb +8 -0
  54. data/examples/i18n/en-lol/lib/basket.rb +12 -0
  55. data/examples/i18n/en-lol/lib/belly.rb +11 -0
  56. data/examples/i18n/es/Rakefile +6 -0
  57. data/examples/i18n/es/features/adicion.feature +17 -0
  58. data/examples/i18n/es/features/step_definitons/calculador_steps.rb +21 -0
  59. data/examples/i18n/es/lib/calculador.rb +14 -0
  60. data/examples/i18n/et/Rakefile +6 -0
  61. data/examples/i18n/et/features/jagamine.feature +10 -0
  62. data/examples/i18n/et/features/liitmine.feature +17 -0
  63. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +24 -0
  64. data/examples/i18n/et/lib/kalkulaator.rb +14 -0
  65. data/examples/i18n/fi/Rakefile +6 -0
  66. data/examples/i18n/fi/features/jakolasku.feature +10 -0
  67. data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +24 -0
  68. data/examples/i18n/fi/features/yhteenlasku.feature +17 -0
  69. data/examples/i18n/fi/lib/laskin.rb +14 -0
  70. data/examples/i18n/fr/Rakefile +6 -0
  71. data/examples/i18n/fr/features/addition.feature +18 -0
  72. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +25 -0
  73. data/examples/i18n/fr/lib/calculatrice.rb +10 -0
  74. data/examples/i18n/he/Rakefile +6 -0
  75. data/examples/i18n/he/features/addition.feature +17 -0
  76. data/examples/i18n/he/features/division.feature +10 -0
  77. data/examples/i18n/he/features/step_definitons/calculator_steps.rb +24 -0
  78. data/examples/i18n/he/lib/calculator.rb +14 -0
  79. data/examples/i18n/hu/Rakefile +6 -0
  80. data/examples/i18n/hu/features/addition.feature +17 -0
  81. data/examples/i18n/hu/features/division.feature +10 -0
  82. data/examples/i18n/hu/features/step_definitons/calculator_steps.rb +25 -0
  83. data/examples/i18n/hu/lib/calculator.rb +14 -0
  84. data/examples/i18n/id/Rakefile +6 -0
  85. data/examples/i18n/id/features/addition.feature +17 -0
  86. data/examples/i18n/id/features/division.feature +10 -0
  87. data/examples/i18n/id/features/step_definitons/calculator_steps.rb +24 -0
  88. data/examples/i18n/id/lib/calculator.rb +14 -0
  89. data/examples/i18n/it/Rakefile +6 -0
  90. data/examples/i18n/it/features/somma.feature +11 -0
  91. data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +24 -0
  92. data/examples/i18n/it/lib/calcolatrice.rb +11 -0
  93. data/examples/i18n/ja/Rakefile +6 -0
  94. data/examples/i18n/ja/features/addition.feature +17 -0
  95. data/examples/i18n/ja/features/division.feature +10 -0
  96. data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +24 -0
  97. data/examples/i18n/ja/lib/calculator.rb +14 -0
  98. data/examples/i18n/ko/Rakefile +6 -0
  99. data/examples/i18n/ko/features/addition.feature +17 -0
  100. data/examples/i18n/ko/features/division.feature +11 -0
  101. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +24 -0
  102. data/examples/i18n/ko/lib/calculator.rb +14 -0
  103. data/examples/i18n/lt/Rakefile +6 -0
  104. data/examples/i18n/lt/features/addition.feature +17 -0
  105. data/examples/i18n/lt/features/division.feature +10 -0
  106. data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +24 -0
  107. data/examples/i18n/lt/lib/calculator.rb +14 -0
  108. data/examples/i18n/lv/Rakefile +6 -0
  109. data/examples/i18n/lv/features/addition.feature +17 -0
  110. data/examples/i18n/lv/features/division.feature +10 -0
  111. data/examples/i18n/lv/features/step_definitons/calculator_steps.rb +24 -0
  112. data/examples/i18n/lv/lib/calculator.rb +14 -0
  113. data/examples/i18n/no/Rakefile +6 -0
  114. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +17 -0
  115. data/examples/i18n/no/features/summering.feature +19 -0
  116. data/examples/i18n/no/features/support/env.rb +6 -0
  117. data/examples/i18n/no/lib/kalkulator.rb +11 -0
  118. data/examples/i18n/pl/Rakefile +6 -0
  119. data/examples/i18n/pl/features/addition.feature +17 -0
  120. data/examples/i18n/pl/features/division.feature +10 -0
  121. data/examples/i18n/pl/features/step_definitons/calculator_steps.rb +24 -0
  122. data/examples/i18n/pl/features/support/env.rb +6 -0
  123. data/examples/i18n/pl/lib/calculator.rb +14 -0
  124. data/examples/i18n/pt/Rakefile +6 -0
  125. data/examples/i18n/pt/features/adicao.feature +11 -0
  126. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +20 -0
  127. data/examples/i18n/pt/features/support/env.rb +6 -0
  128. data/examples/i18n/pt/lib/calculadora.rb +10 -0
  129. data/examples/i18n/ro/Rakefile +6 -0
  130. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +24 -0
  131. data/examples/i18n/ro/features/suma.feature +11 -0
  132. data/examples/i18n/ro/lib/calculator.rb +11 -0
  133. data/examples/i18n/ru/Rakefile +6 -0
  134. data/examples/i18n/ru/features/addition.feature +11 -0
  135. data/examples/i18n/ru/features/consecutive_calculations.feature +17 -0
  136. data/examples/i18n/ru/features/division.feature +16 -0
  137. data/examples/i18n/ru/features/step_definitons/calculator_steps.rb +19 -0
  138. data/examples/i18n/ru/features/support/env.rb +6 -0
  139. data/examples/i18n/ru/features/support/world.rb +8 -0
  140. data/examples/i18n/ru/lib/calculator.rb +24 -0
  141. data/examples/i18n/se/Rakefile +6 -0
  142. data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +24 -0
  143. data/examples/i18n/se/features/summering.feature +18 -0
  144. data/examples/i18n/se/lib/kalkulator.rb +11 -0
  145. data/examples/i18n/sk/Rakefile +6 -0
  146. data/examples/i18n/sk/features/addition.feature +17 -0
  147. data/examples/i18n/sk/features/division.feature +10 -0
  148. data/examples/i18n/sk/features/step_definitons/calculator_steps.rb +24 -0
  149. data/examples/i18n/sk/lib/calculator.rb +14 -0
  150. data/examples/i18n/uz/Rakefile +6 -0
  151. data/examples/i18n/uz/features/addition.feature +10 -0
  152. data/examples/i18n/uz/features/consecutive_calculations.feature +17 -0
  153. data/examples/i18n/uz/features/division.feature +17 -0
  154. data/examples/i18n/uz/features/step_definitons/calculator_steps.rb +19 -0
  155. data/examples/i18n/uz/features/support/env.rb +6 -0
  156. data/examples/i18n/uz/features/support/world.rb +8 -0
  157. data/examples/i18n/uz/lib/calculator.rb +24 -0
  158. data/examples/i18n/zh-CN/Rakefile +6 -0
  159. data/examples/i18n/zh-CN/features/addition.feature +18 -0
  160. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +26 -0
  161. data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
  162. data/examples/i18n/zh-TW/Rakefile +6 -0
  163. data/examples/i18n/zh-TW/features/addition.feature +17 -0
  164. data/examples/i18n/zh-TW/features/division.feature +11 -0
  165. data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
  166. data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
  167. data/examples/java/README.textile +18 -0
  168. data/examples/java/build.xml +33 -0
  169. data/examples/java/features/hello.feature +11 -0
  170. data/examples/java/features/step_definitons/hello_steps.rb +23 -0
  171. data/examples/java/features/step_definitons/tree_steps.rb +14 -0
  172. data/examples/java/features/tree.feature +9 -0
  173. data/examples/java/src/cucumber/demo/Hello.java +16 -0
  174. data/examples/junit/features/one_passing_one_failing.feature +8 -0
  175. data/examples/junit/features/pending.feature +5 -0
  176. data/examples/junit/features/step_definitions/steps.rb +11 -0
  177. data/examples/pure_java/README.textile +5 -0
  178. data/examples/python/features/fibonacci.feature +19 -0
  179. data/examples/python/features/step_definitions/fib_steps.py +3 -0
  180. data/examples/python/features/step_definitions/fib_steps.rb +7 -0
  181. data/examples/python/features/support/env.rb +21 -0
  182. data/examples/python/lib/fib.py +7 -0
  183. data/examples/selenium/Rakefile +6 -0
  184. data/examples/selenium/features/search.feature +9 -0
  185. data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
  186. data/examples/selenium/features/support/env.rb +19 -0
  187. data/examples/selenium_webrat/Rakefile +6 -0
  188. data/examples/selenium_webrat/config.ru +0 -0
  189. data/examples/selenium_webrat/features/search.feature +9 -0
  190. data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
  191. data/examples/selenium_webrat/features/support/env.rb +45 -0
  192. data/examples/self_test/README.textile +6 -0
  193. data/examples/self_test/Rakefile +6 -0
  194. data/examples/self_test/features/background/background_tagged_before_on_outline.feature +12 -0
  195. data/examples/self_test/features/background/background_with_name.feature +7 -0
  196. data/examples/self_test/features/background/failing_background.feature +12 -0
  197. data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
  198. data/examples/self_test/features/background/multiline_args_background.feature +32 -0
  199. data/examples/self_test/features/background/passing_background.feature +10 -0
  200. data/examples/self_test/features/background/pending_background.feature +10 -0
  201. data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  202. data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  203. data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
  204. data/examples/self_test/features/failing_expectation.feature +4 -0
  205. data/examples/self_test/features/lots_of_undefined.feature +8 -0
  206. data/examples/self_test/features/multiline_name.feature +27 -0
  207. data/examples/self_test/features/outline_sample.feature +15 -0
  208. data/examples/self_test/features/sample.feature +21 -0
  209. data/examples/self_test/features/search_sample.feature +32 -0
  210. data/examples/self_test/features/step_definitions/sample_steps.rb +93 -0
  211. data/examples/self_test/features/support/env.rb +24 -0
  212. data/examples/self_test/features/tags_sample.feature +17 -0
  213. data/examples/self_test/features/tons_of_cukes.feature +52 -0
  214. data/examples/self_test/features/transform_sample.feature +10 -0
  215. data/examples/self_test/features/undefined_multiline_args.feature +12 -0
  216. data/examples/self_test/list-of-features.txt +1 -0
  217. data/examples/sinatra/README.textile +13 -0
  218. data/examples/sinatra/Rakefile +6 -0
  219. data/examples/sinatra/app.rb +14 -0
  220. data/examples/sinatra/features/add.feature +11 -0
  221. data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
  222. data/examples/sinatra/features/support/env.rb +32 -0
  223. data/examples/sinatra/views/add.erb +5 -0
  224. data/examples/sinatra/views/layout.erb +8 -0
  225. data/examples/steps_library/features/step_definitions/steps_lib1.rb +8 -0
  226. data/examples/steps_library/features/step_definitions/steps_lib2.rb +8 -0
  227. data/examples/test_unit/Rakefile +6 -0
  228. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +23 -0
  229. data/examples/test_unit/features/test_unit.feature +9 -0
  230. data/examples/tickets/Rakefile +16 -0
  231. data/examples/tickets/features/172.feature +28 -0
  232. data/examples/tickets/features/177/1.feature +29 -0
  233. data/examples/tickets/features/177/2.feature +21 -0
  234. data/examples/tickets/features/177/3.feature +18 -0
  235. data/examples/tickets/features/180.feature +7 -0
  236. data/examples/tickets/features/229/tagged_hooks.feature +8 -0
  237. data/examples/tickets/features/229/tagged_hooks.rb +14 -0
  238. data/examples/tickets/features/236.feature +13 -0
  239. data/examples/tickets/features/241.feature +13 -0
  240. data/examples/tickets/features/246.feature +4 -0
  241. data/examples/tickets/features/248.feature +11 -0
  242. data/examples/tickets/features/270/back.feature +14 -0
  243. data/examples/tickets/features/270/back.steps.rb +14 -0
  244. data/examples/tickets/features/272/hooks.feature +26 -0
  245. data/examples/tickets/features/272/hooks_steps.rb +53 -0
  246. data/examples/tickets/features/279/py_string_indent.feature +25 -0
  247. data/examples/tickets/features/279/py_string_indent.steps.rb +12 -0
  248. data/examples/tickets/features/279/wrong.feature_ +11 -0
  249. data/examples/tickets/features/301/filter_background_tagged_hooks.feature +6 -0
  250. data/examples/tickets/features/301/filter_background_tagged_hooks_steps.rb +12 -0
  251. data/examples/tickets/features/306/only_background.feature +4 -0
  252. data/examples/tickets/features/lib/eatting_machine.rb +18 -0
  253. data/examples/tickets/features/lib/pantry.rb +20 -0
  254. data/examples/tickets/features/scenario_outline.feature +95 -0
  255. data/examples/tickets/features/step_definitons/246_steps.rb +3 -0
  256. data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
  257. data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
  258. data/examples/tickets/features/step_definitons/tickets_steps.rb +81 -0
  259. data/examples/tickets/features/table_diffing.feature +13 -0
  260. data/examples/tickets/features/tickets.feature +28 -0
  261. data/examples/watir/README.textile +16 -0
  262. data/examples/watir/Rakefile +6 -0
  263. data/examples/watir/features/search.feature +12 -0
  264. data/examples/watir/features/step_definitons/search_steps.rb +26 -0
  265. data/examples/watir/features/support/env.rb +32 -0
  266. data/features/background.feature +311 -0
  267. data/features/bug_371.feature +32 -0
  268. data/features/cucumber_cli.feature +667 -0
  269. data/features/cucumber_cli_diff_disabled.feature +54 -0
  270. data/features/cucumber_cli_outlines.feature +109 -0
  271. data/features/custom_formatter.feature +11 -0
  272. data/features/drb_server_integration.feature +173 -0
  273. data/features/exception_in_after_block.feature +102 -0
  274. data/features/exception_in_after_step_block.feature +104 -0
  275. data/features/exception_in_before_block.feature +47 -0
  276. data/features/exclude_files.feature +20 -0
  277. data/features/expand.feature +49 -0
  278. data/features/html_formatter/a.html +183 -0
  279. data/features/html_formatter.feature +7 -0
  280. data/features/junit_formatter.feature +89 -0
  281. data/features/language_from_header.feature +30 -0
  282. data/features/multiline_names.feature +43 -0
  283. data/features/post_configuration_hook.feature +37 -0
  284. data/features/profiles.feature +112 -0
  285. data/features/rake_task.feature +178 -0
  286. data/features/report_called_undefined_steps.feature +35 -0
  287. data/features/snippet.feature +22 -0
  288. data/features/step_definitions/cucumber_steps.rb +154 -0
  289. data/features/step_definitions/extra_steps.rb +2 -0
  290. data/features/steps_formatter.feature +25 -0
  291. data/features/support/env.rb +139 -0
  292. data/features/table_diffing.feature +45 -0
  293. data/features/transform.feature +24 -0
  294. data/features/unicode_table.feature +35 -0
  295. data/features/usage.feature +132 -0
  296. data/features/work_in_progress.feature +158 -0
  297. data/gem_tasks/contributors.rake +12 -0
  298. data/gem_tasks/deployment.rake +11 -0
  299. data/gem_tasks/environment.rake +7 -0
  300. data/gem_tasks/features.rake +11 -0
  301. data/gem_tasks/fix_cr_lf.rake +10 -0
  302. data/gem_tasks/flog.rake +4 -0
  303. data/gem_tasks/gemspec.rake +10 -0
  304. data/gem_tasks/rspec.rake +45 -0
  305. data/gem_tasks/sass.rake +4 -0
  306. data/gem_tasks/sdoc.rake +7 -0
  307. data/lib/README.rdoc +12 -0
  308. data/lib/autotest/cucumber.rb +6 -0
  309. data/lib/autotest/cucumber_mixin.rb +125 -0
  310. data/lib/autotest/cucumber_rails.rb +6 -0
  311. data/lib/autotest/cucumber_rails_rspec.rb +6 -0
  312. data/lib/autotest/cucumber_rspec.rb +6 -0
  313. data/lib/autotest/discover.rb +9 -0
  314. data/lib/cucumber/ast/background.rb +63 -0
  315. data/lib/cucumber/ast/comment.rb +31 -0
  316. data/lib/cucumber/ast/examples.rb +32 -0
  317. data/lib/cucumber/ast/feature.rb +81 -0
  318. data/lib/cucumber/ast/feature_element.rb +61 -0
  319. data/lib/cucumber/ast/features.rb +40 -0
  320. data/lib/cucumber/ast/outline_table.rb +146 -0
  321. data/lib/cucumber/ast/py_string.rb +57 -0
  322. data/lib/cucumber/ast/scenario.rb +108 -0
  323. data/lib/cucumber/ast/scenario_outline.rb +96 -0
  324. data/lib/cucumber/ast/step.rb +116 -0
  325. data/lib/cucumber/ast/step_collection.rb +76 -0
  326. data/lib/cucumber/ast/step_invocation.rb +166 -0
  327. data/lib/cucumber/ast/table.rb +626 -0
  328. data/lib/cucumber/ast/tags.rb +44 -0
  329. data/lib/cucumber/ast/visitor.rb +115 -0
  330. data/lib/cucumber/ast.rb +29 -0
  331. data/lib/cucumber/broadcaster.rb +13 -0
  332. data/lib/cucumber/cli/configuration.rb +190 -0
  333. data/lib/cucumber/cli/drb_client.rb +26 -0
  334. data/lib/cucumber/cli/language_help_formatter.rb +61 -0
  335. data/lib/cucumber/cli/main.rb +116 -0
  336. data/lib/cucumber/cli/options.rb +394 -0
  337. data/lib/cucumber/cli/profile_loader.rb +70 -0
  338. data/lib/cucumber/constantize.rb +28 -0
  339. data/lib/cucumber/core_ext/instance_exec.rb +93 -0
  340. data/lib/cucumber/core_ext/proc.rb +29 -0
  341. data/lib/cucumber/core_ext/string.rb +48 -0
  342. data/lib/cucumber/feature_file.rb +54 -0
  343. data/lib/cucumber/filter.rb +52 -0
  344. data/lib/cucumber/formatter/ansicolor.rb +143 -0
  345. data/lib/cucumber/formatter/color_io.rb +23 -0
  346. data/lib/cucumber/formatter/console.rb +185 -0
  347. data/lib/cucumber/formatter/cucumber.css +132 -0
  348. data/lib/cucumber/formatter/cucumber.sass +139 -0
  349. data/lib/cucumber/formatter/duration.rb +13 -0
  350. data/lib/cucumber/formatter/html.rb +261 -0
  351. data/lib/cucumber/formatter/junit.rb +121 -0
  352. data/lib/cucumber/formatter/ordered_xml_markup.rb +24 -0
  353. data/lib/cucumber/formatter/pdf.rb +217 -0
  354. data/lib/cucumber/formatter/pretty.rb +222 -0
  355. data/lib/cucumber/formatter/profile.rb +78 -0
  356. data/lib/cucumber/formatter/progress.rb +67 -0
  357. data/lib/cucumber/formatter/rerun.rb +46 -0
  358. data/lib/cucumber/formatter/steps.rb +50 -0
  359. data/lib/cucumber/formatter/tag_cloud.rb +29 -0
  360. data/lib/cucumber/formatter/unicode.rb +35 -0
  361. data/lib/cucumber/formatter/usage.rb +86 -0
  362. data/lib/cucumber/formatters/unicode.rb +7 -0
  363. data/lib/cucumber/language_support/language_methods.rb +75 -0
  364. data/lib/cucumber/language_support/step_definition_methods.rb +46 -0
  365. data/lib/cucumber/language_support.rb +30 -0
  366. data/lib/cucumber/languages.yml +561 -0
  367. data/lib/cucumber/parser/feature.rb +1838 -0
  368. data/lib/cucumber/parser/feature.tt +351 -0
  369. data/lib/cucumber/parser/i18n.tt +42 -0
  370. data/lib/cucumber/parser/natural_language.rb +72 -0
  371. data/lib/cucumber/parser/table.rb +417 -0
  372. data/lib/cucumber/parser/table.tt +71 -0
  373. data/lib/cucumber/parser/treetop_ext.rb +53 -0
  374. data/lib/cucumber/parser.rb +6 -0
  375. data/lib/cucumber/platform.rb +27 -0
  376. data/lib/cucumber/py_support/py_dsl.py +8 -0
  377. data/lib/cucumber/py_support/py_language.py +2 -0
  378. data/lib/cucumber/py_support/py_language.rb +68 -0
  379. data/lib/cucumber/rails/rspec.rb +10 -0
  380. data/lib/cucumber/rails/world.rb +100 -0
  381. data/lib/cucumber/rake/task.rb +241 -0
  382. data/lib/cucumber/rb_support/rb_dsl.rb +100 -0
  383. data/lib/cucumber/rb_support/rb_hook.rb +18 -0
  384. data/lib/cucumber/rb_support/rb_language.rb +153 -0
  385. data/lib/cucumber/rb_support/rb_step_definition.rb +60 -0
  386. data/lib/cucumber/rb_support/rb_world.rb +93 -0
  387. data/lib/cucumber/rspec_neuter.rb +23 -0
  388. data/lib/cucumber/step_match.rb +61 -0
  389. data/lib/cucumber/step_mother.rb +307 -0
  390. data/lib/cucumber/version.rb +10 -0
  391. data/lib/cucumber/webrat/element_locator.rb +87 -0
  392. data/lib/cucumber/webrat/table_locator.rb +1 -0
  393. data/lib/cucumber.rb +10 -0
  394. data/rails_generators/cucumber/USAGE +11 -0
  395. data/rails_generators/cucumber/cucumber_generator.rb +70 -0
  396. data/rails_generators/cucumber/templates/cucumber +9 -0
  397. data/rails_generators/cucumber/templates/cucumber.rake +36 -0
  398. data/rails_generators/cucumber/templates/cucumber_environment.rb +26 -0
  399. data/rails_generators/cucumber/templates/env.rb +27 -0
  400. data/rails_generators/cucumber/templates/paths.rb +27 -0
  401. data/rails_generators/cucumber/templates/spork_env.rb +35 -0
  402. data/rails_generators/cucumber/templates/webrat_steps.rb +236 -0
  403. data/rails_generators/feature/USAGE +12 -0
  404. data/rails_generators/feature/feature_generator.rb +40 -0
  405. data/rails_generators/feature/templates/feature.erb +31 -0
  406. data/rails_generators/feature/templates/steps.erb +14 -0
  407. data/spec/cucumber/ast/background_spec.rb +60 -0
  408. data/spec/cucumber/ast/feature_element_spec.rb +40 -0
  409. data/spec/cucumber/ast/feature_factory.rb +62 -0
  410. data/spec/cucumber/ast/feature_spec.rb +44 -0
  411. data/spec/cucumber/ast/py_string_spec.rb +51 -0
  412. data/spec/cucumber/ast/scenario_outline_spec.rb +72 -0
  413. data/spec/cucumber/ast/scenario_spec.rb +43 -0
  414. data/spec/cucumber/ast/step_collection_spec.rb +17 -0
  415. data/spec/cucumber/ast/step_spec.rb +66 -0
  416. data/spec/cucumber/ast/table_spec.rb +394 -0
  417. data/spec/cucumber/broadcaster_spec.rb +15 -0
  418. data/spec/cucumber/cli/configuration_spec.rb +396 -0
  419. data/spec/cucumber/cli/drb_client_spec.rb +77 -0
  420. data/spec/cucumber/cli/main_spec.rb +172 -0
  421. data/spec/cucumber/cli/options_spec.rb +331 -0
  422. data/spec/cucumber/cli/profile_loader_spec.rb +10 -0
  423. data/spec/cucumber/core_ext/proc_spec.rb +68 -0
  424. data/spec/cucumber/core_ext/string_spec.rb +43 -0
  425. data/spec/cucumber/formatter/ansicolor_spec.rb +31 -0
  426. data/spec/cucumber/formatter/color_io_spec.rb +27 -0
  427. data/spec/cucumber/formatter/duration_spec.rb +22 -0
  428. data/spec/cucumber/formatter/html_spec.rb +18 -0
  429. data/spec/cucumber/formatter/progress_spec.rb +33 -0
  430. data/spec/cucumber/parser/feature_parser_spec.rb +396 -0
  431. data/spec/cucumber/parser/table_parser_spec.rb +52 -0
  432. data/spec/cucumber/rails/stubs/mini_rails.rb +18 -0
  433. data/spec/cucumber/rails/stubs/test_help.rb +1 -0
  434. data/spec/cucumber/rails/world_spec.rb +16 -0
  435. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +123 -0
  436. data/spec/cucumber/sell_cucumbers.feature +19 -0
  437. data/spec/cucumber/step_mother_spec.rb +282 -0
  438. data/spec/cucumber/treetop_parser/empty_feature.feature +4 -0
  439. data/spec/cucumber/treetop_parser/empty_scenario.feature +9 -0
  440. data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +3 -0
  441. data/spec/cucumber/treetop_parser/fit_scenario.feature +8 -0
  442. data/spec/cucumber/treetop_parser/given_scenario.feature +9 -0
  443. data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
  444. data/spec/cucumber/treetop_parser/multiline_steps.feature +17 -0
  445. data/spec/cucumber/treetop_parser/multiple_tables.feature +27 -0
  446. data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
  447. data/spec/cucumber/treetop_parser/spaces.feature +12 -0
  448. data/spec/cucumber/treetop_parser/test_dos.feature +25 -0
  449. data/spec/cucumber/treetop_parser/with_comments.feature +23 -0
  450. data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
  451. data/spec/cucumber/world/pending_spec.rb +46 -0
  452. data/spec/spec.opts +4 -0
  453. data/spec/spec_helper.rb +18 -0
  454. metadata +561 -0
data/License.txt ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2008,2009 Aslak Hellesøy
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Manifest.txt ADDED
@@ -0,0 +1,453 @@
1
+ History.txt
2
+ License.txt
3
+ Manifest.txt
4
+ README.txt
5
+ Rakefile
6
+ bin/cucumber
7
+ config/hoe.rb
8
+ config/requirements.rb
9
+ cucumber.yml
10
+ examples/cs/README.textile
11
+ examples/cs/Rakefile
12
+ examples/cs/compile.bat
13
+ examples/cs/features/addition.feature
14
+ examples/cs/features/step_definitons/calculator_steps.rb
15
+ examples/cs/src/demo/Calculator.cs
16
+ examples/dos_line_endings/Rakefile
17
+ examples/dos_line_endings/features/dos_line_endings.feature
18
+ examples/i18n/README.textile
19
+ examples/i18n/Rakefile
20
+ examples/i18n/ar/Rakefile
21
+ examples/i18n/ar/features/addition.feature
22
+ examples/i18n/ar/features/step_definitons/calculator_steps.rb
23
+ examples/i18n/ar/lib/calculator.rb
24
+ examples/i18n/bg/Rakefile
25
+ examples/i18n/bg/features/addition.feature
26
+ examples/i18n/bg/features/consecutive_calculations.feature
27
+ examples/i18n/bg/features/division.feature
28
+ examples/i18n/bg/features/step_definitons/calculator_steps.rb
29
+ examples/i18n/bg/features/support/env.rb
30
+ examples/i18n/bg/features/support/world.rb
31
+ examples/i18n/bg/lib/calculator.rb
32
+ examples/i18n/cat/Rakefile
33
+ examples/i18n/cat/features/step_definitons/calculator_steps.rb
34
+ examples/i18n/cat/features/suma.feature
35
+ examples/i18n/cat/lib/calculadora.rb
36
+ examples/i18n/da/Rakefile
37
+ examples/i18n/da/features/step_definitons/kalkulator_steps.rb
38
+ examples/i18n/da/features/summering.feature
39
+ examples/i18n/da/lib/kalkulator.rb
40
+ examples/i18n/de/Rakefile
41
+ examples/i18n/de/features/addition.feature
42
+ examples/i18n/de/features/division.feature
43
+ examples/i18n/de/features/step_definitons/calculator_steps.rb
44
+ examples/i18n/de/lib/calculator.rb
45
+ examples/i18n/en-lol/Rakefile
46
+ examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb
47
+ examples/i18n/en-lol/features/stuffing.feature
48
+ examples/i18n/en-lol/features/support/env.rb
49
+ examples/i18n/en-lol/lib/basket.rb
50
+ examples/i18n/en-lol/lib/belly.rb
51
+ examples/i18n/en/Rakefile
52
+ examples/i18n/en/features/addition.feature
53
+ examples/i18n/en/features/division.feature
54
+ examples/i18n/en/features/step_definitons/calculator_steps.rb
55
+ examples/i18n/en/lib/calculator.rb
56
+ examples/i18n/es/Rakefile
57
+ examples/i18n/es/features/adicion.feature
58
+ examples/i18n/es/features/step_definitons/calculador_steps.rb
59
+ examples/i18n/es/lib/calculador.rb
60
+ examples/i18n/et/Rakefile
61
+ examples/i18n/et/features/jagamine.feature
62
+ examples/i18n/et/features/liitmine.feature
63
+ examples/i18n/et/features/step_definitions/kalkulaator_steps.rb
64
+ examples/i18n/et/lib/kalkulaator.rb
65
+ examples/i18n/fi/Rakefile
66
+ examples/i18n/fi/features/jakolasku.feature
67
+ examples/i18n/fi/features/step_definitons/laskin_steps.rb
68
+ examples/i18n/fi/features/yhteenlasku.feature
69
+ examples/i18n/fi/lib/laskin.rb
70
+ examples/i18n/fr/Rakefile
71
+ examples/i18n/fr/features/addition.feature
72
+ examples/i18n/fr/features/step_definitions/calculatrice_steps.rb
73
+ examples/i18n/fr/lib/calculatrice.rb
74
+ examples/i18n/he/Rakefile
75
+ examples/i18n/he/features/addition.feature
76
+ examples/i18n/he/features/division.feature
77
+ examples/i18n/he/features/step_definitons/calculator_steps.rb
78
+ examples/i18n/he/lib/calculator.rb
79
+ examples/i18n/hu/Rakefile
80
+ examples/i18n/hu/features/addition.feature
81
+ examples/i18n/hu/features/division.feature
82
+ examples/i18n/hu/features/step_definitons/calculator_steps.rb
83
+ examples/i18n/hu/lib/calculator.rb
84
+ examples/i18n/id/Rakefile
85
+ examples/i18n/id/features/addition.feature
86
+ examples/i18n/id/features/division.feature
87
+ examples/i18n/id/features/step_definitons/calculator_steps.rb
88
+ examples/i18n/id/lib/calculator.rb
89
+ examples/i18n/it/Rakefile
90
+ examples/i18n/it/features/somma.feature
91
+ examples/i18n/it/features/step_definitons/calcolatrice_steps.rb
92
+ examples/i18n/it/lib/calcolatrice.rb
93
+ examples/i18n/ja/Rakefile
94
+ examples/i18n/ja/features/addition.feature
95
+ examples/i18n/ja/features/division.feature
96
+ examples/i18n/ja/features/step_definitons/calculator_steps.rb
97
+ examples/i18n/ja/lib/calculator.rb
98
+ examples/i18n/ko/Rakefile
99
+ examples/i18n/ko/features/addition.feature
100
+ examples/i18n/ko/features/division.feature
101
+ examples/i18n/ko/features/step_definitons/calculator_steps.rb
102
+ examples/i18n/ko/lib/calculator.rb
103
+ examples/i18n/lt/Rakefile
104
+ examples/i18n/lt/features/addition.feature
105
+ examples/i18n/lt/features/division.feature
106
+ examples/i18n/lt/features/step_definitons/calculator_steps.rb
107
+ examples/i18n/lt/lib/calculator.rb
108
+ examples/i18n/lv/Rakefile
109
+ examples/i18n/lv/features/addition.feature
110
+ examples/i18n/lv/features/division.feature
111
+ examples/i18n/lv/features/step_definitons/calculator_steps.rb
112
+ examples/i18n/lv/lib/calculator.rb
113
+ examples/i18n/no/Rakefile
114
+ examples/i18n/no/features/step_definitons/kalkulator_steps.rb
115
+ examples/i18n/no/features/summering.feature
116
+ examples/i18n/no/features/support/env.rb
117
+ examples/i18n/no/lib/kalkulator.rb
118
+ examples/i18n/pl/Rakefile
119
+ examples/i18n/pl/features/addition.feature
120
+ examples/i18n/pl/features/division.feature
121
+ examples/i18n/pl/features/step_definitons/calculator_steps.rb
122
+ examples/i18n/pl/features/support/env.rb
123
+ examples/i18n/pl/lib/calculator.rb
124
+ examples/i18n/pt/Rakefile
125
+ examples/i18n/pt/features/adicao.feature
126
+ examples/i18n/pt/features/step_definitions/calculadora_steps.rb
127
+ examples/i18n/pt/features/support/env.rb
128
+ examples/i18n/pt/lib/calculadora.rb
129
+ examples/i18n/ro/Rakefile
130
+ examples/i18n/ro/features/step_definitons/calculator_steps.rb
131
+ examples/i18n/ro/features/suma.feature
132
+ examples/i18n/ro/lib/calculator.rb
133
+ examples/i18n/ru/Rakefile
134
+ examples/i18n/ru/features/addition.feature
135
+ examples/i18n/ru/features/consecutive_calculations.feature
136
+ examples/i18n/ru/features/division.feature
137
+ examples/i18n/ru/features/step_definitons/calculator_steps.rb
138
+ examples/i18n/ru/features/support/env.rb
139
+ examples/i18n/ru/features/support/world.rb
140
+ examples/i18n/ru/lib/calculator.rb
141
+ examples/i18n/se/Rakefile
142
+ examples/i18n/se/features/step_definitons/kalkulator_steps.rb
143
+ examples/i18n/se/features/summering.feature
144
+ examples/i18n/se/lib/kalkulator.rb
145
+ examples/i18n/sk/Rakefile
146
+ examples/i18n/sk/features/addition.feature
147
+ examples/i18n/sk/features/division.feature
148
+ examples/i18n/sk/features/step_definitons/calculator_steps.rb
149
+ examples/i18n/sk/lib/calculator.rb
150
+ examples/i18n/uz/Rakefile
151
+ examples/i18n/uz/features/addition.feature
152
+ examples/i18n/uz/features/consecutive_calculations.feature
153
+ examples/i18n/uz/features/division.feature
154
+ examples/i18n/uz/features/step_definitons/calculator_steps.rb
155
+ examples/i18n/uz/features/support/env.rb
156
+ examples/i18n/uz/features/support/world.rb
157
+ examples/i18n/uz/lib/calculator.rb
158
+ examples/i18n/zh-CN/Rakefile
159
+ examples/i18n/zh-CN/features/addition.feature
160
+ examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb
161
+ examples/i18n/zh-CN/lib/calculator.rb
162
+ examples/i18n/zh-TW/Rakefile
163
+ examples/i18n/zh-TW/features/addition.feature
164
+ examples/i18n/zh-TW/features/division.feature
165
+ examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb
166
+ examples/i18n/zh-TW/lib/calculator.rb
167
+ examples/java/README.textile
168
+ examples/java/build.xml
169
+ examples/java/features/hello.feature
170
+ examples/java/features/step_definitons/hello_steps.rb
171
+ examples/java/features/step_definitons/tree_steps.rb
172
+ examples/java/features/tree.feature
173
+ examples/java/src/cucumber/demo/Hello.java
174
+ examples/junit/features/one_passing_one_failing.feature
175
+ examples/junit/features/pending.feature
176
+ examples/junit/features/step_definitions/steps.rb
177
+ examples/pure_java/README.textile
178
+ examples/python/features/fibonacci.feature
179
+ examples/python/features/step_definitions/fib_steps.py
180
+ examples/python/features/step_definitions/fib_steps.rb
181
+ examples/python/features/support/env.rb
182
+ examples/python/lib/fib.py
183
+ examples/selenium/Rakefile
184
+ examples/selenium/features/search.feature
185
+ examples/selenium/features/step_definitons/search_steps.rb
186
+ examples/selenium/features/support/env.rb
187
+ examples/selenium_webrat/Rakefile
188
+ examples/selenium_webrat/config.ru
189
+ examples/selenium_webrat/features/search.feature
190
+ examples/selenium_webrat/features/step_definitons/search_steps.rb
191
+ examples/selenium_webrat/features/support/env.rb
192
+ examples/self_test/README.textile
193
+ examples/self_test/Rakefile
194
+ examples/self_test/features/background/background_tagged_before_on_outline.feature
195
+ examples/self_test/features/background/background_with_name.feature
196
+ examples/self_test/features/background/failing_background.feature
197
+ examples/self_test/features/background/failing_background_after_success.feature
198
+ examples/self_test/features/background/multiline_args_background.feature
199
+ examples/self_test/features/background/passing_background.feature
200
+ examples/self_test/features/background/pending_background.feature
201
+ examples/self_test/features/background/scenario_outline_failing_background.feature
202
+ examples/self_test/features/background/scenario_outline_passing_background.feature
203
+ examples/self_test/features/call_undefined_step_from_step_def.feature
204
+ examples/self_test/features/failing_expectation.feature
205
+ examples/self_test/features/lots_of_undefined.feature
206
+ examples/self_test/features/multiline_name.feature
207
+ examples/self_test/features/outline_sample.feature
208
+ examples/self_test/features/sample.feature
209
+ examples/self_test/features/search_sample.feature
210
+ examples/self_test/features/step_definitions/sample_steps.rb
211
+ examples/self_test/features/support/env.rb
212
+ examples/self_test/features/tags_sample.feature
213
+ examples/self_test/features/tons_of_cukes.feature
214
+ examples/self_test/features/transform_sample.feature
215
+ examples/self_test/features/undefined_multiline_args.feature
216
+ examples/self_test/list-of-features.txt
217
+ examples/sinatra/README.textile
218
+ examples/sinatra/Rakefile
219
+ examples/sinatra/app.rb
220
+ examples/sinatra/features/add.feature
221
+ examples/sinatra/features/step_definitions/add_steps.rb
222
+ examples/sinatra/features/support/env.rb
223
+ examples/sinatra/views/add.erb
224
+ examples/sinatra/views/layout.erb
225
+ examples/steps_library/features/step_definitions/steps_lib1.rb
226
+ examples/steps_library/features/step_definitions/steps_lib2.rb
227
+ examples/test_unit/Rakefile
228
+ examples/test_unit/features/step_definitions/test_unit_steps.rb
229
+ examples/test_unit/features/test_unit.feature
230
+ examples/tickets/Rakefile
231
+ examples/tickets/features/172.feature
232
+ examples/tickets/features/177/1.feature
233
+ examples/tickets/features/177/2.feature
234
+ examples/tickets/features/177/3.feature
235
+ examples/tickets/features/180.feature
236
+ examples/tickets/features/229/tagged_hooks.feature
237
+ examples/tickets/features/229/tagged_hooks.rb
238
+ examples/tickets/features/236.feature
239
+ examples/tickets/features/241.feature
240
+ examples/tickets/features/246.feature
241
+ examples/tickets/features/248.feature
242
+ examples/tickets/features/270/back.feature
243
+ examples/tickets/features/270/back.steps.rb
244
+ examples/tickets/features/272/hooks.feature
245
+ examples/tickets/features/272/hooks_steps.rb
246
+ examples/tickets/features/279/py_string_indent.feature
247
+ examples/tickets/features/279/py_string_indent.steps.rb
248
+ examples/tickets/features/279/wrong.feature_
249
+ examples/tickets/features/301/filter_background_tagged_hooks.feature
250
+ examples/tickets/features/301/filter_background_tagged_hooks_steps.rb
251
+ examples/tickets/features/306/only_background.feature
252
+ examples/tickets/features/lib/eatting_machine.rb
253
+ examples/tickets/features/lib/pantry.rb
254
+ examples/tickets/features/scenario_outline.feature
255
+ examples/tickets/features/step_definitons/246_steps.rb
256
+ examples/tickets/features/step_definitons/248_steps.rb
257
+ examples/tickets/features/step_definitons/scenario_outline_steps.rb
258
+ examples/tickets/features/step_definitons/tickets_steps.rb
259
+ examples/tickets/features/table_diffing.feature
260
+ examples/tickets/features/tickets.feature
261
+ examples/watir/README.textile
262
+ examples/watir/Rakefile
263
+ examples/watir/features/search.feature
264
+ examples/watir/features/step_definitons/search_steps.rb
265
+ examples/watir/features/support/env.rb
266
+ features/background.feature
267
+ features/bug_371.feature
268
+ features/cucumber_cli.feature
269
+ features/cucumber_cli_diff_disabled.feature
270
+ features/cucumber_cli_outlines.feature
271
+ features/custom_formatter.feature
272
+ features/drb_server_integration.feature
273
+ features/exception_in_after_block.feature
274
+ features/exception_in_after_step_block.feature
275
+ features/exception_in_before_block.feature
276
+ features/exclude_files.feature
277
+ features/expand.feature
278
+ features/html_formatter.feature
279
+ features/html_formatter/a.html
280
+ features/junit_formatter.feature
281
+ features/language_from_header.feature
282
+ features/multiline_names.feature
283
+ features/post_configuration_hook.feature
284
+ features/profiles.feature
285
+ features/rake_task.feature
286
+ features/report_called_undefined_steps.feature
287
+ features/snippet.feature
288
+ features/step_definitions/cucumber_steps.rb
289
+ features/step_definitions/extra_steps.rb
290
+ features/steps_formatter.feature
291
+ features/support/env.rb
292
+ features/table_diffing.feature
293
+ features/transform.feature
294
+ features/unicode_table.feature
295
+ features/usage.feature
296
+ features/work_in_progress.feature
297
+ gem_tasks/contributors.rake
298
+ gem_tasks/deployment.rake
299
+ gem_tasks/environment.rake
300
+ gem_tasks/features.rake
301
+ gem_tasks/fix_cr_lf.rake
302
+ gem_tasks/flog.rake
303
+ gem_tasks/gemspec.rake
304
+ gem_tasks/rspec.rake
305
+ gem_tasks/sass.rake
306
+ gem_tasks/sdoc.rake
307
+ lib/README.rdoc
308
+ lib/autotest/cucumber.rb
309
+ lib/autotest/cucumber_mixin.rb
310
+ lib/autotest/cucumber_rails.rb
311
+ lib/autotest/cucumber_rails_rspec.rb
312
+ lib/autotest/cucumber_rspec.rb
313
+ lib/autotest/discover.rb
314
+ lib/cucumber.rb
315
+ lib/cucumber/ast.rb
316
+ lib/cucumber/ast/background.rb
317
+ lib/cucumber/ast/comment.rb
318
+ lib/cucumber/ast/examples.rb
319
+ lib/cucumber/ast/feature.rb
320
+ lib/cucumber/ast/feature_element.rb
321
+ lib/cucumber/ast/features.rb
322
+ lib/cucumber/ast/outline_table.rb
323
+ lib/cucumber/ast/py_string.rb
324
+ lib/cucumber/ast/scenario.rb
325
+ lib/cucumber/ast/scenario_outline.rb
326
+ lib/cucumber/ast/step.rb
327
+ lib/cucumber/ast/step_collection.rb
328
+ lib/cucumber/ast/step_invocation.rb
329
+ lib/cucumber/ast/table.rb
330
+ lib/cucumber/ast/tags.rb
331
+ lib/cucumber/ast/visitor.rb
332
+ lib/cucumber/broadcaster.rb
333
+ lib/cucumber/cli/configuration.rb
334
+ lib/cucumber/cli/drb_client.rb
335
+ lib/cucumber/cli/language_help_formatter.rb
336
+ lib/cucumber/cli/main.rb
337
+ lib/cucumber/cli/options.rb
338
+ lib/cucumber/cli/profile_loader.rb
339
+ lib/cucumber/constantize.rb
340
+ lib/cucumber/core_ext/instance_exec.rb
341
+ lib/cucumber/core_ext/proc.rb
342
+ lib/cucumber/core_ext/string.rb
343
+ lib/cucumber/feature_file.rb
344
+ lib/cucumber/filter.rb
345
+ lib/cucumber/formatter/ansicolor.rb
346
+ lib/cucumber/formatter/color_io.rb
347
+ lib/cucumber/formatter/console.rb
348
+ lib/cucumber/formatter/cucumber.css
349
+ lib/cucumber/formatter/cucumber.sass
350
+ lib/cucumber/formatter/duration.rb
351
+ lib/cucumber/formatter/html.rb
352
+ lib/cucumber/formatter/junit.rb
353
+ lib/cucumber/formatter/ordered_xml_markup.rb
354
+ lib/cucumber/formatter/pdf.rb
355
+ lib/cucumber/formatter/pretty.rb
356
+ lib/cucumber/formatter/profile.rb
357
+ lib/cucumber/formatter/progress.rb
358
+ lib/cucumber/formatter/rerun.rb
359
+ lib/cucumber/formatter/steps.rb
360
+ lib/cucumber/formatter/tag_cloud.rb
361
+ lib/cucumber/formatter/unicode.rb
362
+ lib/cucumber/formatter/usage.rb
363
+ lib/cucumber/formatters/unicode.rb
364
+ lib/cucumber/language_support.rb
365
+ lib/cucumber/language_support/language_methods.rb
366
+ lib/cucumber/language_support/step_definition_methods.rb
367
+ lib/cucumber/languages.yml
368
+ lib/cucumber/parser.rb
369
+ lib/cucumber/parser/feature.rb
370
+ lib/cucumber/parser/feature.tt
371
+ lib/cucumber/parser/i18n.tt
372
+ lib/cucumber/parser/natural_language.rb
373
+ lib/cucumber/parser/table.rb
374
+ lib/cucumber/parser/table.tt
375
+ lib/cucumber/parser/treetop_ext.rb
376
+ lib/cucumber/platform.rb
377
+ lib/cucumber/py_support/py_dsl.py
378
+ lib/cucumber/py_support/py_language.py
379
+ lib/cucumber/py_support/py_language.rb
380
+ lib/cucumber/rails/rspec.rb
381
+ lib/cucumber/rails/world.rb
382
+ lib/cucumber/rake/task.rb
383
+ lib/cucumber/rb_support/rb_dsl.rb
384
+ lib/cucumber/rb_support/rb_hook.rb
385
+ lib/cucumber/rb_support/rb_language.rb
386
+ lib/cucumber/rb_support/rb_step_definition.rb
387
+ lib/cucumber/rb_support/rb_world.rb
388
+ lib/cucumber/rspec_neuter.rb
389
+ lib/cucumber/step_match.rb
390
+ lib/cucumber/step_mother.rb
391
+ lib/cucumber/version.rb
392
+ lib/cucumber/webrat/element_locator.rb
393
+ lib/cucumber/webrat/table_locator.rb
394
+ rails_generators/cucumber/USAGE
395
+ rails_generators/cucumber/cucumber_generator.rb
396
+ rails_generators/cucumber/templates/cucumber
397
+ rails_generators/cucumber/templates/cucumber.rake
398
+ rails_generators/cucumber/templates/cucumber_environment.rb
399
+ rails_generators/cucumber/templates/env.rb
400
+ rails_generators/cucumber/templates/paths.rb
401
+ rails_generators/cucumber/templates/spork_env.rb
402
+ rails_generators/cucumber/templates/webrat_steps.rb
403
+ rails_generators/feature/USAGE
404
+ rails_generators/feature/feature_generator.rb
405
+ rails_generators/feature/templates/feature.erb
406
+ rails_generators/feature/templates/steps.erb
407
+ spec/cucumber/ast/background_spec.rb
408
+ spec/cucumber/ast/feature_element_spec.rb
409
+ spec/cucumber/ast/feature_factory.rb
410
+ spec/cucumber/ast/feature_spec.rb
411
+ spec/cucumber/ast/py_string_spec.rb
412
+ spec/cucumber/ast/scenario_outline_spec.rb
413
+ spec/cucumber/ast/scenario_spec.rb
414
+ spec/cucumber/ast/step_collection_spec.rb
415
+ spec/cucumber/ast/step_spec.rb
416
+ spec/cucumber/ast/table_spec.rb
417
+ spec/cucumber/broadcaster_spec.rb
418
+ spec/cucumber/cli/configuration_spec.rb
419
+ spec/cucumber/cli/drb_client_spec.rb
420
+ spec/cucumber/cli/main_spec.rb
421
+ spec/cucumber/cli/options_spec.rb
422
+ spec/cucumber/cli/profile_loader_spec.rb
423
+ spec/cucumber/core_ext/proc_spec.rb
424
+ spec/cucumber/core_ext/string_spec.rb
425
+ spec/cucumber/formatter/ansicolor_spec.rb
426
+ spec/cucumber/formatter/color_io_spec.rb
427
+ spec/cucumber/formatter/duration_spec.rb
428
+ spec/cucumber/formatter/html_spec.rb
429
+ spec/cucumber/formatter/progress_spec.rb
430
+ spec/cucumber/parser/feature_parser_spec.rb
431
+ spec/cucumber/parser/table_parser_spec.rb
432
+ spec/cucumber/rails/stubs/mini_rails.rb
433
+ spec/cucumber/rails/stubs/test_help.rb
434
+ spec/cucumber/rails/world_spec.rb
435
+ spec/cucumber/rb_support/rb_step_definition_spec.rb
436
+ spec/cucumber/sell_cucumbers.feature
437
+ spec/cucumber/step_mother_spec.rb
438
+ spec/cucumber/treetop_parser/empty_feature.feature
439
+ spec/cucumber/treetop_parser/empty_scenario.feature
440
+ spec/cucumber/treetop_parser/empty_scenario_outline.feature
441
+ spec/cucumber/treetop_parser/fit_scenario.feature
442
+ spec/cucumber/treetop_parser/given_scenario.feature
443
+ spec/cucumber/treetop_parser/invalid_scenario_outlines.feature
444
+ spec/cucumber/treetop_parser/multiline_steps.feature
445
+ spec/cucumber/treetop_parser/multiple_tables.feature
446
+ spec/cucumber/treetop_parser/scenario_outline.feature
447
+ spec/cucumber/treetop_parser/spaces.feature
448
+ spec/cucumber/treetop_parser/test_dos.feature
449
+ spec/cucumber/treetop_parser/with_comments.feature
450
+ spec/cucumber/treetop_parser/with_tags.feature
451
+ spec/cucumber/world/pending_spec.rb
452
+ spec/spec.opts
453
+ spec/spec_helper.rb
data/README.txt ADDED
@@ -0,0 +1,4 @@
1
+ = Cucumber
2
+
3
+ The main website is at http://cukes.info/
4
+ The documentation is at http://github.com/aslakhellesoy/cucumber/wikis/home/
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ ENV['NODOT'] = 'true' # We don't want class diagrams in RDoc
2
+ require 'config/requirements'
3
+ require 'config/hoe' # setup Hoe + all gem configuration
4
+
5
+ Dir['gem_tasks/**/*.rake'].each { |rake| load rake }
6
+
7
+ # Hoe gives us :default => :test, but we don't have Test::Unit tests.
8
+ Rake::Task[:default].clear_prerequisites rescue nil # For some super weird reason this fails for some...
9
+ task :default => [:spec, :cucumber]
data/bin/cucumber ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # Add '.rb' to work around a bug in IronRuby's File#dirname
3
+ $:.unshift(File.dirname(__FILE__ + '.rb') + '/../lib') unless $:.include?(File.dirname(__FILE__ + '.rb') + '/../lib')
4
+
5
+ require 'cucumber/rspec_neuter'
6
+ require 'cucumber/cli/main'
7
+ begin
8
+ # The dup is to keep ARGV intact, so that tools like ruby-debug can respawn.
9
+ failure = Cucumber::Cli::Main.execute(ARGV.dup)
10
+ Kernel.exit(failure ? 1 : 0)
11
+ rescue SystemExit => e
12
+ Kernel.exit(e.status)
13
+ rescue Exception => e
14
+ STDERR.puts("#{e.message} (#{e.class})")
15
+ STDERR.puts(e.backtrace.join("\n"))
16
+ Kernel.exit 1
17
+ end
data/config/hoe.rb ADDED
@@ -0,0 +1,78 @@
1
+ # encoding: utf-8
2
+ require 'cucumber/version'
3
+
4
+ AUTHOR = 'Aslak Hellesøy' # can also be an array of Authors
5
+ EMAIL = "aslak.hellesoy@gmail.com"
6
+ DESCRIPTION = "Executable Feature scenarios"
7
+ GEM_NAME = 'cucumber' # what ppl will type to install your gem
8
+ HOMEPATH = "http://cukes.info"
9
+ RUBYFORGE_PROJECT = 'rspec'
10
+
11
+ @config_file = "~/.rubyforge/user-config.yml"
12
+ @config = nil
13
+ RUBYFORGE_USERNAME = "aslak_hellesoy"
14
+ def rubyforge_username
15
+ unless @config
16
+ begin
17
+ @config = YAML.load(File.read(File.expand_path(@config_file)))
18
+ rescue
19
+ puts <<-EOS
20
+ ERROR: No rubyforge config file found: #{@config_file}
21
+ Run 'rubyforge setup' to prepare your env for access to Rubyforge
22
+ - See http://newgem.rubyforge.org/rubyforge.html for more details
23
+ EOS
24
+ exit
25
+ end
26
+ end
27
+ RUBYFORGE_USERNAME.replace @config["username"]
28
+ end
29
+
30
+
31
+ REV = nil
32
+ # UNCOMMENT IF REQUIRED:
33
+ # REV = YAML.load(`svn info`)['Revision']
34
+ VERS = Cucumber::VERSION::STRING + (REV ? ".#{REV}" : "")
35
+ RDOC_OPTS = ['--quiet', '--title', 'Cucumber documentation',
36
+ "--opname", "index.html",
37
+ "--line-numbers",
38
+ "--main", "README.textile",
39
+ "--inline-source"]
40
+
41
+ # Remove Hoe dependency
42
+ class Hoe
43
+ def extra_dev_deps
44
+ @extra_dev_deps.reject! { |dep| dep[0] == "hoe" }
45
+ @extra_dev_deps
46
+ end
47
+ end
48
+
49
+ # Generate all the Rake tasks
50
+ # Run 'rake -T' to see list of generated tasks (from gem root directory)
51
+ $hoe = Hoe.spec(GEM_NAME) do |p|
52
+ p.version = VERS
53
+ p.developer(AUTHOR, EMAIL)
54
+ p.description = DESCRIPTION
55
+ p.summary = DESCRIPTION
56
+ p.url = HOMEPATH
57
+ p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
58
+ p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store', '**/*.class', '**/*.jar', '**/tmp'] #An array of file patterns to delete on clean.
59
+
60
+ # == Optional
61
+ p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
62
+ #p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
63
+ p.extra_deps = [
64
+ ['term-ansicolor', '>= 1.0.3'],
65
+ ['treetop', '>= 1.3.0'],
66
+ ['polyglot', '>= 0.2.8'], # Don't really want polyglot, but it keeps breaking so we'll make people use something that works ok'ish
67
+ ['diff-lcs', '>= 1.1.2'],
68
+ ['builder', '>= 2.1.2']
69
+ ]
70
+
71
+ #p.spec_extras = {} # A hash of extra values to set in the gemspec.
72
+
73
+ end
74
+
75
+ CHANGES = $hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
76
+ PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
77
+ $hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
78
+ $hoe.rsync_args = '-av --delete --ignore-errors'
@@ -0,0 +1,15 @@
1
+ require 'fileutils'
2
+ include FileUtils
3
+
4
+ require 'rubygems'
5
+ %w[rake hoe].each do |req_gem|
6
+ begin
7
+ require req_gem
8
+ rescue LoadError
9
+ puts "This Rakefile requires the '#{req_gem}' RubyGem."
10
+ puts "Installation: gem install #{req_gem} -y"
11
+ exit
12
+ end
13
+ end
14
+
15
+ $:.unshift(File.join(File.dirname(__FILE__), %w[.. lib]))
data/cucumber.yml ADDED
@@ -0,0 +1,2 @@
1
+ default: --format progress --tags ~@proposed,~@wip --strict features
2
+ wip: --tags @wip --wip features
@@ -0,0 +1 @@
1
+ See "IronRuby and .NET":http://github.com/aslakhellesoy/cucumber/wikis/ironruby-and-net
@@ -0,0 +1,12 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
2
+ require 'cucumber/rake/task'
3
+
4
+ Cucumber::Rake::Task.new(:features) do |t|
5
+ t.cucumber_opts = %w{--format pretty}
6
+ end
7
+
8
+ task :features => :compile
9
+
10
+ task :compile do
11
+ sh "csc /target:library /out:Demo.dll src\\demo\\Calculator.cs"
12
+ end
@@ -0,0 +1 @@
1
+ csc /target:library /out:Calculator.dll src\demo\Calculator.cs
@@ -0,0 +1,16 @@
1
+ Feature: Addition
2
+ In order to avoid silly mistakes
3
+ As a math idiot
4
+ I want to be told the sum of two numbers
5
+
6
+ Scenario Outline: Add two numbers
7
+ Given I have entered <input_1> into the calculator
8
+ And I have entered <input_2> into the calculator
9
+ When I press add
10
+ Then the result should be <output> on the screen
11
+
12
+ Examples:
13
+ | input_1 | input_2 | output |
14
+ | 20 | 30 | 50 |
15
+ | 2 | 5 | 7 |
16
+ | 0 | 40 | 40 |
@@ -0,0 +1,19 @@
1
+ require 'spec/expectations'
2
+ $:.unshift(File.dirname(__FILE__) + '/../../') # This line is not needed in your own project
3
+ require 'Calculator' # Calculator.dll
4
+
5
+ Before do
6
+ @calc = Demo::Calculator.new # A .NET class in Calculator.dll
7
+ end
8
+
9
+ Given "I have entered $n into the calculator" do |n|
10
+ @calc.push n.to_i
11
+ end
12
+
13
+ When /I press add/ do
14
+ @result = @calc.Add
15
+ end
16
+
17
+ Then /the result should be (.*) on the screen/ do |result|
18
+ @result.should == result.to_i
19
+ end