mobiusloop 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (516) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.rspec +1 -0
  4. data/.ruby-gemset +1 -0
  5. data/.travis.yml +22 -0
  6. data/.yardopts +1 -0
  7. data/CONTRIBUTING.md +68 -0
  8. data/Gemfile +5 -0
  9. data/History.md +2280 -0
  10. data/LICENSE +22 -0
  11. data/README.md +373 -0
  12. data/Rakefile +22 -0
  13. data/bin/mobiusloop +8 -0
  14. data/cucumber.gemspec +47 -0
  15. data/cucumber.yml +20 -0
  16. data/examples/i18n/README.textile +3 -0
  17. data/examples/i18n/Rakefile +33 -0
  18. data/examples/i18n/ar/Rakefile +6 -0
  19. data/examples/i18n/ar/features/addition.feature +17 -0
  20. data/examples/i18n/ar/features/step_definitions/calculator_steps.rb +24 -0
  21. data/examples/i18n/ar/lib/calculator.rb +11 -0
  22. data/examples/i18n/bg/Rakefile +6 -0
  23. data/examples/i18n/bg/features/addition.feature +12 -0
  24. data/examples/i18n/bg/features/consecutive_calculations.feature +19 -0
  25. data/examples/i18n/bg/features/division.feature +17 -0
  26. data/examples/i18n/bg/features/step_definitions/calculator_steps.rb +24 -0
  27. data/examples/i18n/bg/features/support/env.rb +5 -0
  28. data/examples/i18n/bg/features/support/world.rb +8 -0
  29. data/examples/i18n/bg/lib/calculator.rb +24 -0
  30. data/examples/i18n/ca/Rakefile +6 -0
  31. data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +21 -0
  32. data/examples/i18n/ca/features/suma.feature +17 -0
  33. data/examples/i18n/ca/lib/calculadora.rb +16 -0
  34. data/examples/i18n/cs/Rakefile +6 -0
  35. data/examples/i18n/cs/features/addition.feature +17 -0
  36. data/examples/i18n/cs/features/division.feature +11 -0
  37. data/examples/i18n/cs/features/step_definitions/calculator_steps.rb +24 -0
  38. data/examples/i18n/cs/lib/calculator.rb +14 -0
  39. data/examples/i18n/da/Rakefile +6 -0
  40. data/examples/i18n/da/features/sammenlaegning.feature +18 -0
  41. data/examples/i18n/da/features/step_definitions/lommeregner_steps.rb +24 -0
  42. data/examples/i18n/da/lib/lommeregner.rb +11 -0
  43. data/examples/i18n/de/Rakefile +6 -0
  44. data/examples/i18n/de/features/addition.feature +17 -0
  45. data/examples/i18n/de/features/division.feature +10 -0
  46. data/examples/i18n/de/features/step_definitions/calculator_steps.rb +24 -0
  47. data/examples/i18n/de/lib/calculator.rb +14 -0
  48. data/examples/i18n/el/Rakefile +6 -0
  49. data/examples/i18n/el/features/addition.feature +17 -0
  50. data/examples/i18n/el/features/division.feature +10 -0
  51. data/examples/i18n/el/features/step_definitions/calculator_steps.rb +24 -0
  52. data/examples/i18n/el/lib/calculator.rb +14 -0
  53. data/examples/i18n/en-lol/Rakefile +4 -0
  54. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
  55. data/examples/i18n/en-lol/features/stuffing.feature +8 -0
  56. data/examples/i18n/en-lol/features/support/env.rb +7 -0
  57. data/examples/i18n/en-lol/lib/basket.rb +12 -0
  58. data/examples/i18n/en-lol/lib/belly.rb +11 -0
  59. data/examples/i18n/en/Rakefile +6 -0
  60. data/examples/i18n/en/features/addition.feature +17 -0
  61. data/examples/i18n/en/features/division.feature +10 -0
  62. data/examples/i18n/en/features/step_definitions/calculator_steps.rb +24 -0
  63. data/examples/i18n/en/lib/calculator.rb +14 -0
  64. data/examples/i18n/eo/Rakefile +6 -0
  65. data/examples/i18n/eo/features/adicio.feature +17 -0
  66. data/examples/i18n/eo/features/divido.feature +10 -0
  67. data/examples/i18n/eo/features/step_definitions/calculator_steps.rb +24 -0
  68. data/examples/i18n/eo/lib/calculator.rb +14 -0
  69. data/examples/i18n/es/Rakefile +6 -0
  70. data/examples/i18n/es/features/adicion.feature +17 -0
  71. data/examples/i18n/es/features/step_definitions/calculador_steps.rb +21 -0
  72. data/examples/i18n/es/lib/calculador.rb +14 -0
  73. data/examples/i18n/et/Rakefile +6 -0
  74. data/examples/i18n/et/features/jagamine.feature +10 -0
  75. data/examples/i18n/et/features/liitmine.feature +17 -0
  76. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +24 -0
  77. data/examples/i18n/et/lib/kalkulaator.rb +14 -0
  78. data/examples/i18n/fi/Rakefile +6 -0
  79. data/examples/i18n/fi/features/jakolasku.feature +10 -0
  80. data/examples/i18n/fi/features/step_definitions/laskin_steps.rb +24 -0
  81. data/examples/i18n/fi/features/yhteenlasku.feature +17 -0
  82. data/examples/i18n/fi/lib/laskin.rb +14 -0
  83. data/examples/i18n/fr/Rakefile +8 -0
  84. data/examples/i18n/fr/features/addition.feature +18 -0
  85. data/examples/i18n/fr/features/addition2.feature +17 -0
  86. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +32 -0
  87. data/examples/i18n/fr/features/support/env.rb +5 -0
  88. data/examples/i18n/fr/lib/calculatrice.rb +10 -0
  89. data/examples/i18n/he/Rakefile +6 -0
  90. data/examples/i18n/he/features/addition.feature +17 -0
  91. data/examples/i18n/he/features/division.feature +10 -0
  92. data/examples/i18n/he/features/step_definitions/calculator_steps.rb +24 -0
  93. data/examples/i18n/he/lib/calculator.rb +15 -0
  94. data/examples/i18n/hi/Rakefile +6 -0
  95. data/examples/i18n/hi/features/addition.feature +16 -0
  96. data/examples/i18n/hi/features/division.feature +10 -0
  97. data/examples/i18n/hi/features/step_definitions/calculator_steps.rb +24 -0
  98. data/examples/i18n/hi/lib/calculator.rb +15 -0
  99. data/examples/i18n/ht/Rakefile +6 -0
  100. data/examples/i18n/ht/features/adisyon.feature +17 -0
  101. data/examples/i18n/ht/features/divizyon.feature +10 -0
  102. data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +25 -0
  103. data/examples/i18n/ht/lib/kalkilatris.rb +14 -0
  104. data/examples/i18n/hu/Rakefile +6 -0
  105. data/examples/i18n/hu/features/osszeadas.feature +17 -0
  106. data/examples/i18n/hu/features/osztas.feature +10 -0
  107. data/examples/i18n/hu/features/step_definitions/calculator_steps.rb +25 -0
  108. data/examples/i18n/hu/lib/calculator.rb +14 -0
  109. data/examples/i18n/id/Rakefile +6 -0
  110. data/examples/i18n/id/features/addition.feature +17 -0
  111. data/examples/i18n/id/features/division.feature +10 -0
  112. data/examples/i18n/id/features/step_definitions/calculator_steps.rb +24 -0
  113. data/examples/i18n/id/lib/calculator.rb +14 -0
  114. data/examples/i18n/it/Rakefile +6 -0
  115. data/examples/i18n/it/features/somma.feature +11 -0
  116. data/examples/i18n/it/features/step_definitions/calcolatrice_steps.rb +24 -0
  117. data/examples/i18n/it/lib/calcolatrice.rb +11 -0
  118. data/examples/i18n/ja/Rakefile +6 -0
  119. data/examples/i18n/ja/features/addition.feature +17 -0
  120. data/examples/i18n/ja/features/division.feature +10 -0
  121. data/examples/i18n/ja/features/step_definitions/calculator_steps.rb +19 -0
  122. data/examples/i18n/ja/features/support/env.rb +5 -0
  123. data/examples/i18n/ja/lib/calculator.rb +14 -0
  124. data/examples/i18n/ko/Rakefile +6 -0
  125. data/examples/i18n/ko/features/addition.feature +17 -0
  126. data/examples/i18n/ko/features/division.feature +11 -0
  127. data/examples/i18n/ko/features/step_definitions/calculator_steps.rb +24 -0
  128. data/examples/i18n/ko/lib/calculator.rb +14 -0
  129. data/examples/i18n/lt/Rakefile +6 -0
  130. data/examples/i18n/lt/features/addition.feature +17 -0
  131. data/examples/i18n/lt/features/division.feature +10 -0
  132. data/examples/i18n/lt/features/step_definitions/calculator_steps.rb +24 -0
  133. data/examples/i18n/lt/lib/calculator.rb +14 -0
  134. data/examples/i18n/lv/Rakefile +6 -0
  135. data/examples/i18n/lv/features/addition.feature +17 -0
  136. data/examples/i18n/lv/features/division.feature +10 -0
  137. data/examples/i18n/lv/features/step_definitions/calculator_steps.rb +24 -0
  138. data/examples/i18n/lv/lib/calculator.rb +14 -0
  139. data/examples/i18n/no/Rakefile +6 -0
  140. data/examples/i18n/no/features/step_definitions/kalkulator_steps.rb +17 -0
  141. data/examples/i18n/no/features/summering.feature +19 -0
  142. data/examples/i18n/no/features/support/env.rb +6 -0
  143. data/examples/i18n/no/lib/kalkulator.rb +11 -0
  144. data/examples/i18n/pl/Rakefile +6 -0
  145. data/examples/i18n/pl/features/addition.feature +17 -0
  146. data/examples/i18n/pl/features/division.feature +10 -0
  147. data/examples/i18n/pl/features/step_definitions/calculator_steps.rb +24 -0
  148. data/examples/i18n/pl/features/support/env.rb +5 -0
  149. data/examples/i18n/pl/lib/calculator.rb +14 -0
  150. data/examples/i18n/pt/Rakefile +6 -0
  151. data/examples/i18n/pt/features/adicao.feature +11 -0
  152. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +20 -0
  153. data/examples/i18n/pt/features/support/env.rb +5 -0
  154. data/examples/i18n/pt/lib/calculadora.rb +10 -0
  155. data/examples/i18n/ro/Rakefile +6 -0
  156. data/examples/i18n/ro/features/adunare.feature +12 -0
  157. data/examples/i18n/ro/features/step_definitions/calculator_steps.rb +21 -0
  158. data/examples/i18n/ro/lib/calculator.rb +11 -0
  159. data/examples/i18n/ru/Rakefile +6 -0
  160. data/examples/i18n/ru/features/addition.feature +11 -0
  161. data/examples/i18n/ru/features/consecutive_calculations.feature +17 -0
  162. data/examples/i18n/ru/features/division.feature +16 -0
  163. data/examples/i18n/ru/features/step_definitions/calculator_steps.rb +19 -0
  164. data/examples/i18n/ru/features/support/env.rb +5 -0
  165. data/examples/i18n/ru/features/support/world.rb +8 -0
  166. data/examples/i18n/ru/lib/calculator.rb +24 -0
  167. data/examples/i18n/sk/Rakefile +6 -0
  168. data/examples/i18n/sk/features/addition.feature +17 -0
  169. data/examples/i18n/sk/features/division.feature +10 -0
  170. data/examples/i18n/sk/features/step_definitions/calculator_steps.rb +24 -0
  171. data/examples/i18n/sk/lib/calculator.rb +14 -0
  172. data/examples/i18n/sr-Cyrl/Rakefile +6 -0
  173. data/examples/i18n/sr-Cyrl/features/sabiranje.feature +18 -0
  174. data/examples/i18n/sr-Cyrl/features/step_definitions/calculator_steps.rb +20 -0
  175. data/examples/i18n/sr-Cyrl/features/support/env.rb +5 -0
  176. data/examples/i18n/sr-Cyrl/lib/calculator.rb +12 -0
  177. data/examples/i18n/sr-Latn/Rakefile +6 -0
  178. data/examples/i18n/sr-Latn/features/sabiranje.feature +18 -0
  179. data/examples/i18n/sr-Latn/features/step_definitions/calculator_steps.rb +24 -0
  180. data/examples/i18n/sr-Latn/lib/calculator.rb +12 -0
  181. data/examples/i18n/sv/Rakefile +6 -0
  182. data/examples/i18n/sv/features/step_definitions/kalkulator_steps.rb +24 -0
  183. data/examples/i18n/sv/features/summering.feature +18 -0
  184. data/examples/i18n/sv/lib/kalkulator.rb +11 -0
  185. data/examples/i18n/tr/Rakefile +6 -0
  186. data/examples/i18n/tr/features/bolme.feature +10 -0
  187. data/examples/i18n/tr/features/step_definitions/hesap_makinesi_adimlari.rb +24 -0
  188. data/examples/i18n/tr/features/toplama.feature +18 -0
  189. data/examples/i18n/tr/lib/hesap_makinesi.rb +15 -0
  190. data/examples/i18n/uk/Rakefile +6 -0
  191. data/examples/i18n/uk/features/addition.feature +11 -0
  192. data/examples/i18n/uk/features/consecutive_calculations.feature +17 -0
  193. data/examples/i18n/uk/features/division.feature +16 -0
  194. data/examples/i18n/uk/features/step_definitions/calculator_steps.rb +19 -0
  195. data/examples/i18n/uk/features/support/env.rb +5 -0
  196. data/examples/i18n/uk/features/support/world.rb +8 -0
  197. data/examples/i18n/uk/lib/calculator.rb +24 -0
  198. data/examples/i18n/uz/Rakefile +6 -0
  199. data/examples/i18n/uz/features/addition.feature +10 -0
  200. data/examples/i18n/uz/features/consecutive_calculations.feature +17 -0
  201. data/examples/i18n/uz/features/division.feature +17 -0
  202. data/examples/i18n/uz/features/step_definitions/calculator_steps.rb +19 -0
  203. data/examples/i18n/uz/features/support/env.rb +5 -0
  204. data/examples/i18n/uz/features/support/world.rb +8 -0
  205. data/examples/i18n/uz/lib/calculator.rb +24 -0
  206. data/examples/i18n/zh-CN/Rakefile +4 -0
  207. data/examples/i18n/zh-CN/features/addition.feature +18 -0
  208. data/examples/i18n/zh-CN/features/step_definitions/calculator_steps.rb +26 -0
  209. data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
  210. data/examples/i18n/zh-TW/Rakefile +4 -0
  211. data/examples/i18n/zh-TW/features/addition.feature +17 -0
  212. data/examples/i18n/zh-TW/features/division.feature +11 -0
  213. data/examples/i18n/zh-TW/features/step_definitions/calculator_steps.rb +24 -0
  214. data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
  215. data/examples/mobiusloop/increase_readers.goal +13 -0
  216. data/examples/mobiusloop/scale_page_response.rb +20 -0
  217. data/examples/mobiusloop/total_articles_scale.rb +10 -0
  218. data/examples/mobiusloop/total_readers_scale.rb +10 -0
  219. data/examples/rspec_doubles/Rakefile +4 -0
  220. data/examples/rspec_doubles/features/mocking.feature +9 -0
  221. data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +19 -0
  222. data/examples/rspec_doubles/features/support/env.rb +12 -0
  223. data/examples/sinatra/README.textile +13 -0
  224. data/examples/sinatra/Rakefile +6 -0
  225. data/examples/sinatra/app.rb +14 -0
  226. data/examples/sinatra/features/add.feature +11 -0
  227. data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
  228. data/examples/sinatra/features/support/env.rb +10 -0
  229. data/examples/sinatra/views/add.erb +7 -0
  230. data/examples/sinatra/views/layout.erb +8 -0
  231. data/examples/tcl/README.textile +11 -0
  232. data/examples/tcl/Rakefile +6 -0
  233. data/examples/tcl/features/fibonnacci.feature +17 -0
  234. data/examples/tcl/features/step_definitions/fib_steps.rb +7 -0
  235. data/examples/tcl/features/support/env.rb +6 -0
  236. data/examples/tcl/src/fib.tcl +3 -0
  237. data/examples/test_unit/Gemfile +4 -0
  238. data/examples/test_unit/Rakefile +6 -0
  239. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +20 -0
  240. data/examples/test_unit/features/test_unit.feature +9 -0
  241. data/examples/watir/README.textile +16 -0
  242. data/examples/watir/Rakefile +12 -0
  243. data/examples/watir/cucumber.yml +1 -0
  244. data/examples/watir/features/search.feature +12 -0
  245. data/examples/watir/features/step_definitions/search_steps.rb +26 -0
  246. data/examples/watir/features/support/env.rb +35 -0
  247. data/examples/watir/features/support/screenshots.rb +47 -0
  248. data/features/docs/api/list_step_defs_as_json.feature +50 -0
  249. data/features/docs/api/listen_for_events.feature +58 -0
  250. data/features/docs/api/run_cli_main_with_existing_runtime.feature +26 -0
  251. data/features/docs/cli/backtraces.feature +36 -0
  252. data/features/docs/cli/dry_run.feature +70 -0
  253. data/features/docs/cli/exclude_files.feature +18 -0
  254. data/features/docs/cli/execute_with_tag_filter.feature +117 -0
  255. data/features/docs/cli/fail_fast.feature +46 -0
  256. data/features/docs/cli/finding_steps.feature +28 -0
  257. data/features/docs/cli/randomize.feature +140 -0
  258. data/features/docs/cli/require.feature +27 -0
  259. data/features/docs/cli/retry_failing_tests.feature +32 -0
  260. data/features/docs/cli/run_scenarios_matching_name.feature +104 -0
  261. data/features/docs/cli/run_specific_scenarios.feature +77 -0
  262. data/features/docs/cli/showing_differences.feature +43 -0
  263. data/features/docs/cli/specifying_multiple_formatters.feature +65 -0
  264. data/features/docs/cli/strict_mode.feature +64 -0
  265. data/features/docs/defining_steps/nested_steps.feature +177 -0
  266. data/features/docs/defining_steps/nested_steps_i18n.feature +34 -0
  267. data/features/docs/defining_steps/nested_steps_with_second_arg.feature +54 -0
  268. data/features/docs/defining_steps/one_line_step_definitions.feature +65 -0
  269. data/features/docs/defining_steps/printing_messages.feature +148 -0
  270. data/features/docs/defining_steps/skip_scenario.feature +64 -0
  271. data/features/docs/defining_steps/snippets.feature +56 -0
  272. data/features/docs/defining_steps/table_diffing.feature +50 -0
  273. data/features/docs/exception_in_after_hook.feature +126 -0
  274. data/features/docs/exception_in_after_step_hook.feature +102 -0
  275. data/features/docs/exception_in_around_hook.feature +78 -0
  276. data/features/docs/exception_in_before_hook.feature +96 -0
  277. data/features/docs/extending_cucumber/custom_filter.feature +29 -0
  278. data/features/docs/extending_cucumber/custom_formatter.feature +130 -0
  279. data/features/docs/formatters/api_methods.feature +37 -0
  280. data/features/docs/formatters/debug_formatter.feature +47 -0
  281. data/features/docs/formatters/formatter_step_file_colon_line.feature +44 -0
  282. data/features/docs/formatters/html_formatter.feature +91 -0
  283. data/features/docs/formatters/json_formatter.feature +767 -0
  284. data/features/docs/formatters/junit_formatter.feature +454 -0
  285. data/features/docs/formatters/pretty_formatter.feature +73 -0
  286. data/features/docs/formatters/progress_formatter.feature +31 -0
  287. data/features/docs/formatters/rerun_formatter.feature +188 -0
  288. data/features/docs/formatters/usage_formatter.feature +98 -0
  289. data/features/docs/getting_started.feature +27 -0
  290. data/features/docs/gherkin/background.feature +548 -0
  291. data/features/docs/gherkin/doc_strings.feature +74 -0
  292. data/features/docs/gherkin/expand_option_for_outlines.feature +46 -0
  293. data/features/docs/gherkin/language_from_header.feature +32 -0
  294. data/features/docs/gherkin/language_help.feature +42 -0
  295. data/features/docs/gherkin/outlines.feature +156 -0
  296. data/features/docs/gherkin/unicode_table.feature +32 -0
  297. data/features/docs/gherkin/using_descriptions.feature +82 -0
  298. data/features/docs/gherkin/using_star_notation.feature +37 -0
  299. data/features/docs/iso-8859-1.feature +6 -0
  300. data/features/docs/post_configuration_hook.feature +49 -0
  301. data/features/docs/profiles.feature +120 -0
  302. data/features/docs/rake_task.feature +141 -0
  303. data/features/docs/raketask.feature +44 -0
  304. data/features/docs/work_in_progress.feature +154 -0
  305. data/features/docs/writing_support_code/after_hooks.feature +102 -0
  306. data/features/docs/writing_support_code/after_step_hooks.feature +53 -0
  307. data/features/docs/writing_support_code/around_hooks.feature +260 -0
  308. data/features/docs/writing_support_code/before_hook.feature +65 -0
  309. data/features/docs/writing_support_code/hook_order.feature +61 -0
  310. data/features/docs/writing_support_code/load_path.feature +17 -0
  311. data/features/docs/writing_support_code/state.feature +32 -0
  312. data/features/docs/writing_support_code/tagged_hooks.feature +95 -0
  313. data/features/docs/writing_support_code/transforms.feature +98 -0
  314. data/features/lib/step_definitions/aruba_steps.rb +26 -0
  315. data/features/lib/step_definitions/cucumber_steps.rb +78 -0
  316. data/features/lib/step_definitions/iso-8859-1_steps.rb +12 -0
  317. data/features/lib/step_definitions/json_steps.rb +7 -0
  318. data/features/lib/step_definitions/junit_steps.rb +13 -0
  319. data/features/lib/step_definitions/language_steps.rb +8 -0
  320. data/features/lib/step_definitions/profile_steps.rb +15 -0
  321. data/features/lib/step_definitions/retry_steps.rb +35 -0
  322. data/features/lib/step_definitions/ruby_steps.rb +3 -0
  323. data/features/lib/step_definitions/wire_steps.rb +58 -0
  324. data/features/lib/support/env.rb +21 -0
  325. data/features/lib/support/fake_wire_server.rb +80 -0
  326. data/features/lib/support/feature_factory.rb +67 -0
  327. data/features/lib/support/normalise_output.rb +50 -0
  328. data/gem_tasks/contributors.rake +15 -0
  329. data/gem_tasks/cov.rake +5 -0
  330. data/gem_tasks/cucumber.rake +25 -0
  331. data/gem_tasks/downloads.rb +7 -0
  332. data/gem_tasks/environment.rake +7 -0
  333. data/gem_tasks/examples.rake +11 -0
  334. data/gem_tasks/fix_cr_lf.rake +10 -0
  335. data/gem_tasks/flog.rake +4 -0
  336. data/gem_tasks/rspec.rake +6 -0
  337. data/gem_tasks/sass.rake +4 -0
  338. data/gem_tasks/stats +16 -0
  339. data/gem_tasks/versions.txt +74 -0
  340. data/gherkin-languages.json +2972 -0
  341. data/lib/autotest/cucumber.rb +6 -0
  342. data/lib/autotest/cucumber_mixin.rb +135 -0
  343. data/lib/autotest/cucumber_rails.rb +6 -0
  344. data/lib/autotest/cucumber_rails_rspec.rb +6 -0
  345. data/lib/autotest/cucumber_rails_rspec2.rb +6 -0
  346. data/lib/autotest/cucumber_rspec.rb +6 -0
  347. data/lib/autotest/cucumber_rspec2.rb +6 -0
  348. data/lib/autotest/discover.rb +11 -0
  349. data/lib/cucumber.rb +37 -0
  350. data/lib/cucumber/ast.rb +13 -0
  351. data/lib/cucumber/cli/configuration.rb +146 -0
  352. data/lib/cucumber/cli/main.rb +99 -0
  353. data/lib/cucumber/cli/options.rb +465 -0
  354. data/lib/cucumber/cli/profile_loader.rb +91 -0
  355. data/lib/cucumber/cli/rerun_file.rb +29 -0
  356. data/lib/cucumber/configuration.rb +268 -0
  357. data/lib/cucumber/constantize.rb +45 -0
  358. data/lib/cucumber/core_ext/instance_exec.rb +70 -0
  359. data/lib/cucumber/core_ext/string.rb +9 -0
  360. data/lib/cucumber/deprecate.rb +29 -0
  361. data/lib/cucumber/encoding.rb +5 -0
  362. data/lib/cucumber/errors.rb +51 -0
  363. data/lib/cucumber/events.rb +20 -0
  364. data/lib/cucumber/events/after_test_case.rb +25 -0
  365. data/lib/cucumber/events/after_test_step.rb +30 -0
  366. data/lib/cucumber/events/before_test_case.rb +18 -0
  367. data/lib/cucumber/events/before_test_step.rb +23 -0
  368. data/lib/cucumber/events/bus.rb +86 -0
  369. data/lib/cucumber/events/finished_testing.rb +9 -0
  370. data/lib/cucumber/events/step_match.rb +23 -0
  371. data/lib/cucumber/file_specs.rb +37 -0
  372. data/lib/cucumber/filters.rb +9 -0
  373. data/lib/cucumber/filters/activate_steps.rb +67 -0
  374. data/lib/cucumber/filters/apply_after_hooks.rb +9 -0
  375. data/lib/cucumber/filters/apply_after_step_hooks.rb +12 -0
  376. data/lib/cucumber/filters/apply_around_hooks.rb +12 -0
  377. data/lib/cucumber/filters/apply_before_hooks.rb +9 -0
  378. data/lib/cucumber/filters/gated_receiver.rb +25 -0
  379. data/lib/cucumber/filters/prepare_world.rb +45 -0
  380. data/lib/cucumber/filters/quit.rb +28 -0
  381. data/lib/cucumber/filters/randomizer.rb +45 -0
  382. data/lib/cucumber/filters/retry.rb +32 -0
  383. data/lib/cucumber/filters/tag_limits.rb +45 -0
  384. data/lib/cucumber/filters/tag_limits/test_case_index.rb +31 -0
  385. data/lib/cucumber/filters/tag_limits/verifier.rb +59 -0
  386. data/lib/cucumber/formatter/ansicolor.rb +160 -0
  387. data/lib/cucumber/formatter/backtrace_filter.rb +41 -0
  388. data/lib/cucumber/formatter/console.rb +252 -0
  389. data/lib/cucumber/formatter/cucumber.css +286 -0
  390. data/lib/cucumber/formatter/cucumber.sass +247 -0
  391. data/lib/cucumber/formatter/debug.rb +35 -0
  392. data/lib/cucumber/formatter/duration.rb +13 -0
  393. data/lib/cucumber/formatter/duration_extractor.rb +28 -0
  394. data/lib/cucumber/formatter/event_bus_report.rb +38 -0
  395. data/lib/cucumber/formatter/fail_fast.rb +18 -0
  396. data/lib/cucumber/formatter/fanout.rb +27 -0
  397. data/lib/cucumber/formatter/hook_query_visitor.rb +40 -0
  398. data/lib/cucumber/formatter/html.rb +689 -0
  399. data/lib/cucumber/formatter/ignore_missing_messages.rb +20 -0
  400. data/lib/cucumber/formatter/interceptor.rb +80 -0
  401. data/lib/cucumber/formatter/io.rb +34 -0
  402. data/lib/cucumber/formatter/jquery-min.js +154 -0
  403. data/lib/cucumber/formatter/json.rb +334 -0
  404. data/lib/cucumber/formatter/json_pretty.rb +10 -0
  405. data/lib/cucumber/formatter/junit.rb +238 -0
  406. data/lib/cucumber/formatter/legacy_api/adapter.rb +1016 -0
  407. data/lib/cucumber/formatter/legacy_api/ast.rb +389 -0
  408. data/lib/cucumber/formatter/legacy_api/results.rb +51 -0
  409. data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +31 -0
  410. data/lib/cucumber/formatter/pretty.rb +247 -0
  411. data/lib/cucumber/formatter/progress.rb +73 -0
  412. data/lib/cucumber/formatter/rerun.rb +35 -0
  413. data/lib/cucumber/formatter/stepdefs.rb +14 -0
  414. data/lib/cucumber/formatter/steps.rb +49 -0
  415. data/lib/cucumber/formatter/summary.rb +35 -0
  416. data/lib/cucumber/formatter/unicode.rb +53 -0
  417. data/lib/cucumber/formatter/usage.rb +136 -0
  418. data/lib/cucumber/gherkin/data_table_parser.rb +31 -0
  419. data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +99 -0
  420. data/lib/cucumber/gherkin/formatter/escaping.rb +17 -0
  421. data/lib/cucumber/gherkin/i18n.rb +15 -0
  422. data/lib/cucumber/gherkin/steps_parser.rb +31 -0
  423. data/lib/cucumber/hooks.rb +99 -0
  424. data/lib/cucumber/load_path.rb +13 -0
  425. data/lib/cucumber/multiline_argument.rb +71 -0
  426. data/lib/cucumber/multiline_argument/data_table.rb +744 -0
  427. data/lib/cucumber/multiline_argument/doc_string.rb +9 -0
  428. data/lib/cucumber/platform.rb +27 -0
  429. data/lib/cucumber/project_initializer.rb +82 -0
  430. data/lib/cucumber/rake/task.rb +168 -0
  431. data/lib/cucumber/rb_support/rb_dsl.rb +119 -0
  432. data/lib/cucumber/rb_support/rb_hook.rb +19 -0
  433. data/lib/cucumber/rb_support/rb_language.rb +216 -0
  434. data/lib/cucumber/rb_support/rb_step_definition.rb +131 -0
  435. data/lib/cucumber/rb_support/rb_transform.rb +59 -0
  436. data/lib/cucumber/rb_support/rb_world.rb +149 -0
  437. data/lib/cucumber/rb_support/snippet.rb +170 -0
  438. data/lib/cucumber/rspec/disable_option_parser.rb +23 -0
  439. data/lib/cucumber/rspec/doubles.rb +19 -0
  440. data/lib/cucumber/running_test_case.rb +134 -0
  441. data/lib/cucumber/runtime.rb +266 -0
  442. data/lib/cucumber/runtime/after_hooks.rb +25 -0
  443. data/lib/cucumber/runtime/before_hooks.rb +27 -0
  444. data/lib/cucumber/runtime/for_programming_languages.rb +66 -0
  445. data/lib/cucumber/runtime/step_hooks.rb +23 -0
  446. data/lib/cucumber/runtime/support_code.rb +151 -0
  447. data/lib/cucumber/runtime/user_interface.rb +85 -0
  448. data/lib/cucumber/step_argument.rb +25 -0
  449. data/lib/cucumber/step_definition_light.rb +20 -0
  450. data/lib/cucumber/step_definitions.rb +13 -0
  451. data/lib/cucumber/step_match.rb +141 -0
  452. data/lib/cucumber/step_match_search.rb +67 -0
  453. data/lib/cucumber/term/ansicolor.rb +110 -0
  454. data/lib/cucumber/unit.rb +11 -0
  455. data/lib/cucumber/version +1 -0
  456. data/lib/mobiusloop/measure.rb +19 -0
  457. data/lib/mobiusloop/mobius_steps.rb +36 -0
  458. data/lib/mobiusloop/objective.rb +10 -0
  459. data/lib/mobiusloop/outcome.rb +99 -0
  460. data/lib/mobiusloop/scale.rb +32 -0
  461. data/lib/simplecov_setup.rb +18 -0
  462. data/major_changes_to_cucumber.md +45 -0
  463. data/mobiusloop.gemspec +47 -0
  464. data/spec/cucumber/cli/configuration_spec.rb +435 -0
  465. data/spec/cucumber/cli/main_spec.rb +83 -0
  466. data/spec/cucumber/cli/options_spec.rb +410 -0
  467. data/spec/cucumber/cli/profile_loader_spec.rb +46 -0
  468. data/spec/cucumber/cli/rerun_spec.rb +85 -0
  469. data/spec/cucumber/configuration_spec.rb +147 -0
  470. data/spec/cucumber/constantize_spec.rb +19 -0
  471. data/spec/cucumber/core_ext/instance_exec_spec.rb +4 -0
  472. data/spec/cucumber/events/bus_spec.rb +94 -0
  473. data/spec/cucumber/file_specs_spec.rb +60 -0
  474. data/spec/cucumber/filters/activate_steps_spec.rb +149 -0
  475. data/spec/cucumber/filters/gated_receiver_spec.rb +47 -0
  476. data/spec/cucumber/filters/retry_spec.rb +79 -0
  477. data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +38 -0
  478. data/spec/cucumber/filters/tag_limits/verifier_spec.rb +57 -0
  479. data/spec/cucumber/filters/tag_limits_spec.rb +59 -0
  480. data/spec/cucumber/formatter/ansicolor_spec.rb +32 -0
  481. data/spec/cucumber/formatter/debug_spec.rb +64 -0
  482. data/spec/cucumber/formatter/duration_spec.rb +22 -0
  483. data/spec/cucumber/formatter/event_bus_report_spec.rb +88 -0
  484. data/spec/cucumber/formatter/fail_fast_spec.rb +88 -0
  485. data/spec/cucumber/formatter/html_spec.rb +538 -0
  486. data/spec/cucumber/formatter/interceptor_spec.rb +136 -0
  487. data/spec/cucumber/formatter/json_spec.rb +841 -0
  488. data/spec/cucumber/formatter/junit_spec.rb +252 -0
  489. data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +2182 -0
  490. data/spec/cucumber/formatter/pretty_spec.rb +919 -0
  491. data/spec/cucumber/formatter/progress_spec.rb +169 -0
  492. data/spec/cucumber/formatter/rerun_spec.rb +91 -0
  493. data/spec/cucumber/formatter/spec_helper.rb +82 -0
  494. data/spec/cucumber/hooks_spec.rb +30 -0
  495. data/spec/cucumber/multiline_argument/data_table_spec.rb +603 -0
  496. data/spec/cucumber/project_initializer_spec.rb +87 -0
  497. data/spec/cucumber/rake/forked_spec.rb +53 -0
  498. data/spec/cucumber/rake/task_spec.rb +85 -0
  499. data/spec/cucumber/rb_support/rb_language_spec.rb +243 -0
  500. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +199 -0
  501. data/spec/cucumber/rb_support/rb_transform_spec.rb +46 -0
  502. data/spec/cucumber/rb_support/rb_world_spec.rb +47 -0
  503. data/spec/cucumber/rb_support/snippet_spec.rb +137 -0
  504. data/spec/cucumber/running_test_case_spec.rb +139 -0
  505. data/spec/cucumber/runtime/for_programming_languages_spec.rb +36 -0
  506. data/spec/cucumber/runtime/support_code_spec.rb +16 -0
  507. data/spec/cucumber/runtime_spec.rb +20 -0
  508. data/spec/cucumber/sell_cucumbers.feature +19 -0
  509. data/spec/cucumber/step_argument_spec.rb +18 -0
  510. data/spec/cucumber/step_match_search_spec.rb +122 -0
  511. data/spec/cucumber/step_match_spec.rb +85 -0
  512. data/spec/cucumber/world/pending_spec.rb +47 -0
  513. data/spec/cucumber_spec.rb +39 -0
  514. data/spec/spec_helper.rb +29 -0
  515. data/spec/support/standard_step_actions.rb +18 -0
  516. metadata +1007 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1f8aeb0ff8c00b5bc92a1746d916eefbff900728
4
+ data.tar.gz: 7f93d1d2a066f66a5ca4b2db2086c17d53956a2c
5
+ SHA512:
6
+ metadata.gz: 5b9a4dffb7ecdba4d028869f7f9fc5586037bc543c52b57eda4c5b70ed318824c88226ea46f27743f12a80f8a8907c3917b4471c72105cec78a9dd5e3d8ae036
7
+ data.tar.gz: b124626976da7218379aef1c4f04f8deb5828aa2410245a9802920008cb16da06ddac145f1166277cbcc23b78a18352d0cafa814ec712e11f882e58734cc01cf
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1 @@
1
+ cucumber
@@ -0,0 +1,22 @@
1
+ sudo: false
2
+
3
+ rvm:
4
+ - 2.3.0
5
+ - 2.2
6
+ - 2.1
7
+ - 2.0
8
+ - 1.9.3
9
+ - jruby-1.7.12
10
+
11
+ # whitelist
12
+ branches:
13
+ only:
14
+ - master
15
+ - resolve-issue-882
16
+ - v1.3.x-bugfix
17
+
18
+ before_install:
19
+ - gem update bundler
20
+
21
+ notifications:
22
+ email: false
@@ -0,0 +1 @@
1
+ --no-private
@@ -0,0 +1,68 @@
1
+ ## About to create a new Github Issue?
2
+
3
+ We appreciate that. But before you do, please learn our basic rules:
4
+
5
+ * This is not a support forum. If you have a question, please go to [The Cukes Google Group](http://groups.google.com/group/cukes).
6
+ * Do you have an idea for a new feature? Then don't expect it to be implemented unless you or someone else sends a [pull request](https://help.github.com/articles/using-pull-requests). You might be better to start a discussion on [the google group](http://groups.google.com/group/cukes).
7
+ * Reporting a bug? Please tell us:
8
+ * which version of Cucumber you're using
9
+ * which version of Ruby you're using.
10
+ * How to reproduce it. Bugs with a failing test in a [pull request](https://help.github.com/articles/using-pull-requests) get fixed much quicker. Some bugs may never be fixed.
11
+ * Want to paste some code or output? Put \`\`\` on a line above and below your code/output. See [GFM](https://help.github.com/articles/github-flavored-markdown)'s *Fenced Code Blocks* for details.
12
+ * We love [pull requests](https://help.github.com/articles/using-pull-requests). But if you don't have a test to go with it we probably won't merge it.
13
+
14
+ # Contributing to Cucumber
15
+
16
+ The rest of this document is a guide for those maintaining Cucumber, and others who would like to submit patches.
17
+
18
+ ## Talking with other devs
19
+
20
+ You can chat with the core team on https://gitter.im/cucumber/cucumber. We try to have office hours on Fridays.
21
+
22
+ ## Note on Patches/Pull Requests
23
+
24
+ * Fork the project. Make a branch for your change.
25
+ * Make your feature addition or bug fix.
26
+ * Make sure your patch is well covered by tests. We don't accept changes to Cucumber that aren't tested.
27
+ * Please do not change the Rakefile, version, or history.
28
+ (if you want to have your own version, that is fine but
29
+ bump version in a commit by itself so we can ignore when we merge your change)
30
+ * Send us a pull request.
31
+
32
+ ## Running tests
33
+
34
+ gem install bundler
35
+ bundle install
36
+ bundle exec rake
37
+
38
+ To get code coverage results, run `bundle exec rake cov`
39
+
40
+ ## Release Process
41
+
42
+ * Bump the version number in `lib/cucumber/platform.rb`.
43
+ * Make sure `History.md` is updated with the upcoming version number, and has entries for all fixes.
44
+ * No need to add a `History.md` header at this point - this should be done when a new change is made, later.
45
+ * Make sure you have up-to-date and clean copy of cucumber/cucumber.github.com.git at the same level as cucumber repo.
46
+
47
+ Now release it
48
+
49
+ bundle update
50
+ bundle exec rake
51
+ git commit -m "Release X.Y.Z"
52
+ rake release
53
+
54
+ ## Gaining Release Karma
55
+
56
+ To become a release manager, create a pull request adding your name to the list below, and include your Rubygems email address in the ticket. One of the existing Release managers will then add you.
57
+
58
+ Current release managers:
59
+ * [Matt Wynne](https://rubygems.org/profiles/mattwynne)
60
+ * [Aslak Hellesøy](https://rubygems.org/profiles/aslakhellesoy)
61
+ * [Oleg Sukhodolsky](https://rubygems.org/profiles/os97673)
62
+ * [Steve Tooke](https://rubygems.org/profiles/tooky)
63
+ * [Björn Rasmusson](https://rubygems.org/profiles/brasmusson)
64
+
65
+ To grant release karma, issue the following commands:
66
+
67
+ gem owner cucumber --add <NEW OWNER RUBYGEMS EMAIL>
68
+ gem owner cucumber-core --add <NEW OWNER RUBYGEMS EMAIL>
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ gem "cucumber-pro", "0.0.13", :group => :test
2
+ source "https://rubygems.org"
3
+ gemspec
4
+
5
+ gem 'mime-types', '~>2.99'
@@ -0,0 +1,2280 @@
1
+ ## [In Git](https://github.com/cucumber/cucumber-ruby/compare/v2.3.3...master)
2
+
3
+ ### New Features
4
+
5
+ * Add --retry option to retry failed tests as part of the same run ([#920](https://github.com/cucumber/cucumber-ruby/pull/920) @DanaScheider)
6
+
7
+ ### Bugfixes
8
+
9
+ * Make random order stable and platform independent ([#974](https://github.com/cucumber/cucumber-ruby/pull/974), closes [#971](https://github.com/cucumber/cucumber-ruby/issues/971))
10
+ * Run scenarios in fully random order ([#970](https://github.com/cucumber/cucumber-ruby/pull/970) @threedaymonk)
11
+ * Adding Test Step in AfterStep hook. ([#931](https://github.com/cucumber/cucumber-ruby/pull/931) @t-morgan)
12
+ * Handle even more exotic rerun file formats seen in the wild ([#928](https://github.com/cucumber/cucumber-ruby/pull/928) @mcrmfc)
13
+ * Allow Rake task to accept multiple profiles. ([#907](https://github.com/cucumber/cucumber-ruby/pull/907) @jasonkarns)
14
+ * Let the JUnit formatter handle running test cases for different features interweaved ([#952](https://github.com/cucumber/cucumber-ruby/issues/952) @brasmusson)
15
+
16
+ ## [v2.3.3](https://github.com/cucumber/cucumber-ruby/compare/v2.3.2...v2.3.3)
17
+
18
+ Added a message pointing users to [The Great Cucumber and BDD Census of 2016](https://cucumber.typeform.com/to/kjrSc2?audience=cucumber-ruby) to the installer message. Please take a few moments to help us all learn more about how you're using Cucumber and BDD.
19
+
20
+ ### Bugfixes
21
+
22
+ * Let the JSON formatter include data tables in the JSON file ([#948](https://github.com/cucumber/cucumber-ruby/issues/948) @brasmusson)
23
+ * Stringifying location in the JSON formatter for more consistent json parsing ([949](https://github.com/cucumber/cucumber-ruby/pull/949), [945](https://github.com/cucumber/cucumber-ruby/issues/945) @larryprice)
24
+
25
+ ## [v2.3.2](https://github.com/cucumber/cucumber-ruby/compare/v2.3.1...v2.3.2)
26
+
27
+ Brought the event bus code back into Cucumber to avoid https://github.com/fedux-org/event-bus/issues/6
28
+
29
+ ## [v2.3.1](https://github.com/cucumber/cucumber-ruby/compare/v2.3.0...v2.3.1)
30
+
31
+ Better deprecation warnings to help fix https://github.com/cucumber/cucumber-ruby/issues/942
32
+
33
+ ## [v2.3.0](https://github.com/cucumber/cucumber-ruby/compare/v2.2.0...v2.3.0)
34
+
35
+ ### New Features
36
+
37
+ * Update to Gherkin v3.2.0 (@brasmusson)
38
+
39
+ ### Bugfixes
40
+
41
+ ### Refactoring
42
+
43
+ ## [v2.2.0](https://github.com/cucumber/cucumber-ruby/compare/v2.1.0...v2.2.0)
44
+
45
+ Although this release is only bugfixes and refactorings, the extraction of the wire protocol is quite a significant change and
46
+ could cause breaking changes for users of undocumented APIs. Hence the minor version bump.
47
+
48
+ ### Bugfixes
49
+
50
+ * Let the formatters output the value of printed variables at time of the call to `#puts` ([#918](https://github.com/cucumber/cucumber-ruby/pull/918) [#915](https://github.com/cucumber/cucumber-ruby/issues/915) @enkessler @brasmusson)
51
+ * Fix Configuration.with_options merge direction ([#922](https://github.com/cucumber/cucumber-ruby/pull/922) @limhoff-r7)
52
+ * Consistent line breaks / truncation in backtraces ([#941](https://github.com/cucumber/cucumber-ruby/pull/941) @tooky)
53
+ * Fix extra arg passed to ensure_io ([#939](https://github.com/cucumber/cucumber-ruby/pull/939A @benshan)
54
+
55
+ ### Refactoring
56
+
57
+ * Remove wire protocol to plugin ([#878](https://github.com/cucumber/cucumber-ruby/pull/878) @mattwynne @tooky)
58
+ * Remove event bus to separate gem ([#933](https://github.com/cucumber/cucumber-ruby/pull/933) @dg-ratiodata)
59
+
60
+ ## [v2.1.0](https://github.com/cucumber/cucumber-ruby/compare/v2.0.2...v2.1.0)
61
+
62
+ ### New Features
63
+
64
+ * Introduce EventBus ([903](https://github.com/cucumber/cucumber-ruby/pull/903) @mattwynne @tooky)
65
+ * Fail-fast CLI switch ([906](https://github.com/cucumber/cucumber-ruby/pull/906) @danascheider)
66
+
67
+ ### Bugfixes
68
+
69
+ * When only an around hook is failing, let the Json Formatter include the around hook result ([909](https://github.com/cucumber/cucumber-ruby/issues/909) @brasmusson).
70
+
71
+ ### Refactoring
72
+
73
+ * Coveralls badge switch to SVG ([897](https://github.com/cucumber/cucumber-ruby/pull/897) @nickmerwin)
74
+ * Moved simplecov_setup into lib folder ([896](https://github.com/cucumber/cucumber-ruby/pull/896) @tboerger)
75
+ * Pass DocString as String ([891](https://github.com/cucumber/cucumber-ruby/pull/891) @aslakhellesoy)
76
+ * Remove core_ext/proc.rb and use Proc#source_location instead ([888](https://github.com/cucumber/cucumber-ruby/pull/888) @brasmusson)
77
+ * Move behaviour from `Cucumber::Cli::Configuration` to `Cucumber::Configuration` (@tooky, @mattwynne)
78
+ * Integrate Gherkin3 parser ([884](https://github.com/cucumber/cucumber-ruby/pull/884) (@brasmusson)
79
+
80
+ ## [v2.0.2](https://github.com/cucumber/cucumber-ruby/compare/v2.0.1...v2.0.2)
81
+
82
+ ### Bugfixes
83
+
84
+ * Revert interface change in Cucumber::Formatter::Console (which can break custom formatters in v2.0.1) ([893](https://github.com/cucumber/cucumber-ruby/issues/893) @brasmusson).
85
+ * Calculate the locations of hooks properly (so it also work between drives on Windows) ([885](https://github.com/cucumber/cucumber-ruby/issues/885) @brasmusson).
86
+
87
+ ## [v2.0.1](https://github.com/cucumber/cucumber-ruby/compare/v2.0.0...v2.0.1)
88
+
89
+ ### New Features
90
+
91
+ * Properly support symbol keys in table hashes ([840](https://github.com/cucumber/cucumber-ruby/issues/840) @dmorgan3405)
92
+ * Default require path to features unless specified explicitly. ([842](https://github.com/cucumber/cucumber-ruby/issues/842) @pdswan)
93
+ * Exit with different status codes when scenarios failed (1) vs when failed to run scenarios (2) ([#845](https://github.com/cucumber/cucumber-ruby/pull/845) @ciembor)
94
+ * Expose #status on Cucumber::RunningTestCase ([#836](https://github.com/cucumber/cucumber-ruby/pull/846) [#836](https://github.com/cucumber/cucumber-ruby/issues/836) @pdswan)
95
+ * New `--no-duration` flag on command-line ([#822](https://github.com/cucumber/cucumber-ruby/pull/822) @richarda)
96
+ * Make the Rerun Formatter consistent with the exit code ([860](https://github.com/cucumber/cucumber-ruby/pull/860) @brasmusson)
97
+ * Let the Json Formatter include results from all executed steps and hooks (and from Scenario Outlines also without the --expand option) ([851](https://github.com/cucumber/cucumber-ruby/pull/851) @brasmusson)
98
+
99
+ ### Bugfixes
100
+
101
+ * Pass tags and comments to the legacy api formatters correctly, fixes [864](https://github.com/cucumber/cucumber-ruby/pull/864) (@brasmusson).
102
+ * Properly close HTML formatter pre tag for leading comment ([828](https://github.com/cucumber/cucumber-ruby/issues/828), [854](https://github.com/cucumber/cucumber-ruby/pull/854) @pdswan)
103
+ * Make the HTML formatter handle failures in hooks ([835](https://github.com/cucumber/cucumber-ruby/issues/835) @brasmusson)
104
+ * Fix the check for multiple formatters using stdout ([826](https://github.com/cucumber/cucumber-ruby/pull/826) @brasmusson)
105
+ * Make background.feature available to formatters (backward compatibility with v1.3.x) (@brasmusson)
106
+ * Cucumber::Ast::Table.diff! is broken when using no headers ([832](https://github.com/cucumber/cucumber-ruby/pull/832) @roschaefer)
107
+ * `cucumber --i18n <invalid_language>` breaks ([#869](https://github.com/cucumber/cucumber-ruby/issues/869) (@danascheider)
108
+
109
+ ### Refactoring
110
+
111
+ * Rewrite the JUnit Formatter to the new formatter API ([855](https://github.com/cucumber/cucumber-ruby/pull/855) @brasmusson)
112
+ * Rewrite the Progress, Usage, Stepdefs formatters to the new formatter API ([859](https://github.com/cucumber/cucumber-ruby/pull/859) @brasmusson)
113
+
114
+ ## [v2.0.0](https://github.com/cucumber/cucumber-ruby/compare/v2.0.0.rc.5...v2.0.0)
115
+
116
+ ### New Features
117
+
118
+ * Support ruby 2.2 in master (@mattwynne, @tooky)
119
+ * Tell users to use the `--init` command ([818](https://github.com/cucumber/cucumber-ruby/pull/818) @olleolleolle)
120
+
121
+ ### Bugfixes
122
+
123
+ * Ensure After Hooks execute in reverse order (@tooky)
124
+ * Make console output with embedded cr/lf look correct. ([820](https://github.com/cucumber/cucumber-ruby/pull/820) @SteveDonie)
125
+
126
+ ## [v2.0.0.rc5](https://github.com/cucumber/cucumber-ruby/compare/v2.0.0.rc.4...v2.0.0.rc.5)
127
+
128
+ ### New Features
129
+
130
+ * Add `--init` command ([699](https://github.com/cucumber/cucumber-ruby/pull/699) @LGordon2)
131
+
132
+ ## Bugfixes
133
+
134
+ * Let the JUnitFormatter handle Scenario Outlines with the --expand option ([124](https://github.com/cucumber/cucumber-ruby/issues/124), [808](https://github.com/cucumber/cucumber-ruby/pull/808) @brasmusson, @richarda)
135
+ * Suggested regexes result in ambigous matches ([663](https://github.com/cucumber/cucumber-ruby/pull/663) @rwz)
136
+ * Pass when using both the --dry-run and the --strict options, unless there are undefined steps ([810](https://github.com/cucumber/cucumber-ruby/issues/810) @brasmusson)
137
+ * Handle step output correctly for Scenario Outlines with the --expand option ([806](https://github.com/cucumber/cucumber-ruby/issues/806) @brasmusson)
138
+ * Fix GBK and UTF-8 (Encoding::CompatibilityError) ([693](https://github.com/cucumber/cucumber-ruby/issues/693) @mattwynne)
139
+ * Make the scenario object available in hooks compatible with v1.3.x ([814](https://github.com/cucumber/cucumber-ruby/pull/814) @brasmusson)
140
+ * JUnit expand option ([808](https://github.com/cucumber/cucumber-ruby/pull/808) @richarda @brasmusson)
141
+ * Around hooks not executing in correct world context ([807](https://github.com/cucumber/cucumber-ruby/pull/807) @tooky)
142
+
143
+ ## [v2.0.0.rc.4](https://github.com/cucumber/cucumber-ruby/compare/v2.0.0.rc.3...2.0.0.rc.4)
144
+
145
+ ### Features
146
+
147
+ * [Add custom filters from Ruby configuration code](https://github.com/cucumber/cucumber-ruby/blob/master/features/docs/extending_cucumber/custom_filter.feature) (@mattwynne)
148
+
149
+ ### Bugfixes
150
+
151
+ * Fix missing `require Forwardable` (@tooky)
152
+ * Fix snippet suggestions ([765](https://github.com/cucumber/cucumber-ruby/pull/765) @richarda), also with i18n languages (@brasmusson)
153
+ * Fix transformation of regex with lookahead/lookbehind ([796](https://github.com/cucumber/cucumber-ruby/pull/796) @bolshakov)
154
+ * Sort scenarios by location ([789](https://github.com/cucumber/cucumber-ruby/issues/789) @mattwynne)
155
+ * Remove keyword from name property of test case object yielded to hooks ([768](https://github.com/cucumber/cucumber-ruby/issues/768) @richarda, @akostadinov)
156
+
157
+ ## [v2.0.0.rc.3](https://github.com/cucumber/cucumber-ruby/compare/v2.0.0.rc.2...v2.0.0.rc.3)
158
+
159
+ ### Bugfixes
160
+
161
+ * MultilineArgument::DataTable#diff will correctly compare to an Array (@tooky)
162
+
163
+ ## [v2.0.0.rc.2](https://github.com/cucumber/cucumber-ruby/compare/v2.0.0.rc.1...v2.0.0.rc.2)
164
+
165
+ ### Bugfixes
166
+
167
+ * World#table no longer creates invalid table objects when using an Array (@tooky, @mattwynne)
168
+
169
+ ## [v2.0.0.rc.1](https://github.com/cucumber/cucumber-ruby/compare/v2.0.0.beta.5...v2.0.0.rc.1)
170
+
171
+ ### Removed Features
172
+
173
+ * Removed support for IronRuby (@tooky @mattwynne)
174
+
175
+ ### New Features
176
+
177
+ * Let the HTML formatter store the relative path to files in the report ([697](https://github.com/cucumber/cucumber-ruby/pull/697) @idstein, @brasmusson)
178
+ * Allow cucumber.yml to parse % erb code lines ([755](https://github.com/cucumber/cucumber-ruby/pull/755) @snowe2010)
179
+ * Give each step definition a unique copy of argument objects ([760](https://github.com/cucumber/cucumber-ruby/pull/760) @tooky)
180
+
181
+ ### Bugfixes
182
+
183
+ * Add old Scenario#skip_invoke! method back (@mattwynne)
184
+ * No links to lines in backtrace under TextMate ([548](https://github.com/cucumber/cucumber-ruby/pull/548) @bilus)
185
+ * Using file:line CLI to select scenarios was running same scenario multiple times ([786](https://github.com/cucumber/cucumber-ruby/pull/786) @jdks)
186
+ * Allow spaces in filenames for rerun formatter ([793](https://github.com/cucumber/cucumber-ruby/pull/793) @callahat)
187
+
188
+ ## [v2.0.0.beta.5](https://github.com/cucumber/cucumber-ruby/compare/v2.0.0.beta.4...v2.0.0.beta.5)
189
+
190
+ * Depend on the correct version of core (@tooky)
191
+
192
+ ## [v2.0.0.beta.4](https://github.com/cucumber/cucumber-ruby/compare/v2.0.0.beta.3...v2.0.0.beta.4)
193
+ ### New Features
194
+
195
+ * Support both new and legacy formatter APIs simultaneously (@mattwynne and @tooky)
196
+
197
+ ### Bugfixes
198
+
199
+ * Localize the Scenario keyword with the --expand option ([766](https://github.com/cucumber/cucumber-ruby/pull/766) @brasmusson)
200
+ * Handle hook output appropriately in the HTML formatter ([746](https://github.com/cucumber/cucumber-ruby/pull/746), [731](https://github.com/cucumber/cucumber-ruby/issues/731), [298](https://github.com/cucumber/cucumber-ruby/pull/298) @brasmusson)
201
+ * Handle hook output appropriately in the Pretty formatter ([738](https://github.com/cucumber/cucumber-ruby/pull/738) @brasmusson)
202
+
203
+ ### Internal changes
204
+
205
+ * Re-write rerun formatter against new formatter API
206
+
207
+ ## [v2.0.0.beta.3](https://github.com/cucumber/cucumber-ruby/compare/v2.0.0.beta.2...v2.0.0.beta.3)
208
+
209
+ ### Removed Features
210
+
211
+ * The `--dotcucumber` option is no longer supported and `stepdefs.json` is no longer written. (Aslak Hellesøy)
212
+
213
+ ### New Features
214
+
215
+ * Include both outline step and expanded step in error backtrace ([730](https://github.com/cucumber/cucumber-ruby/pull/730) @brasmusson)
216
+ * Add TestCase#outline? for conditionals in Before / After hooks ([728](https://github.com/cucumber/cucumber-ruby/pull/728) [Erran Carey](https://github.com/erran))
217
+ * Support embedding images directly in HTML and JSON reports ([696](https://github.com/cucumber/cucumber-ruby/pull/696),[695](https://github.com/cucumber/cucumber-ruby/pull/695/files) @brasmusson)
218
+
219
+ ### Bugfixes
220
+
221
+ * Pass hook output to the formatters appropriately ([732](https://github.com/cucumber/cucumber-ruby/pull/732) @brasmusson)
222
+ * Added tests for, and re-added behaviour to support Scenario#failed? in hooks (Matt Wynne)
223
+ * Rescuing ArgumentError in HTML formatter so Cucumber won't stop tests due bad encoding ([690](https://github.com/cucumber/cucumber-ruby/pull/690) @awls99)
224
+ * Add back support for the DataTable API ([729](https://github.com/cucumber/cucumber-ruby/pull/729) @mattwynne and @tooky)
225
+ * Fix Windows support loading files properly ([739](https://github.com/cucumber/cucumber-ruby/issues/739) @os97673)
226
+
227
+ ## [v2.0.0.beta.2](https://github.com/cucumber/cucumber-ruby/compare/v2.0.0.beta.1...v2.0.0.beta.2)
228
+
229
+ ### Bugfixes
230
+
231
+ * Better reporting of exceptions in Before / After hooks ([723](https://github.com/cucumber/cucumber-ruby/pull/723) @mattwynne)
232
+ * Add `#source_tag_names` method to `TestCase` object passed to hooks (@mattwynne)
233
+
234
+ ## [v2.0.0.beta.1 ](https://github.com/cucumber/cucumber-ruby/compare/v1.3.8...v2.0.0.beta.1)
235
+
236
+ Version 2.0 contains a major internal redesign, extracting the core logic of
237
+ parsing and executing tests into a [separate gem](https://github.com/cucumber/cucumber-ruby-ruby-core).
238
+
239
+ Although we've tried to keep the API and behaviour consistent through this change,
240
+ there are bound to be differences our tests haven't picked up. We're still working through
241
+ a backlog of scenarios that are not yet passing. Run `cucumber -p wip` to see them
242
+ all.
243
+
244
+ ### New features
245
+
246
+ * Better snippet comment ([579](https://github.com/cucumber/cucumber-ruby/pull/579) Jeff Nyman)
247
+ * Random scenario ordering with `--order random`
248
+ * Embed plain text ([712](https://github.com/cucumber/cucumber-ruby/pull/712) @bingwei)
249
+ * Support the cucumber-reporting tools also when using Scenario Outlines ([700](https://github.com/cucumber/cucumber-ruby/pull/700) @brasmusson)
250
+
251
+ ### Features removed
252
+
253
+ * Removed deprecated StepMother and Ast::Visitor classes (Matt Wynne)
254
+ * Remove support for i18n nested step methods (Matt Wynne)
255
+ * Remove experimental .js and .py support (Matt Wynne)
256
+ * Remove Ruby 1.8.7 support, including RCov
257
+ * Spork support
258
+
259
+ ### API Changes
260
+
261
+ * String arguments passed to step definitions are immutable (frozen). This is
262
+ to prevent garbled output in case an argument gets modified. If you need to
263
+ modify an argument, `dup` it first. (Aslak Hellesøy)
264
+
265
+ ### Minor changes
266
+
267
+ * Greek examples added ([497](https://github.com/cucumber/cucumber-ruby/issues/497) @rousisk)
268
+
269
+ ## [v1.3.16](https://github.com/cucumber/cucumber-ruby/compare/v1.3.15...v1.3.16)
270
+
271
+ * Pass output from the step definition on to the JSON formatter ([701](https://github.com/cucumber/cucumber-ruby/pull/701) @brasmusson)
272
+ * Add RSpec 3 test double support ([689](https://github.com/cucumber/cucumber-ruby/pull/689) @cyphactor)
273
+ * Fix bug with rerun formatter and `--expand` option ([710](https://github.com/cucumber/cucumber-ruby/pull/710) @brasmusson)
274
+
275
+ ## [v1.3.15](https://github.com/cucumber/cucumber-ruby/compare/v1.3.14...v1.3.15)
276
+
277
+ * Fixed intermittent ConcurrencyError seen in JRuby
278
+ ([671](https://github.com/cucumber/cucumber-ruby/issues/670) @cbusbey)
279
+
280
+ ## [v1.3.14](https://github.com/cucumber/cucumber-ruby/compare/v1.3.13...v1.3.14)
281
+
282
+ * Rerun formatter includes all scenarios when the background fails
283
+ ([660](https://github.com/cucumber/cucumber-ruby/issues/660),
284
+ [661](https://github.com/cucumber/cucumber-ruby/pull/661) @brasmusson)
285
+
286
+ ## [v1.3.13](https://github.com/cucumber/cucumber-ruby/compare/v1.3.12...v1.3.13)
287
+
288
+ * Rerun formatter includes all scenarios when the background fails
289
+ ([654](https://github.com/cucumber/cucumber-ruby/pull/654) @brasmusson)
290
+
291
+ ## [v1.3.12](https://github.com/cucumber/cucumber-ruby/compare/v1.3.11...v1.3.12)
292
+
293
+ * Use MultiTest to handle assertions library selection (@tooky)
294
+ * Adds full support for rails 4.1 / Minitest
295
+
296
+ ## [v1.3.11](https://github.com/cucumber/cucumber-ruby/compare/v1.3.10...v1.3.11)
297
+
298
+ * Add Ruby 2.1 Support ([#644](https://github.com/cucumber/cucumber-ruby/pull/644) @tooky, @chrismdp)
299
+
300
+ ## [v1.3.10](https://github.com/cucumber/cucumber-ruby/compare/v1.3.9...v1.3.10)
301
+
302
+ * Fixed "nil:NilClass (NoMethodError)" problem for auto-formatting ([599](https://github.com/cucumber/cucumber-ruby/pull/599) @jmcaffee)
303
+
304
+ ## [v1.3.9](https://github.com/cucumber/cucumber-ruby/compare/v1.3.8...v1.3.9)
305
+
306
+ * Disable minitest autorun after loading support files (@tooky)
307
+ * Add `Ast::Table#map_column` for non-mutating column mapping (@tooky)
308
+ * Remove deprecation warnings on `Ast::Table` (@tooky)
309
+ * Fixed ArgumentError for NoStepMatch#format_args ([587](https://github.com/cucumber/cucumber-ruby/pull/587) @jshraibman-mdsol)
310
+
311
+ ## [v1.3.8](https://github.com/cucumber/cucumber-ruby/compare/v1.3.7...v1.3.8)
312
+
313
+ * Make the MultiJson dependency less restrictive (@tooky)
314
+
315
+ ## [1.3.7](https://github.com/cucumber/cucumber-ruby/compare/v1.3.6...v1.3.7)
316
+
317
+ * Fixed incorrect html formatter behaviour when background step fails
318
+ ([520](https://github.com/cucumber/cucumber-ruby/issues/520),
319
+ [521](https://github.com/cucumber/cucumber-ruby/issues/521) @mlex)
320
+
321
+ * Fixed problem with printing badly formatted backtrace for failed background
322
+ ([522](https://github.com/cucumber/cucumber-ruby/issues/522),
323
+ [523](https://github.com/cucumber/cucumber-ruby/issues/523) @mlex)
324
+
325
+ * required Gherkin version bumped to 2.12.1
326
+
327
+ * All mutating methods of AST::Table deprecated
328
+ ([505](https://github.com/cucumber/cucumber-ruby/issues/505),
329
+ [525](https://github.com/cucumber/cucumber-ruby/issues/525) @adbatista)
330
+
331
+ * AST::Table#map_headers doesn't use #map_headers! anymore
332
+ ([505](https://github.com/cucumber/cucumber-ruby/issues/528) @adbatista)
333
+
334
+ ## [1.3.6](https://github.com/cucumber/cucumber-ruby/compare/v1.3.5...v1.3.6)
335
+
336
+ * Html formatter fixed to not mark passes scenarios with tables as pending
337
+ ([493](https://github.com/cucumber/cucumber-ruby/issues/493) Oleg Sukhodolsky)
338
+
339
+ ## [1.3.5](https://github.com/cucumber/cucumber-ruby/compare/v1.3.4...v1.3.5)
340
+
341
+ * Fix Rails 4 Minitest autorun problems. ([501](https://github.com/cucumber/cucumber-ruby/issues/501) @mattwynne)
342
+
343
+ ## [1.3.4](https://github.com/cucumber/cucumber-ruby/compare/v1.3.3...v1.3.4)
344
+
345
+ * JUnit formatter fixed to report skipped scenarios correctly ([496](https://github.com/cucumber/cucumber-ruby/issues/496) @ambirag)
346
+
347
+ ## [1.3.3](https://github.com/cucumber/cucumber-ruby/compare/v1.3.2...v1.3.3)
348
+
349
+ * Fix compatability with MiniTest 5.0 ([#456](https://github.com/cucumber/cucumber-ruby/issues/456) Matt Wynne)
350
+ * Warn that Spork support is broken (Steve Tooke)
351
+ * Fix error with Ruby 2.0.0 and `Cucumber::RUBY_1_8_7`
352
+ ([#492](https://github.com/cucumber/cucumber-ruby/issues/492) Matt Wynne)
353
+ * Use new Rubygems API to look for bundler ([#448](https://github.com/cucumber/cucumber-ruby/issues/448) Matt Wynne)
354
+
355
+ ## [1.3.2](https://github.com/cucumber/cucumber-ruby/compare/v1.3.1...v1.3.2)
356
+
357
+ ### Bugfixes
358
+ * Fixed ugly NoMethodError when a Scenario Outline has no Examples
359
+ ([#438](https://github.com/cucumber/cucumber-ruby/issues/438) Steve Tooke)
360
+
361
+ ## [1.3.1](https://github.com/cucumber/cucumber-ruby/compare/v1.3.0...v1.3.1)
362
+
363
+ ### Bugfixes
364
+ * Fixed typo which breaks unicode.rb on Windows (Oleg Sukhodolsky)
365
+
366
+ ## [1.3.0](https://github.com/cucumber/cucumber-ruby/compare/v1.2.5...v1.3.0)
367
+
368
+ ### New Features
369
+ * Faster features, thanks to in-process Aruba. (Aslak Hellesøy)
370
+ * Add lib to default load path
371
+ ([#162](https://github.com/cucumber/cucumber-ruby/issues/162) Steve Tooke)
372
+ * Add snippet type to support different type of ruby snippets.
373
+ ([#390](https://github.com/cucumber/cucumber-ruby/pull/390) Roel van Dijk)
374
+ * Call nested steps using any language keywords ([#433](https://github.com/cucumber/cucumber-ruby/pull/433) Tomohiko Himura)
375
+
376
+ ### Bugfixes
377
+ * Update watir example ([#427](https://github.com/cucumber/cucumber-ruby/issues/427)) Luiz Guilherme D'Abruzzo Pereira
378
+ * Ensure that cucumber.yml is only parsed once ([#416](https://github.com/cucumber/cucumber-ruby/issues/416)) Steve Tooke
379
+ * Improve rake task report on failure ([#400](https://github.com/cucumber/cucumber-ruby/issues/400) Andrey Vakarev
380
+ * Show details of nested steps in backtraces
381
+ ([#69](https://github.com/cucumber/cucumber-ruby/issues/69)) Steve Tooke
382
+ * Filter out control characters from CDATA section of JUnit formatter output.
383
+ ([#383](https://github.com/cucumber/cucumber-ruby/issues/383) @teacup-on-rockingchair)
384
+ * Fix problem with non-ascii characters in file path
385
+ ([#150](https://github.com/cucumber/cucumber-ruby/issues/150) Oleg Sukhodolsky)
386
+ * Fix problem loading ruby files in project root directory
387
+ ([#269](https://github.com/cucumber/cucumber-ruby/issues/269) Steve Tooke)
388
+ * Fix JsonPretty formatter problem
389
+ ([#197](https://github.com/cucumber/cucumber-ruby/issues/197) Oleg Sukhodolsky)
390
+ * Don't display multi-line strings when --no-multiline is passed
391
+ ([#201](https://github.com/cucumber/cucumber-ruby/issues/201) David Kowis)
392
+ * Moved the profile information output to a callback of the formatter
393
+ ([#175](https://github.com/cucumber/cucumber-ruby/issues/175) David Kowis)
394
+ * Fix html formatter to not mark skipped/unimplemented steps as failed
395
+ ([#337](https://github.com/cucumber/cucumber-ruby/issues/337) Oleg Sukhodolsky)
396
+ * Allow duplication for format+output pair in command line
397
+ ([#434](https://github.com/cucumber/cucumber-ruby/issues/434) David Lantos)
398
+ * Better delegation to IO in Cucumber::Formatter::Interceptor::Pipe
399
+ ([#312](https://github.com/cucumber/cucumber-ruby/issues/312) Oleg Sukhodolsky)
400
+
401
+ ## [1.2.5](https://github.com/cucumber/cucumber-ruby/compare/v1.2.3...v1.2.5)
402
+
403
+ * Upgrade Gherkin version to remove warnings when running on JRuby. ([#393](https://github.com/cucumber/cucumber-ruby/issues/393) Oleg Sukhodolsky)
404
+ * Do not use TagExpression.eval() which is deprecated in Gherkin 2.11.7 ([#420](https://github.com/cucumber/cucumber-ruby/issues/420) Oleg Sukhodolsky)
405
+
406
+ ## 1.2.4
407
+
408
+ Yanked. See ([#428](https://github.com/cucumber/cucumber-ruby/issues/428)).
409
+
410
+ ## [1.2.3](https://github.com/cucumber/cucumber-ruby/compare/v1.2.2...v1.2.3)
411
+
412
+ ### Bugfixes
413
+ * Fix problem with rake task for jruby and ruby installed from packages on Ubuntu ([#386](https://github.com/cucumber/cucumber-ruby/issues/386), [#388](https://github.com/cucumber/cucumber-ruby/issues/388) @y-higuchi)
414
+ * Fix embedding images in json ([#315](https://github.com/cucumber/cucumber-ruby/issues/315) Oleg Sukhodolsky)
415
+
416
+ ## [1.2.2](https://github.com/cucumber/cucumber-ruby/compare/v1.2.1...v1.2.2)
417
+
418
+ ### New Features
419
+ * Ruby 2.0.0 support ([#377](https://github.com/cucumber/cucumber-ruby/issues/377) Matt Wynne & [#357](https://github.com/cucumber/cucumber-ruby/issues/357) @charliesome)
420
+ * Capture duration value for json formatter ([#329](https://github.com/cucumber/cucumber-ruby/issues/329) Rick Beyer)
421
+ * Added support for Hindi (hi), although some systems may need to install fonts which support the Devanagari script.
422
+ * Obey program suffix when invoking bundler ([#324](https://github.com/cucumber/cucumber-ruby/issues/324) Eric Hodel)
423
+
424
+ ### Bugfixes
425
+ * Fix class loading problems --format option had ([#345](https://github.com/cucumber/cucumber-ruby/issues/345), [#346](https://github.com/cucumber/cucumber-ruby/issues/346) @ksylvest)
426
+ * Exit with failure status when interrupted ([#299](https://github.com/cucumber/cucumber-ruby/issues/299) @aaronjensen)
427
+ * Cannot map table headers after table hashes is referenced ([#275](https://github.com/cucumber/cucumber-ruby/issues/275) @chrisbloom7 / Matt Wynne)
428
+ * (before|after)_step aren't called when scenario outline's table is processed ([#284](https://github.com/cucumber/cucumber-ruby/issues/284) Oleg Sukhodolsky)
429
+ * Raise exception when remote socket end disconnects using wire protocol ([#348](https://github.com/cucumber/cucumber-ruby/issues/348) @rdammkoehler)
430
+ * Fix --dry-run option ignored when set via profile ([#248](https://github.com/cucumber/cucumber-ruby/issues/248) / [#255](https://github.com/cucumber/cucumber-ruby/issues/255) Igor Afonov)
431
+ * More clear suggested ruby code for undefined steps ([#328](https://github.com/cucumber/cucumber-ruby/issues/328) / [#331](https://github.com/cucumber/cucumber-ruby/issues/331) @martco)
432
+ * Fix exception in Html formatter with --expand mode and undefined steps ([#336](https://github.com/cucumber/cucumber-ruby/issues/336) Roberto Decurnex)
433
+ * Fix Table.diff! problem with :surplus_row => false and interleaved surplus rows ([#220](https://github.com/cucumber/cucumber-ruby/issues/220))
434
+
435
+ ## [1.2.1](https://github.com/cucumber/cucumber-ruby/compare/v1.2.0...v1.2.1)
436
+
437
+ ### New Features
438
+ * Updated to gherkin 2.11.0. (Aslak Hellesøy)
439
+
440
+ ## [1.2.0](https://github.com/cucumber/cucumber-ruby/compare/v1.1.9...v1.2.0)
441
+
442
+ ### Bugfixes
443
+ * Fix backtraces in JRuby ([#266](https://github.com/cucumber/cucumber-ruby/issues/266) Andrew Kiellor)
444
+
445
+ ### New Features
446
+ * Extracted the PDF formatter into a separate gem. ([#241](https://github.com/cucumber/cucumber-ruby/issues/241) Matt Wynne)
447
+ * Remove dependency on term/ansicolor ([#43](https://github.com/cucumber/cucumber-ruby/issues/43) Joe Fiorini)
448
+ * Methods for Step Definitions ([#168](https://github.com/cucumber/cucumber-ruby/issues/168) Giles Alexander)
449
+ * Add file:line to step events in formatter API ([#181](https://github.com/cucumber/cucumber-ruby/issues/181) Roman Chernyatchik)
450
+ * Collapsible backgrounds in HTML formatter ([#182](https://github.com/cucumber/cucumber-ruby/issues/182) Niklas H)
451
+ * Slightly cleaner regexp suggestions ([#237](https://github.com/cucumber/cucumber-ruby/issues/237) meyering)
452
+ * Allow for --no-drb command-line option ([#252](https://github.com/cucumber/cucumber-ruby/issues/252) Chase Stubblefield)
453
+ * Add misplaced_col option when diffing tables ([#212](https://github.com/cucumber/cucumber-ruby/issues/212) Steve Richert)
454
+ * JUnit formatter, classname contains only the feature's name ([#193](https://github.com/cucumber/cucumber-ruby/issues/193) @litvinok)
455
+ * Include the output $stderr and $stdout in JUnit formatted XML ([#259](https://github.com/cucumber/cucumber-ruby/issues/259) R. Tyler Croy)
456
+
457
+ ## [1.1.9](https://github.com/cucumber/cucumber-ruby/compare/v1.1.8...v1.1.9)
458
+
459
+ ### Bugfixes
460
+ * Removed deprecation warning for `source_tag_names`. It's not deprecated anymore. (Aslak Hellesøy)
461
+
462
+ ## [1.1.8](https://github.com/cucumber/cucumber-ruby/compare/v1.1.7...v1.1.8)
463
+
464
+ ### Bugfixes
465
+ * Column mapping dangerously applied twice to the same cell! ([#202](https://github.com/cucumber/cucumber-ruby/issues/202), [#208](https://github.com/cucumber/cucumber-ruby/pull/208) Brian Dunn)
466
+
467
+ ### New Features
468
+ * Don't pollute RbWorld with the AnsiEscapes methods ([#219](https://github.com/cucumber/cucumber-ruby/issues/219), [#221](https://github.com/cucumber/cucumber-ruby/pull/221) Ben Woosley)
469
+
470
+ ## [1.1.7](https://github.com/cucumber/cucumber-ruby/compare/v1.1.6...v1.1.7)
471
+
472
+ ### Bugfixes
473
+
474
+ * Finish off backwards compatability fix for Capybara ([#229](https://github.com/cucumber/cucumber-ruby/pull/229) Cezary Baginski)
475
+
476
+ ## [1.1.6](https://github.com/cucumber/cucumber-ruby/compare/v1.1.5...v1.1.6)
477
+
478
+ ### New features
479
+
480
+ * Added `file_colon_line` to `stepdefs.json` (outputted by `--dotcucumber`). ([#214](https://github.com/cucumber/cucumber-ruby/pull/214) MOROHASHI Kyosuke)
481
+
482
+ ### Bugfixes
483
+
484
+ * Release 1.1.5 unintentionally broke backwards compatibility in some APIs we hadn't considered were used outside of cucumber.
485
+ Well, it was, in the popular Capybara browser automation tool, so we added back the API we removed. See the history for details. (Aslak Hellesøy)
486
+ * After some infantile bickering about a trivial bug that any hipster startup ruby programmer could have circumvented by using a fork with a fix,
487
+ I finally sucked up to a horde of people and made HTML reports work again (I'm gonna rename them TPS reports). ([#203](https://github.com/cucumber/cucumber-ruby/pull/203) Jon Merrifield)
488
+
489
+ ## [1.1.5](https://github.com/cucumber/cucumber-ruby/compare/v1.1.4...v1.1.5)
490
+
491
+ ### New Features
492
+
493
+ * Upgraded to gherkin 2.8.0 (Aslak Hellesøy)
494
+
495
+ ### Bugfixes
496
+
497
+ * Background fails, but build succeeds ([#205](https://github.com/cucumber/cucumber-ruby/issues/205) tcwitte)
498
+
499
+ ## [1.1.4](https://github.com/cucumber/cucumber-ruby/compare/v1.1.3...v1.1.4)
500
+
501
+ ### New Features
502
+
503
+ * Upgrade to Gherkin 2.7.1 (Aslak Hellesøy)
504
+
505
+ ## [1.1.3](https://github.com/cucumber/cucumber-ruby/compare/v1.1.2...v1.1.3)
506
+
507
+ ### New Features
508
+
509
+ * Generate stepdef metadata with --dotcucumber. Useful for Cukepatch. (Aslak Hellesøy)
510
+ * Show class name of exceptions in the HTML formatter ([#159](https://github.com/cucumber/cucumber-ruby/pull/159) Jari Bakken)
511
+ * Deferred table header and column mappings ([#163](https://github.com/cucumber/cucumber-ruby/pull/163) Richard Lawrence)
512
+
513
+ ### Bugfixes
514
+
515
+ * Escape exceptions in HTML formatter ([#178](https://github.com/cucumber/cucumber-ruby/pull/178) leachdaniel)
516
+ * Retry when feature_element returns failed ([#172](https://github.com/cucumber/cucumber-ruby/pull/172) Charles Finkel)
517
+ * Rerun formatter output does not include failing scenario outline examples ([#57](https://github.com/cucumber/cucumber-ruby/issues/57) Jan Brauer)
518
+
519
+ ## [1.1.2](https://github.com/cucumber/cucumber-ruby/compare/v1.1.1...v1.1.2)
520
+
521
+ ### Changed features
522
+
523
+ * Break long lines in output. Only needed for better output formatting in the Cucumber Book! (Aslak Hellesøy)
524
+
525
+ ### Changed features
526
+
527
+ * Deprecated i18n methods in World, and added a new #step method to use instead. ([#68](https://github.com/cucumber/cucumber-ruby/issues/68) Matt Wynne)
528
+ * The JSON formatter output has changed slightly. Old format:
529
+
530
+ {
531
+ features: [feature here]
532
+ }
533
+
534
+ New format:
535
+
536
+ [feature here]
537
+
538
+ Also see [Gherkin 2.6.0 History](https://github.com/cucumber/gherkin/blob/master/History.md) for info about new `id` and `uri` elements in the JSON.
539
+
540
+ ## [1.1.0](https://github.com/cucumber/cucumber-ruby/compare/v1.0.6...v1.1.0)
541
+
542
+ ### Changed features
543
+ * The JSON formatter output has changed. See [Gherkin 2.5.0 History](https://github.com/cucumber/gherkin/blob/master/History.md) (Aslak Hellesøy)
544
+
545
+ ## [1.0.6](https://github.com/cucumber/cucumber-ruby/compare/v1.0.5...v1.0.6)
546
+
547
+ ### Bugfixes
548
+ * Work around rubygems/yaml utter retardedness ([#136](https://github.com/cucumber/cucumber-ruby/issues/136) Aslak Hellesøy)
549
+
550
+ ## [1.0.5](https://github.com/cucumber/cucumber-ruby/compare/v1.0.4...v1.0.5)
551
+
552
+ ### Bugfixes
553
+
554
+ * Gemspec corrupted in 1.0.4 (I had to upgrade my rubygems to 1.8.10 to fix it). ([#136](https://github.com/cucumber/cucumber-ruby/issues/136) Aslak Hellesøy)
555
+
556
+ ## [1.0.4](https://github.com/cucumber/cucumber-ruby/compare/v1.0.3...v1.0.4)
557
+
558
+ ### Bugfixes
559
+
560
+ * Guard against the require succeeding, but not properly loading a module. ([#93](https://github.com/cucumber/cucumber-ruby/pull/93) Christopher Meiklejohn)
561
+ * Cmdline arguments parsing error if --drb is enabled. ([#117](https://github.com/cucumber/cucumber-ruby/issues/117) Roman Chernyatchik)
562
+ * Replace capturing groups with non-capturing in RbTransform#to_s ([#106](https://github.com/cucumber/cucumber-ruby/pull/106) Thomas Walpole)
563
+ * Patched unmatched message in HTML formatter. (Nikita)
564
+ * Overriding a method that causes a NoMethodError when a Before hook is called on a feature run that has no scenarios. (ccthiel)
565
+
566
+ ## [1.0.3](https://github.com/cucumber/cucumber-ruby/compare/v1.0.2...v1.0.3)
567
+
568
+ ### Bugfixes
569
+ * Do not escape the replaced entity ([#126](https://github.com/cucumber/cucumber-ruby/pull/126) Jonathan Tron)
570
+
571
+ ### New Features
572
+ * DocStrings now have a content_type ([#132](https://github.com/cucumber/cucumber-ruby/issues/132) Matt Wynne)
573
+
574
+ ## [1.0.2](https://github.com/cucumber/cucumber-ruby/compare/v1.0.1...v1.0.2)
575
+
576
+ ### Bugfixes
577
+ * Cucumber 1.0.1 breaks cuke4duke ([#104](https://github.com/cucumber/cucumber-ruby/issues/104) Aslak Hellesøy)
578
+
579
+ ### New Features
580
+ * Better line truncation if $CUCUMBER_TRUNCATE_OUTPUT has a max line length value. (Aslak Hellesøy)
581
+
582
+ ### Changes Features
583
+ * --no-source also excludes location from the summary. (Aslak Hellesøy)
584
+
585
+ ## [1.0.1](https://github.com/cucumber/cucumber-ruby/compare/v1.0.0...v1.0.1)
586
+
587
+ ### Bugfixes
588
+ * Removed extra colons emitted by rerun formatter ([#99](https://github.com/cucumber/cucumber-ruby/pull/99) Juan Manuel Barreneche)
589
+ * cucumber 1.0.0 wrong number of arguments error when generating json format on jruby for windows ([#97](https://github.com/cucumber/cucumber-ruby/issues/97) (Aslak Hellesøy)
590
+ * Recent change to junit.rb breaks on Windows ([#81](https://github.com/cucumber/cucumber-ruby/issues/81), [#86](https://github.com/cucumber/cucumber-ruby/pull/86) Johnlon, Aslak Hellesøy)
591
+ * Cucumber fails on nil and does not print out failed tests ([#95](https://github.com/cucumber/cucumber-ruby/pull/95) Nikita)
592
+ * Javascript code is not being displayed in HTML output ([#58](https://github.com/cucumber/cucumber-ruby/issues/58) Aslak Hellesøy)
593
+
594
+ ### New Features
595
+ * If the CUCUMBER_TRUNCATE_OUTPUT environment variable is set, lines will be truncated. Used by the Cucumber book. (Aslak Hellesøy)
596
+
597
+ ## [1.0.0](https://github.com/cucumber/cucumber-ruby/compare/v0.10.6...v1.0.0)
598
+
599
+ Yipeeeeeeeee!
600
+
601
+ ### New Features
602
+ * Use Rake 1.9.2 for development (Aslak Hellesøy)
603
+ * Rake task exits with an error if rcov is true and we're on Ruby 1.9.x (Aslak Hellesøy)
604
+ * Started implementation of cucumber-features (Mike Sassak, Julien Biezemans, Aslak Hellesøy)
605
+
606
+ ## [0.10.6](https://github.com/cucumber/cucumber-ruby/compare/v0.10.5...v0.10.6)
607
+
608
+ ### New Features
609
+ * API docs at http://cukes.info/cucumber/api/ruby/latest/
610
+
611
+ ### Bugfixes
612
+ * Fixed a regression in the HTML formatter's #embed implementation (#77 Aslak Hellesøy)
613
+
614
+ ## [0.10.5](https://github.com/cucumber/cucumber-ruby/compare/v0.10.3...v0.10.5)
615
+
616
+ (0.10.4 was forgotten!)
617
+
618
+ ### Changed features
619
+ * The announce method is deprecated. Use puts instead (#67 Aslak Hellesøy)
620
+ * The announce_world method is gone. Use puts(self) instead (#67 Aslak Hellesøy)
621
+
622
+ ### New Features
623
+ * Better JUnit formatter support for sub directories and scenario outlines (#59, #61, #62 Matt Simpson, Kenny Ortmann)
624
+
625
+ ### Bugfixes
626
+ * Fix for Gem.available? deprecation warning (#75 Jake Benilov)
627
+ * Update URLs to reflect Cucumber's new location on Github (Jake Benilov)
628
+
629
+ ## [0.10.3](https://github.com/cucumber/cucumber-ruby/compare/v0.10.2...v0.10.3)
630
+
631
+ ### New Features
632
+ * Better JUnit formatter support for sub directories and scenario outlines (#59 Matt Simpson)
633
+ * Coloured output that spans several lines sets colours for each line. (Aslak Hellesøy)
634
+ * New bundler attribute on the Rake task, allowing faster execution. (Aslak Hellesøy)
635
+ * Fix Table#rows cell ordering in ruby 1.8. (#47_github Brian Dunn)
636
+ * JUnit Formatter: record skipped/pending/undefined scenario results (#655 meeee)
637
+
638
+ ## [0.10.2](https://github.com/cucumber/cucumber-ruby/compare/v0.10.1...v0.10.2)
639
+
640
+ ### Bugfixes
641
+ * Neuter both MiniTest::Unit and Test::Unit's overzealous test runners. (Aslak Hellesøy)
642
+
643
+ ## [0.10.1](https://github.com/cucumber/cucumber-ruby/compare/v0.10.0...v0.10.1)
644
+
645
+ ### New Features
646
+ * The #embed method can take a 3rd optional label argument. In the HTML report that's used for the link title. (Pat Leamon)
647
+ * Render .wire files through ERB (Kevin Olbrich)
648
+ * Happy coexistence with Rake 0.9 (Cezary Baginski)
649
+ * Add -l, --lines option just like rspec's (Gabriel Horner)
650
+ * Support for named transforms. See features/transforms.feature (Matt Wynne)
651
+ * Experimental support for non-UTF-8 encoding in feature files. A "# encoding=iso-8859-1" header (or any other encoding)
652
+ in the file will read the file in with that encoding and convert it to UTF-8 before it's parsed with gherkin.
653
+ Step definition arguments will be passed in UTF-8 encoded strings regardless of the encoding in the feature file.
654
+ * Better error message if there is no features directory (David Lindes)
655
+ * Include scenario file reference in html formatter output (Brandon Faloona)
656
+ * Relax gem dependencies to use >= instead of ~> (Rob Slifka, Aslak Hellesøy)
657
+
658
+ ### Bugfixes
659
+ * Missing methods in Runtime::ForProgrammingLanguages - make v8 example run again (Chris Mytton)
660
+ * Features files are sorted before they are executed, giving consistent results across different OSes (Guewen Baconnier)
661
+ * Remove duplicate lines in backtraces in the HTML report (Jari Bakken)
662
+
663
+ ## [0.10.0](https://github.com/cucumber/cucumber-ruby/compare/v0.9.4...v0.10.0)
664
+
665
+ We're bumping the minor number in this release because there are some incompatible changes in the JSON support.
666
+ This should not affect users. The major new feature in this release is ANSICON support for Windows users.
667
+
668
+ ### New Features
669
+ * map_column! should allow a string or symbol as the column name passed in (Ed Schmalzle)
670
+ * Deprecate win32console and use ANSICON instead (Boško Ivanišević)
671
+ * Set builder dependency to >= 2.1.2, which will work with both Rails 2 and 3. (bUg., David Trasbo, Matt Wynne)
672
+
673
+ ### Bugfixes
674
+ * Changed the HTML formatter to show Scenarios with 'Pending' steps to be yellow rather than green (Arti)
675
+
676
+ ### Changed Features
677
+ * JSON output now contains optional "match", "result" and "embeddings" elements underneath each step. (Aslak Hellesøy)
678
+
679
+ ## [0.9.4](https://github.com/cucumber/cucumber-ruby/compare/v0.9.3...v0.9.4)
680
+
681
+ ### Bugfixes
682
+ * Superfluous space after step_keyword value in snippet_text message (#679 Aslak Hellesøy)
683
+ * Better Handling for "puts" in HTML formatter (#676 Stephen Kennedy)
684
+ * Too many open files - getcwd (#666 Aslak Hellesøy)
685
+ * Cucumber 0.9.3 prevents Test::Unit from running (#677 Aslak Hellesøy)
686
+ * Performance degradation when running feature files with over 1000 steps (#675 Dimitri Geshef)
687
+
688
+ ## [0.9.3](https://github.com/cucumber/cucumber-ruby/compare/v0.9.2...v0.9.3)
689
+
690
+ ### Bugfixes
691
+ * Better JSON representation of Regexps (Aslak Hellesøy)
692
+ * Update to work with latest spork (Matt Wynne)
693
+ * Prevent MiniTest::Unit#autorun from running in at_exit hook. (Aslak Hellesøy)
694
+ * Fixed incorect --help for --strict. It fails on both pending and undefined. (Aslak Hellesøy)
695
+
696
+ ## [0.9.2](https://github.com/cucumber/cucumber-ruby/compare/v0.9.1...v0.9.2)
697
+
698
+ ### Bugfixes
699
+ * Too many open files - getcwd (#666 Aslak Hellesøy)
700
+
701
+ ## [0.9.1](https://github.com/cucumber/cucumber-ruby/compare/v0.9.0...v0.9.1)
702
+
703
+ ### Bugfixes
704
+ * Just a minor internal change to make Cuke4Duke happy. (Aslak Hellesøy)
705
+
706
+ ## [0.9.0](https://github.com/cucumber/cucumber-ruby/compare/v0.8.5...v0.9.0)
707
+
708
+ Maintenance release for the new release of Gherkin 2.2.3.
709
+
710
+ ### Bugfixes
711
+ * Compatibility with rspec-2.0.0.beta.19 mocks (Aslak Hellesøy)
712
+ * JUnit formatter now puts output in CDATA sections. (Dmitry Amelchenko)
713
+
714
+ ### New features
715
+ * --dry-run now shows snippets (Ben Hall)
716
+ * Use Bundler for dependency management. (Aslak Hellesøy, Rob Hunter)
717
+
718
+ ### Removed features
719
+ * No more Jeweler
720
+
721
+ ### Internal changes
722
+ * Big refactoring of StepMother (Matt Wynne)
723
+
724
+ ## [0.8.5](https://github.com/cucumber/cucumber-ruby/compare/v0.8.4...v0.8.5)
725
+
726
+ ### Bugfixes
727
+ * Location of stepdefs outside the project (in gems) are reported incorrectly. (#583 Aslak Hellesøy)
728
+ * Cucumber::Rake::Task uses 'bundle exec' when using bundler (#626 John Firebaugh)
729
+
730
+ ## [0.8.4](https://github.com/cucumber/cucumber-ruby/compare/v0.8.3...v0.8.4)
731
+
732
+ ### Bugfixes
733
+ * Fix "Errno::EADDRNOTAVAIL" errors that may be received with spork on Snow Leopard. (Lucas Mundim)
734
+
735
+ ### New features
736
+ * Detect limit for negative tags (#636 Aslak Hellesøy)
737
+ * Support for RSpec 2 doubles (mocks and stubs) (Aslak Hellesøy)
738
+
739
+ ## [0.8.3](https://github.com/cucumber/cucumber-ruby/compare/v0.8.2...v0.8.3)
740
+
741
+ Just a quick bugfix release.
742
+
743
+ ### Bugfixes
744
+ * Scenario outlines that fail with exception exit process (Aslak Hellesøy)
745
+
746
+ ## [0.8.2](https://github.com/cucumber/cucumber-ruby/compare/v0.8.1...v0.8.2)
747
+
748
+ Bugfix release which most importantly fixes an issue with the gem's gemspec.
749
+
750
+ ### Bufixes
751
+ * Fix v8 support which broke in 0.8.1 because of new gherkin API (Aslak Hellesøy)
752
+ * Call Around hooks for each example in scenario outlines. (John Firebaugh)
753
+ * Remove extraneous tmp file from the gemspec, which broke installation in some environments. (Fernando Brito, Aslak Hellesøy)
754
+ * 0.8.1 fails on JRuby (#627 Aslak Hellesøy)
755
+
756
+ ### New Features
757
+ * JavaScript to Hide/Expand Scenarios in HTML report (#621 stkenned)
758
+
759
+ ## [0.8.1](https://github.com/cucumber/cucumber-ruby/compare/v0.8.0...v0.8.1)
760
+
761
+ ### Bufixes
762
+ * generate test report fails: ast/outline_table.rb fails in status() (#615 Aslak Hellesøy)
763
+
764
+ ### New Features
765
+ * Undefined steps with integers (Given 3 cukes) will generate snippets like (Given /(\d+) cukes/). (Aslak Hellesøy)
766
+
767
+ ## [0.8.0](https://github.com/cucumber/cucumber-ruby/compare/v0.7.3...v0.8.0)
768
+
769
+ ### Bugfixes
770
+ * Require profile option causes a NoMethodError for Cucumber with JRuby (#601 John Firebaugh)
771
+ * Deprecations warnings with Spork + Cucumber + RSpec 2.0. (#619 Brian Cardarella)
772
+ * Fixed edge case compatibility problem with Gherkin 1.0.30. (#618 Aslak Hellesøy)
773
+
774
+ ### New features
775
+ * Better table support in the V8 Javascript support (Joseph Wilk)
776
+ * JSON formatters (json and json_pretty). (Jari Bakken)
777
+
778
+ ### Removed features
779
+ * The --no-diff option is removed. If you're using RSpec you will*always* get diffs. (Aslak Hellesøy)
780
+
781
+ ### Changed Features
782
+ * Upgraded to be compatible with rspec 2.0.0.beta.10 (Aslak Hellesøy)
783
+ * Ruby snippets will use "([^"]*)" instead of "([^\"]*)"$/ - wasn't properly fixed in 0.7.1. (Aslak Hellesøy)
784
+ * Preserve the order features files are passed and use this for execution order (#617 Joseph Wilk)
785
+
786
+ ## [0.7.3](https://github.com/cucumber/cucumber-ruby/compare/v0.7.2...v0.7.3)
787
+
788
+ ### New Features
789
+ * Table cells can now contain escaped bars - \| and escaped backslashes - \\. (Gregory Hnatiuk, Aslak Hellesøy)
790
+ * Added support for Around hooks. (#605 John Firebaugh)
791
+
792
+ ## [0.7.2](https://github.com/cucumber/cucumber-ruby/compare/v0.7.1...v0.7.2)
793
+
794
+ ### Bugfixes
795
+ * REALLY add backwards compatibility fix (with deprecation warning) for legacy 0.6.4 formatters. (Aslak Hellesøy)
796
+
797
+ ## [0.7.1](https://github.com/cucumber/cucumber-ruby/compare/v0.7.0...v0.7.1)
798
+
799
+ ### Bugfixes
800
+ * Add backwards compatibility fix (with deprecation warning) for legacy 0.6.4 formatters. (Aslak Hellesøy)
801
+
802
+ ### Changed Features
803
+ * Ruby and Javascript snippets will use "([^"]*)" instead of "([^\"]*)"$/ (Aslak Hellesøy)
804
+
805
+ ## [0.7.0](https://github.com/cucumber/cucumber-ruby/compare/v0.7.0.beta.8...v0.7.0)
806
+
807
+ This release is an important milestone for Cucumber. A new parser (the gherkin gem) parses feature
808
+ files 50-100 times faster than with 0.6.x and previous releases. Make sure you read the upgrade
809
+ instructions! http://wiki.github.com/aslakhellesoy/cucumber/upgrading
810
+
811
+ ## [0.7.0.beta.8](https://github.com/cucumber/cucumber-ruby/compare/v0.7.0.beta.7...v0.7.0.beta.8)
812
+
813
+ ### Bugfixes
814
+ * Inconsistent order of execution Background and Before in 0.7.0.beta.2 (#600 Mike Sassak)
815
+ * Make sure both lexing and parsing errors are captured and reported with line number (Gregory Hnatiuk)
816
+
817
+ ## [0.7.0.beta.7](https://github.com/cucumber/cucumber-ruby/compare/v0.7.0.beta.6...v0.7.0.beta.7)
818
+
819
+ ### Bugfixes
820
+ * Depend on gherkin-1.0.22, which should now make things work on Windows and Ruby 1.8.x-1.9.x. (Aslak Hellesøy)
821
+
822
+ ## [0.7.0.beta.6](https://github.com/cucumber/cucumber-ruby/compare/v0.7.0.beta.5...v0.7.0.beta.6)
823
+
824
+ ### Bugfixes
825
+ * Fixed a small regression with pystrings and calling steps from stepdefs, introduced in a previous beta. (Aslak Hellesøy)
826
+
827
+ ## [0.7.0.beta.5](https://github.com/cucumber/cucumber-ruby/compare/v0.7.0.beta.4...v0.7.0.beta.5)
828
+
829
+ ### New Features
830
+ * Support RSpec 2. (RSpec >= 1.2.4 is still supported). (Aslak Hellesøy, Ryan Bigg)
831
+
832
+ ### Removed features
833
+ * No more support for RSpec <= 1.2.3. (Aslak Hellesøy)
834
+
835
+ ## [0.7.0.beta.4](https://github.com/cucumber/cucumber-ruby/compare/v0.7.0.beta.3...v0.7.0.beta.4)
836
+
837
+ ### New Features
838
+ * New, experimental V8 javascript support - step definitions in Javascript! (Joseph Wilk)
839
+
840
+ ### Bugfixes
841
+ * Gherkin is loaded via rubygems if it can't be found on the $LOAD_PATH. (Aslak Hellesøy)
842
+
843
+ ## [0.7.0.beta.3](https://github.com/cucumber/cucumber-ruby/compare/v0.7.0.beta.2...v0.7.0.beta.3)
844
+
845
+ ### Changed Features
846
+ * Step Definitions and calling steps from step definitions can again use And and But (was removed in 0.7.0.beta.2) (Aslak Hellesøy)
847
+
848
+ ## [0.7.0.beta.2](https://github.com/cucumber/cucumber-ruby/compare/v0.7.0.beta.1...v0.7.0.beta.2)
849
+
850
+ ### New Features
851
+ * Depend on Gherkin 1.0.18, which has some bugfixes. (Aslak Hellesøy)
852
+
853
+ ## [0.7.0.beta.1](https://github.com/cucumber/cucumber-ruby/compare/v0.6.4...v0.7.0.beta.1)
854
+
855
+ Treetop is gone and replaced with Ragel. The new Ragel parser lives in the gherkin gem.
856
+ Parse times are up to 100 times faster.
857
+
858
+ ### New Features
859
+ * Upgraded Sinatra example to use Sinatra 1.0 and Capybara. (Aslak Hellesøy)
860
+
861
+ ### Changed Features
862
+ * New i18n translations now have to be contributed to the gherkin project.
863
+
864
+ ## [0.6.4](https://github.com/cucumber/cucumber-ruby/compare/v0.6.3...v0.6.4)
865
+
866
+ ### Bugfixes
867
+ * Better handling of --guess with optional capture groups (Tim Felgentreff)
868
+ * Parsing of rerun.txt can't use Shellwords on Windows (#581 David Esposito)
869
+ * \#puts can now take non-String arguments just like Kernel#puts - #to_s is done implicitly. (Aslak Hellesøy)
870
+ * Attempt to fix Cucumber::CODEPAGE error again for Windows (#561 Aslak Hellesøy)
871
+ * Tab indentation causes multiline step arguments to fail (#585 Aslak Hellesøy)
872
+ * Properly pass tags over the wire protocol (Matt Wynne)
873
+ * Profile loading should honour the --strict option (#580 Rob Holland)
874
+ * Snippets are properly printed when using '*' as step keyword. (Used to cause infinite recursion). (Aslak Hellesøy)
875
+
876
+ ### New features
877
+ * Added #puts_world method, printing the World class and all included modules (Ruby only). (Aslak Hellesøy)
878
+ * Added #puts to the PDF formatter (Nicolas Bessi)
879
+ * Show fails for After/Before hooks in the progress formatter (#584 Joseph Wilk)
880
+
881
+ ### Changed features
882
+ * Switced to ISO 639-1 (language) and ISO 3166 alpha-2 (region - if applicable). Applies to Catalan,
883
+ Swedish, Welsh, Romanian and Serbian. (Aslak Hellesøy)
884
+
885
+ ## [0.6.3](https://github.com/cucumber/cucumber-ruby/compare/v0.6.2...v0.6.3)
886
+
887
+ ### Bugfixes
888
+ * Split arguments in cucumber.yml with shellwords. Example: myprofile: --out="Features report.html" (Nathaniel Haas)
889
+ * Breakage in Rails 2-3-stable after html_safe is added to the repo. (#577 Aslak Hellesøy)
890
+ * uninitialized constant Cucumber::CODEPAGE (NameError) (#561 Aslak Hellesøy)
891
+ * HTML Formatter is broken in cucumber 0.6.2 and cuke4duke 0.2.3 (#567 Dan Fitch)
892
+ * Ensure consistent load order of support files (#564 Mike Sassak)
893
+ * Fix various places in PDF formatter where HTML entities could break prawn (Matt Wynne)
894
+ * The rerun formatter outputs failed, pending and undefined scenarios (before: only failing) (Aslak Hellesøy)
895
+
896
+ ### New features
897
+ * Added "Angenommen" as German synonym for Given (Sven Fuchs, Aslak Hellesøy)
898
+ * New #ask(question, timeout_seconds=60) method available to stepdefs. Asks for input and #puts-s question and answer. (Aslak Hellesøy)
899
+ * Links to step definitions are now clickable in TextMate's HTML report (Rob Aldred)
900
+ * Add diff! message to wire protocol to allow for immediate diff response to invokes (Matt Wynne)
901
+ * Add tags to begin/end scenario messages on wire protocol to support tagged hooks (#571 Matt Wynne)
902
+ * Default timeouts to 120s for invoke, begin_scenario and end_scenario messages in wire protocol (#572 Matt Wynne)
903
+
904
+ ## [0.6.2](https://github.com/cucumber/cucumber-ruby/compare/v0.6.1...v0.6.2)
905
+
906
+ ### Bugfixes
907
+ * Update --help for --tags which was out of date. (Aslak Hellesøy)
908
+ * Explicitly use Prawn 0.6.3 for pdf formatter since 0.7.1 is broken (Aslak Hellesøy)
909
+ * PDF formatter renders tables incorrectly (#553 Andy Waite)
910
+ * Better colouring in HTML report (Rob Aldred)
911
+ * Detect output encoding properly on JRuby+Windows (Aslak Hellesøy)
912
+ * Added option to override output encoding on Windows with an CUCUMBER_OUTPUT_ENCODING env var (Aslak Hellesøy)
913
+ * PDF generation requires 'prawn-format' (#558 Aslak Hellesøy)
914
+
915
+ ### New features
916
+ * Show profiles in error scenario summary. (#550 Joseph Wilk)
917
+
918
+ ### Removed features
919
+ * element_at and table_at have been removed. Use tableish in cucumber-rails instead. (Aslak Hellesœy)
920
+
921
+ ## [0.6.1](https://github.com/cucumber/cucumber-ruby/compare/v0.6.0...v0.6.1)
922
+
923
+ ### Bugfixes
924
+ * Fixed broken console handling on Windows/JRuby that was introduced in 0.6.0. (Aslak Hellesøy)
925
+
926
+ ## [0.6.0](https://github.com/cucumber/cucumber-ruby/compare/v0.5.3...v0.6.0)
927
+
928
+ Bumping to 0.6.0 for this release since we're breaking backwards compatibility with tags.
929
+
930
+ ### Changed Features
931
+ * Tag boolean logic is inverted. What was ORed before is now ANDed and vice versa. (#504 Aslak Hellesøy)
932
+ This makes it more practical in most cases to mix tags from profiles and the command line
933
+
934
+ In previous versions the following command line:
935
+
936
+ `--tags @foo,~@bar --tags @zap (on the command line)`
937
+
938
+ or the following Hook:
939
+
940
+ `Before("@foo,~@bar", "@zap") (for Hooks)`
941
+
942
+ would be equivalent to the boolean expression: (@foo && !@bar) || @zap
943
+ Starting with this release it will be equivalent to: (@foo || !@bar) && @zap
944
+
945
+ ### Bugfixes
946
+ * Cucumber not loading the correct settings using autospec (#496, #523 Aslak Hellesøy, Andrzej Śliwa)
947
+ * Ruby 1.9.2 fails to load features/support/env.rb (#549 Aslak Hellesøy)
948
+ * All features (except 4) pass on 1.9.2 (but not on 1.9.1) (Aslak Hellesøy)
949
+ * Add missing require statement in rerun formatter which broke RubyMine (Noah Sussman)
950
+
951
+ ## [0.5.3](https://github.com/cucumber/cucumber-ruby/compare/v0.5.2...v0.5.3)
952
+
953
+ Another small release today to please a sister project. This time Cuke4Nuke.
954
+
955
+ ### New Features
956
+ * Simplified wire protocol to mostly use success / fail responses (Matt Wynne)
957
+
958
+ ## [0.5.2](https://github.com/cucumber/cucumber-ruby/compare/v0.5.1...v0.5.2)
959
+
960
+ ### New Features
961
+ * On JRuby/Cuke4Duke, --require DIR will put DIR on the $CLASSPATH, making it easier to load step def classes (Aslak Hellesøy)
962
+ * New --jars option that will load jar files. Only available on JRuby. Practical for Cuke4Duke. (Aslak Hellesøy)
963
+
964
+ ### Bugfixes
965
+ * Add #embed back to html formatter (#547 Brandon Faloona)
966
+ * Refactored wire protocol code and added configurable timeout to allow for long running step definitions. (#546 Matt Wynne)
967
+
968
+ ## [0.5.1](https://github.com/cucumber/cucumber-ruby/compare/v0.5.0...v0.5.1)
969
+
970
+ Small bugfix release.
971
+
972
+ ### Bugfixes
973
+ * Replaced dependency on json gem with an error message, so that the cucumber gem installs on JRuby. (Aslak Hellesøy)
974
+
975
+ ## [0.5.0](https://github.com/cucumber/cucumber-ruby/compare/v0.4.4...v0.5.0)
976
+
977
+ We're bumping to 0.5.0 for this release since all of the Rails code has now moved to a new gem - cucumber-rails.
978
+ Please see History.txt in cucumber-rails for details about what's new on the Rails side.
979
+
980
+ ### New features
981
+ * "Given" in Dutch is now aliased to "Gegeven" or "Stel". (Iain Hecker)
982
+ * New --i18n option to list keywords in various languages. (Aslak Hellesøy)
983
+ * Added a Tcl example using Sam Stephenson's ruby-tcl (Aslak Hellesøy)
984
+ * Added* as a synonym for Given/When/Then/And/But (for all i18n languages). (#462 Aslak Hellesøy)
985
+ * The HTML formatter produces a much nicer report, with TextMate link integration. (Rob Aldred)
986
+ * Wire protocol now supports table arguments, step definition source & regexp, snippets, pending, table diffing (Matt Wynne)
987
+
988
+ ### Changed Features
989
+ * Per-word trailing-space setting for step keywords using '<'. See 'fr' in languages.yml for example. (#525 Gregory Hnatiuk)
990
+ * Formatters will no longer be passed File objects. They must use ensure_io, ensure_file or ensure_dir. (Aslak Hellesøy)
991
+
992
+ ### Bugfixes
993
+ * Exception messages are properly escaped in the HTML report. (Aslak Hellesøy)
994
+ * Improved UTF-8 support for Windows. (Aslak Hellesøy)
995
+ * Make #element_at / #table_at work on Webrat 0.6.0. This is now deprecated it in favour of #tableish from the cucumber-rails gem. (Aslak Hellesøy)
996
+ * JUnit formatter not handling multiline table steps inside Scenario Outlines (#538 Matt Wynne)
997
+ * Pending in scenario outline is red (#399 Matt Wynne)
998
+ * Allow optional step arguments to play happily with step transforms (Rob Holland)
999
+ * Regex escape the path when filtering the backtrace (Corey Donohoe & Simon Rozet)
1000
+ * Add gem dependency on JSON gem, required by wire protocol (#533 Matt Wynne)
1001
+
1002
+ ### Removed Features
1003
+ * All Rails-related code is in a separate gem: cucumber-rails. Install that if you're working with Rails. (#483 Aslak Hellesøy)
1004
+ * --language is removed: http://wiki.github.com/aslakhellesoy/cucumber/spoken-languages (Aslak Hellesøy)
1005
+
1006
+ ## [0.4.4](https://github.com/cucumber/cucumber-ruby/compare/v0.4.3...v0.4.4)
1007
+
1008
+ What a bad day to make a release, but here goes.
1009
+
1010
+ ### New features
1011
+ * Cucumber should use ActiveSupport::Callbacks for fixtures (#516 Adam Salter)
1012
+ * Make 'I' optional in all webrat steps. (Gavin Hughes)
1013
+ * Make generated cucumber.rake work with a vendored gem (Alex Rothenberg)
1014
+ * Native support for ANSIColor on IronRuby via the iron-term-ansicolor gem (Will Green)
1015
+ * Call a bunch of steps from step definitions - also with tables or pystrings. Copy-paste friendly (Bodaniel Jeanes, Jack Chen, Aslak Hellesøy)
1016
+
1017
+ ### Bugfixes
1018
+ * Pretty printer fails when expanding scenario outlines with -x when the background includes a table (#515 Mike Sassak)
1019
+ * Ensure tags used with Before/After hooks always get parsed (#520 Joseph Wilk)
1020
+ * Define IRONRUBY correctly on Ruby 1.9 (Joe Van Dyk)
1021
+ * RbStepDefinition#invoke calls #backtrace_line on self rather than @proc (#503 Mike Sassak)
1022
+ * Avoid duplicate cucumber entries in database.yml (Daniel Hofstetter)
1023
+ * Added respond_to? when checking config.cache_classes for older Rails versions (Jeremy Durham)
1024
+
1025
+ ### Changed Features
1026
+ * Rails support has been moved to the cucumber-rails gem (Dennis Blöte, Aslak Hellesøy) TODO - WIKI DOCUMENTATION BEFORE RELEASE
1027
+ * The code for Czech has changed from cz to cs. (deepj)
1028
+ * $cucumber_interrupted is now Cucumber.wants_to_quit - avoid global variable, which gives warnings. (Aslak Hellesøy)
1029
+ * Examples keyword without a colon is deprecated loudly. Gherkin will not recognize it at all. (Gherkin #30 Mike Sassak)
1030
+
1031
+ ## [0.4.3](https://github.com/cucumber/cucumber-ruby/compare/v0.4.2...v0.4.3)
1032
+
1033
+ The exciting thing about this release is that the wire protocol is starting to take shape. This means you can
1034
+ now use Cucumber with .NET - writing step definitions in C#. And this is without having to use IronRuby at all!
1035
+ See Cuke4Nuke (http://wiki.github.com/richardlawrence/Cuke4Nuke) for more information.
1036
+
1037
+ As usual there are several small features and bug fixes.
1038
+
1039
+ ### New Features
1040
+ * Add support for ORing tags which are passed in with seperate --tag arguments. Make comma seperated tags use AND (#368 Joseph Wilk)
1041
+ * New Wire Protocol - allowing out of process execution of Cucumber scenarios. (#428 Matt Wynne)
1042
+ * Added an example illustrating how to get screenshots in HTML reports (examples/watir) (Aslak Hellesøy)
1043
+ * Added new #embed(file, mime_type) method to visitors and Ruby Worlds to make it easier to embed screenshots (Aslak Hellesøy)
1044
+ * The #puts method available from Ruby Step Definitions will print*after* the step is executed. (#487 Zoltan Penzeli)
1045
+ * Add support for rolling back transaction for all open database connections. (John Ferlito)
1046
+ * Show scenario and step summary in HTML formatter (#285 Joseph Wilk)
1047
+ * Ast::Table can now be constructed with an Array of Hash. (Aslak Hellesøy)
1048
+
1049
+ ### Changed features
1050
+ * The #puts method will no longer escape HTML if the html formatter is used. Escaping must be done manually. (Aslak Hellesøy)
1051
+
1052
+ ### Bugfixes
1053
+ * Fixed incorrect rendering of step arguments with UTF8 characters (Aslak Hellesøy)
1054
+ * "--format rerun", with a Scenario Outline, kills cucumber (#492 Aslak Hellesøy)
1055
+ * Usage formatter is not reporting time correctly. (Elliot Crosby-McCullough)
1056
+ * JUnit formatter raises a more helpful error when run on a feature with no name. (#493 Matt Wynne)
1057
+ * Better Danish translation (Thorbjørn Ravn Andersen)
1058
+
1059
+
1060
+ ## [0.4.2](https://github.com/cucumber/cucumber-ruby/compare/v0.4.1...v0.4.2)
1061
+
1062
+ Bugfix release. The 0.4.1 release was hosed when switching from Hoe to Jeweler.
1063
+
1064
+ ## [0.4.1](https://github.com/cucumber/cucumber-ruby/compare/v0.4.0...v0.4.1)
1065
+
1066
+ This is mostly a bugfix release. Some of Cucumber's own features have been fixed so they pass on more platforms,
1067
+ making it easier for people to contribute. The README.txt also describes how to get up and running with the
1068
+ development environment.
1069
+
1070
+ ### Bugfixes
1071
+ * Cucumber's features verified passing on MRI 1.8.6 (OSX), 1.8.7 (OSX), 1.9.1 (OSX/Win) and JRuby 1.4.0RC1 (OSX). (Aslak Hellesøy)
1072
+ * Ensure no errors are raised when limiting with tags which are not in the feature set (#464 Joseph Wilk)
1073
+ * Missing Romanian keywords added for Examples, Scenario Outline and Background (to my best google translate knowledge) (Aslak Hellesøy)
1074
+ * Make rerun and --drb work together again after formatter API changes (#485 Erik Hansson, John Ferlito)
1075
+
1076
+ ### New Features
1077
+ * The Rails cucumber generator will only default to RSpec if installed. And print better help. (Aslak Hellesøy)
1078
+ * Added 'but' variants to Japanese. (Kakutani Shintaro)
1079
+ * README.txt explains people how to run all tests. Install gems with geminstaller. (Aslak Hellesøy)
1080
+ * Added support for Serbian language, both Cyrillic and Latin with usage examples. (Dejan Dimic)
1081
+ * Add new 'debug' formatter for debugging and visualising the calls to listeners. (Matt Wynne)
1082
+
1083
+ ### Changed features
1084
+ * Use http://github.com/aslakhellesoy/wac instead of http://github.com/aslakhellesoy/ansicolor on Windows/JRuby (#456 Aslak Hellesøy)
1085
+
1086
+ ### Internal changes
1087
+ * Ditched Hoe for Jeweler (Aslak Hellesøy)
1088
+ * Added StepMother#invoke(step_name, multiline_argument=nil) - needed by cuke4duke ticket #26 (Aslak Hellesøy)
1089
+ * StepDefinitionMethods is gone.
1090
+
1091
+ ## [0.4.0](https://github.com/cucumber/cucumber-ruby/compare/v0.3.104...v0.4.0)
1092
+
1093
+ The back to stable release. When we went from 0.3.11 to 0.3.90 we thought we were close to a 0.4.0 release. Then the community
1094
+ went nuts and a lot of great contributions came in. Some of those broke backwards compatibility, and we decided it would be
1095
+ better to do this while still on 0.3.x.
1096
+
1097
+ Rails users: you*must* run script/generate cucumber after installing this version.
1098
+
1099
+ If something breaks for you, please please please read this file carefully. It's most likely something referenced here, and
1100
+ that will give you more information so you can solve any problems. If not, just get in touch on IRC or the Google Group.
1101
+
1102
+ ### New Features
1103
+ * Total feature parsing time is shown when run with --verbose. Useful for benchmarking with future Ragel parser (Aslak Hellesøy)
1104
+ * Tables yielded to step definitions are no longer frozen, so you can edit their data without #dup'ing (Aslak Hellesøy)
1105
+ * Transform can now transform tables, using /table:col1,col2,col3/ (#478 Corey Haines)
1106
+ * cucumber.yml can also end in .yaml and be located in .config/ or config/ dirs (#447 trans)
1107
+ * Turkish support. (Hakan Şenol Ensari)
1108
+ * Upgrade Rails generator to set a dependency to Spork 0.7.3. (Aslak Hellesøy)
1109
+ * Installation via rubygems will print a message telling people to read this file. (Aslak Hellesøy)
1110
+ * Files generated by the Rails cucumber generator have information about the risks of editing. (Aslak Hellesøy)
1111
+ * Rotten Cucumber alert on Rails if you upgrade your gem without regenerating with script/generate cucumber. (Aslak Hellesøy)
1112
+ * Stop the confusion between "homepage" and "home page" by allowing both (Ryan Bigg & Bodaniel Jeanes)
1113
+ * Make script/cucumber file generated by the Rails cucumber generator look for cucumber in vendored gems as well. (Tom ten Thij)
1114
+
1115
+ ### Changed Features
1116
+ * Step tables now default empty table cells to empty strings and not nil (#470 Joseph Wilk)
1117
+
1118
+ ### Removed Features
1119
+ * The feature_list, feature_pattern, step_list and step_pattern properties are removed from the Rake task. Use profiles instead. (Aslak Hellesøy)
1120
+ * The FeatureTask is removed. Use profiles instead.
1121
+
1122
+ ### Bugfixes
1123
+ * instance_exec get declared private (#477 Tim Galeckas)
1124
+ * Transforms can return nil. (Thomas Marek)
1125
+ * Generated rails rake tasks doesn't use the vendored version cucumber binary (#468 Josh Nichols)
1126
+ * Incorrect diagnostics in case when Before raises in presence of Background (#465 Fedor Kocherga)
1127
+ * Error on pystring in scenario outline with pretty formatter (#475 Aslak Hellesøy)
1128
+ * Adding After('@allow-rescue') to set allow_rescue back to its former value. (Alf Mikula)
1129
+ * Feature files are now sorted before they are executed, because different operating systems may list files differently. (Aslak Hellesøy)
1130
+ * Fixed image loading for Windows in PDF formatter. Allow use of both png and jpg. (#461 Declan Whelan)
1131
+ * Before('~@no-txn') is run on all scenarios without @no-txn causing Cucumber::Rails::World.use_transactional_fixtures to always be true. (#457 Aslak Hellesøy)
1132
+ * JUnit formatter not handling scenario outline tables (#472 Matt Wynne)
1133
+ * Language help broken (#467 Matt Wynne)
1134
+ * Language help formatter aligns output better on Ruby 1.8.6 (Aslak Hellesøy)
1135
+ * Better backtraces for Ruby 1.8.7. (Jakob Skov-Pedersen)
1136
+ * String step definitions ( Given 'I have $number cucumbers' ) are escaped before being turned into regular expressions. (David Waite)
1137
+
1138
+ ## [0.3.104](https://github.com/cucumber/cucumber-ruby/compare/v0.3.103...v0.3.104)
1139
+
1140
+ This release has some minor changes to the command line and formatters. The biggest change is internally, paving
1141
+ the way for more programming language support in Cuke4Duke, which now supports step definitions written in Java, Scala,
1142
+ Groovy, Clojure and Javascript!
1143
+
1144
+ ### New Features
1145
+ * "usage" formatter should display progress (#437 Aslak Hellesøy)
1146
+ * Added example for Ramaze. (Yutaka HARA)
1147
+
1148
+ ### Bugfixes
1149
+ * Fixed regression in profile formatter from 0.3.102. (Aslak Hellesøy)
1150
+ * Raise a proper error message if someone forgets @ for tags, example: --tags ~foo or --tags bar. (Aslak Hellesøy)
1151
+ * lib/cucumber/formatter/html.rb requires xml (#458 Brent Snook)
1152
+ * lib/cucumber/formatter/html.rb requires ruby-debug (#455 Assaf Arkin)
1153
+ * Allow for STDOUT formatters to be defined in profiles. Addresses an Autotest plugin issue. (#375 Gabriel Medina)
1154
+
1155
+ ### Removed features
1156
+ * The --dry-run option no longer implies --no-source and --no-snippets. It only implies --no-snippets. (Aslak Hellesøy)
1157
+
1158
+ ### Changed features
1159
+ * The profile and usage formatters have been combined to the usage formatter. Use it eith or without --dry-run. See --help for more. (Aslak Hellesøy)
1160
+ * The steps formatter has been renamed to stepdefs formatter. (Aslak Hellesøy)
1161
+ * The internal programming language API has changed, giving more power to the implementation. See #428. (Aslak Hellesøy)
1162
+
1163
+ ## [0.3.103](https://github.com/cucumber/cucumber-ruby/compare/v0.3.102...v0.3.103)
1164
+
1165
+ This release gives you back some of the control over the Rails environment that was accidentally taken away from you in the
1166
+ previous release.
1167
+
1168
+ Using this release on a Rails project requires a rerun of script/generate cucumber.
1169
+
1170
+ ### New Features
1171
+ * Added a new @no-txn tag to selectively turn off transactions for a particlular scenario.
1172
+ * Added back a way to globally turn off transactions.
1173
+ * Renamed @allow_rescue tag to @allow-rescue.
1174
+
1175
+ ### Bugfixes
1176
+ * Gracefully handle cases when optional regexp groups are not matched. Ex: /should( not)? be flashed '([^']*?)'$/ (Aslak Hellesøy)
1177
+
1178
+ ### Changed Features
1179
+ * The Formatter API has completely changed. Formatters are no longer a double-dispacth visitor - just a single-dispatch listener (#438 Matt Wynne)
1180
+
1181
+ ## [0.3.102](https://github.com/cucumber/cucumber-ruby/compare/v0.3.101...v0.3.102)
1182
+
1183
+ This release has some changes in the Rails support, so make sure you run "script/generate cucumber" after you upgrade.
1184
+ Other noteworthy new features are improved Hook, tags and Transform support, and as always - several smaller bug fixes.
1185
+
1186
+ ### New Features
1187
+ * Added new internal API for Regexp and groups, allowing other programming languages to leverage native regexps. (Aslak Hellesøy)
1188
+ * New @allow_rescue tag for Rails scenarios. Causes exceptions raised in actions to be caught by rails and not bubble up to Cucumber (Aslak Hellesøy)
1189
+ * Negative tags can now be used in hooks, just like the command line's --tags option: Before('~@yarr') - will run for all scenarios that*don't* have the @yarr tag. (Aslak Hellesøy)
1190
+ * Transform has current "World" scope (Larry Diehl)
1191
+ * Other Transforms can be reused by calling Transform with a string inside of another Transform definition (Larry Diehl)
1192
+ * Execute "After" hooks in reverse order of declaration for better behavior with dependent blocks and to mimic the behavior of at_exit (David Waite)
1193
+
1194
+ ### Bugfixes
1195
+ * features/support/env.rb runs commands twice (bugfix cuts total time by almost 50% w00t) (#452 Jim Meyer)
1196
+ * Problems adding custom formatters to features/support. (features/support is added to $LOAD_PATH) (#449 Aslak Hellesøy)
1197
+ * Some options set in cucumber.yml profiles are ignored (#446 Leonard CHIN)
1198
+ * Missing step_definition snippets not properly displayed (#433 Aslak Hellesøy)
1199
+ * rspec-rails, :lib => false (#447 David Chelimsky)
1200
+ * Cucumber with Spork breaks on OS X Snow Leopard (#431 David Chelimsky)
1201
+
1202
+ ### Changed Features
1203
+ * Tag names passed on the command line*always* have to use the @ sign. --tags foo or --tags ~bar won't work. Use --tags @foo or --tags ~@bar (Aslak Hellesøy)
1204
+
1205
+ ### Removed features
1206
+ * The Cucumber::Rails.bypass_rescue no longer exists. Errors will always bubble up, unless you use the new @allow_rescue tag. (Aslak Hellesøy)
1207
+ * The Cucumber::Rails.use_transactional_fixtures no longer exists. Transactional fixtures are always enabled for the cucumber environment. (Aslak Hellesøy)
1208
+
1209
+ ## [0.3.101](https://github.com/cucumber/cucumber-ruby/compare/v0.3.100...v0.3.101)
1210
+
1211
+ Two exciting things in this release. Step Argument Transforms and a PDF formatter you can use to send
1212
+ your features to your customer for review!
1213
+
1214
+ ### New Features
1215
+ * New pdf formatter (#425 Mads Buus)
1216
+ * Step Argument Transforms: These let you use the Transform method to register regular expressions
1217
+ to catch and transform/coerce arguments before they are yielded to step definitions:
1218
+ http://wiki.github.com/aslakhellesoy/cucumber/step-argument-transforms (Larry Diehl & Dave Astels)
1219
+ * Adding webrat steps for asserting content does or does not exist within a particular element
1220
+ (using webrat's within method) (Kieran Pilkington)
1221
+
1222
+ ## [0.3.100](https://github.com/cucumber/cucumber-ruby/compare/v0.3.99...v0.3.100)
1223
+
1224
+ The JavaZone release!
1225
+
1226
+ ### New Features
1227
+ * Added support for Uzbek (msarvar)
1228
+ * The file argument on the cucumber command line will replace contents of file on cli if file is prefixed with @ (Tero Tilus)
1229
+
1230
+ ### Bugfixes
1231
+ * Backtraces on JRuby are handled in a cleaner way when the exception comes from Java (NativeException). (Aslak Hellesøy)
1232
+ * When exceptions occur in a Before block the rest of the scenario is now skipped (#331 Matt Wynne)
1233
+
1234
+ ## [0.3.99](https://github.com/cucumber/cucumber-ruby/compare/v0.3.98...v0.3.99)
1235
+
1236
+ ### New Features
1237
+ * Support for Croatian (Bkrsta)
1238
+ * Make #feature available from scenario so you can do: Before{|scenario| scenario.feature}. (Aslak Hellesøy)
1239
+ * cucumber.yml parsing supports ERB syntax (#427 Gregory Hnatiuk)
1240
+ * New AfterConfiguration hook added; a block can be specified that takes Cucumber::Cli::Configuration (#423 Brent Snook)
1241
+ * Cucumber::Cli::Configuration#feature_dirs and #out_stream exposed as public attributes so that they may be used in AfterConfiguration hook (#423 Brent Snook)
1242
+
1243
+ ## [0.3.98](https://github.com/cucumber/cucumber-ruby/compare/v0.3.97...v0.3.98)
1244
+
1245
+ Just a small release to help Cuke4Duke, which will be presented at Agile2009
1246
+ in 2 days.
1247
+
1248
+ ### New Features
1249
+ * Backtrace filtering now happens in StepInvocation class, meaning other languages (Cuke4Duke) can get backtraces stripped. (Aslak Hellesøy)
1250
+ * Cucumber::Ast::Table#map_headers now allows for a block that will convert all the headers. See docs for details. (Ben Mabey)
1251
+
1252
+ ## [0.3.97](https://github.com/cucumber/cucumber-ruby/compare/v0.3.96...v0.3.97)
1253
+
1254
+ The AA-FTT release. Creating a release for the AA-FTT meeting in Chicago so that we can play
1255
+ with the new language API and maybe knock out some better .NET support.
1256
+
1257
+ ### Bugfixes
1258
+ * Allow comments on examples sections underneath scenario outlines (#420 Mike Sassak)
1259
+ * Table.map_headers! will fail with a decent error message when 0 or 2+ headers are matched. (Aslak Hellesøy)
1260
+ * Fixed an issue with comments with preceding spaces after a background causing a parse error (#401 Joseph Wilk)
1261
+
1262
+ ### New Features
1263
+ * The public API is documented and there is a new :sdoc task to generate nice searchable API docs.
1264
+ * Add :default => :cucumber when setting up Rake tasks for Cucumber in Rails (Aslak Hellesøy)
1265
+ * New When /^I fill in "([^\"]*)" for "([^\"]*)"$/ Webrat step for Rails (Aslak Hellesøy)
1266
+
1267
+ ### Changed Features
1268
+ * Changed the Programming Language API to support languages without "bleed through" (e.g. rubypython can't invoke ruby objs) (Aslak Hellesøy)
1269
+ * The Programming Language API manages hooks on the language level instead of on the step mother level (Aslak Hellesøy)
1270
+
1271
+ ## [0.3.96](https://github.com/cucumber/cucumber-ruby/compare/v0.3.95...v0.3.96)
1272
+
1273
+ This release doesn't have any significant new features or bug fixes, but there are big
1274
+ internal changes. This release has a new API for plugging in other programming languages.
1275
+ You can read more about that here: http://groups.google.com/group/cukes/browse_thread/thread/b9db8bf1f3ec9708
1276
+
1277
+ This might break other tools that are using Cucumber's internal APIs. For example Spork broke and had to
1278
+ be patched. Please upgrade to Spork 0.5.9 if you are using Spork.
1279
+
1280
+ ### New Features
1281
+ * Ability to preload natural language in Spork's prefork. Rerun script/generate cucumber --spork to see how. (Aslak Hellesøy)
1282
+ * Ability to control which DRb port is used via the --port flag or by setting CUCUMBER_DRB environment variable. (Chris Flipse)
1283
+ * Upgrade Rails generator to use webrat 0.5.0. (Aslak Hellesøy)
1284
+ * Upgrade Sinatra example to work with rack-test 0.4.1 and webrat 0.5.0. (Aslak Hellesøy)
1285
+
1286
+ ### Changed Features
1287
+ * --strict will cause an exit code 1 for missing and pending (used to be for missing only). (Mads Buus)
1288
+ * junit formatter doesn't report pending steps unless --strict is used. (Mads Buus)
1289
+
1290
+ ## [0.3.95](https://github.com/cucumber/cucumber-ruby/compare/v0.3.94...v0.3.95)
1291
+
1292
+ This release improves Webrat support for table-like HTML markup. Now you can easily turn the HTML
1293
+ elements table, dl, ol and ul elements into a 2D array. This is particularly useful for comparing
1294
+ data in your HTML with a Cucumber table using Cucumber::Ast::Table#diff!
1295
+
1296
+ This release also fixes several bugs related to --drb (Spork) and profiles (cucumber.yml)
1297
+
1298
+ ### Bug Fixes
1299
+ * --guess will always prefer the longest regexp with no groups if they exist.
1300
+ * Prevent delays if a NoMethodError is raise in a step definition. Define a light #inspect in World. (#374 Aslak Hellesøy)
1301
+ * Restore 'features' as the default feature running path. (#412 Ben Mabey)
1302
+ * --drb degrades gracefully when no drb server is running and no formatter is provided. (#410 Ben Mabey)
1303
+ * --language picked up from profiles again. (#409 Ben Mabey)
1304
+ * Resolved infinite loop problem when --drb was defined in a profile. (#408 Ben Mabey)
1305
+
1306
+ ### New Features
1307
+ * Cucumber::World#table has been overloaded to work with 2D Array in addition to a table String to be parsed.
1308
+ * New When /^I fill in the following:$/ step definition for Webrat. Useful for filling out a form with a Table. (Aslak Hellesøy)
1309
+ * The object returned by element_at (Webrat::Element) has a #to_table that works for table, dl, ol and ul. (Aslak Hellesøy)
1310
+ * An explanation of why failures are ok is printed when --wip is used. (Aslak Hellesøy)
1311
+ * Added cucumber alias for cucumber:ok in Rails Rake tasks. (Aslak Hellesøy)
1312
+
1313
+ ### Changed features
1314
+ * element_at('table').to_table should be used instead of table_at('table').to_a. The old way is deprecated but still works. (Aslak Hellesøy)
1315
+ * element_at (and the depracated table_at) no longer takes a DOM id, only CSS selectors. Change "my_id" to "#my_id". (Aslak Hellesøy)
1316
+
1317
+ ## [0.3.94](https://github.com/cucumber/cucumber-ruby/compare/v0.3.93...v0.3.94)
1318
+
1319
+ Kanban take II.
1320
+
1321
+ Release 0.3.6 introduced a new --wip switch that can be used to limit work in progress
1322
+ (WIP). Limiting WIP is central for Kanban Software Development (http://www.infoq.com/articles/hiranabe-lean-agile-kanban).
1323
+
1324
+ However, this feature went mostly unnoticed, and because we think it's so great we have decided
1325
+ to make it the default for Rails projects. When you bootstrap your Rails project for Cucumber
1326
+ you will now get 2 Cucumber Rake tasks for Kanban development:
1327
+
1328
+ cucumber:ok : Run features that should pass. This runs your "good,old" features
1329
+ cucumber:wip : Run the features you're working on that don't pass yet. Tag them with @wip. Max 2!
1330
+
1331
+ So upgrade today and get into the habit of tagging new features with @wip (or invent your own tags).
1332
+ You'll achieve better flow this way.
1333
+
1334
+ ### New features
1335
+ * Support limiting the number of feature elements with certain tags (#353 Joseph Wilk)
1336
+ * script/generate cucumber sets up 'cucumber:ok' and 'cucumber:wip' tasks and deprecates 'features'. More Kanban love. (#344 Aslak Hellesøy)
1337
+ * Better JUnit formatter: feature->testsuite, scenario->testcase. Better timing and support for background and scenario outline. (Mads Buus Westmark)
1338
+ * Added examples/python that uses rubypython. (Aslak Hellesøy)
1339
+ * Checks the number of available colors on the terminal with ruby-terminfo if ruby-terminfo is installed.
1340
+ This prevents Apple's Terminal.app from stalling (Yugui - Yuki Sonoda).
1341
+ * Set 'xterm-256color' to TERM if your terminal supports grey.
1342
+ * ruby-terminfo is available as genki-ruby-terminfo gem from github.
1343
+ * Document builtin formatters with --help. (#406 Aslak Hellesøy)
1344
+ * Added support for using regular expressions when mapping table headers. (Peter Williams)
1345
+
1346
+ ## [0.3.93](https://github.com/cucumber/cucumber-ruby/compare/v0.3.92...v0.3.93)
1347
+
1348
+ Highlights in this release: Improved profile handling (cucumber.yml) and a fix for cucumber hanging.
1349
+
1350
+ ### New features
1351
+ * script/generate cucumber --spork now sets up a spork gem dependency in the cucumber.rb environment. (Aslak Hellesøy)
1352
+ * Feature files defined on the command line override any that are present in profiles. (#344 Ben Mabey)
1353
+ * Default (STDOUT) formatter defined in profile can be overridden from the command line. (#344 Ben Mabey)
1354
+ * Displays which profile, if any, is being used. (Ben Mabey)
1355
+ * click_link_within(parent, link) webrat step (Joakim Kolsjö)
1356
+
1357
+ ### Bugfixes
1358
+ * script/cucumber correctly loads the gem's binary if the plugin isn't installed.
1359
+ * Cucumber hangs waiting for Ctrl+C if an Error is raised. (#374 Aslak Hellesøy)
1360
+
1361
+ ## [0.3.92](https://github.com/cucumber/cucumber-ruby/compare/v0.3.91...v0.3.92)
1362
+
1363
+ This release has some minor improvements to the new Table.diff! functionality. For example,
1364
+ if you're using Webrat and you want to compare a feature table with a HTML table containing
1365
+ links in one of the columns, you can do:
1366
+
1367
+ actual = Cucumber::Ast::Table.new(table_at('table').to_a)
1368
+ actual.map_column!('Name') { |text| text.strip.match(/>(.*)</)[1] }
1369
+ table.diff!(actual)
1370
+
1371
+ ### New features
1372
+ * Allow Step Definitions to accept mix of required & optional args (Niels Ganser)
1373
+ * table_a.diff!(table_b) now uses column conversions from both tables (Table#map_column!) (Aslak Hellesøy)
1374
+
1375
+ ### Bugfixes
1376
+ * Upgrade Sinatra example to work with rack-test 0.3.0 and aslakhellesoy-webrat 0.4.4.1 (Aslak Hellesøy)
1377
+ * require 'cucumber/webrat/table_locator' added to Spork environment for Rails (Anders Furseth)
1378
+
1379
+ ### Changed Features
1380
+ * The 'default' profile is now ALWAYS used unless you specify another profile or use the -P or --no-profile flag. (#344 Ben Mabey)
1381
+
1382
+ ## [0.3.91](https://github.com/cucumber/cucumber-ruby/compare/v0.3.90...v0.3.91)
1383
+
1384
+ ### New Features
1385
+ * CTRL-C will exit immediately instead of carrying on until all features are run. (Aslak Hellesøy)
1386
+ * Run can be stopped programmatically by setting $cucumber_interrupted = true, for example in an After block. (Aslak Hellesøy)
1387
+ * Support limiting the number of feature elements with certain tags (#353 Joseph Wilk)
1388
+ * Table support for cuke4duke
1389
+
1390
+ ## [0.3.90](https://github.com/cucumber/cucumber-ruby/compare/v0.3.11...v0.3.90)
1391
+
1392
+ The Hot summer release
1393
+
1394
+ This is a hot summer in Norway, and Cucumbers are growing in abundance. To celebrate this we give you
1395
+ a new release with lots of new features and bugfixes. This is also one of the last releases in the 0.3 series
1396
+ (hence the 0.3.90 number), so 0.4 (or maybe 1.0!) will be coming up soon. The highlights of this release are:
1397
+
1398
+ ### Egality
1399
+
1400
+ English is not the world's most spoken language, so why should Cucumber force non-English speakers to use the
1401
+ --language flag? As of this release you're no longer forced to do that. Instead, you can add a comment header
1402
+ to your .feature files:
1403
+
1404
+ # language: fr
1405
+ # Cucumber understands that this is French
1406
+ Fonctionnalité: Trou de boulette
1407
+
1408
+ If you don't have that header, Cucumber will work as before - using whatever you specified with --language,
1409
+ or default to English if no --language option was specified. A nice side effect of this is that you can now
1410
+ have features in several languages side by side and run them in the same cucumber. (Not recommended unless
1411
+ you want to take polyglot programming to an extreme level).
1412
+
1413
+ ### Table diffing (experimental)
1414
+
1415
+ When you pass a table as an argument to your Then steps you often want to compare that table
1416
+ to some actual values. In previous releases you had to iterate over the table's values and manually
1417
+ compare each row using cell.should equal('foo') or assert_equal('foo', cell). If a discrepancy was found
1418
+ you'd get an error, but it was hard to see how the entire expected data set was different from the actual one.
1419
+
1420
+ With this release you have a much more powerful way to compare expected tables with actual data. An
1421
+ Ast::Table object now has a new #diff!(table) method that you can invoke in your step definitions
1422
+ that take table arguments. If the table you pass in is different from the expected table (from your
1423
+ plain text step), Cucumber will print the difference for each of the row or column and fail your step.
1424
+
1425
+ The Table#diff! method expects an Array of Array, Array of Hash (similar to what you'd get from table#hashes)
1426
+ or simply another Ast::Table object. Here is a simple example:
1427
+
1428
+ Then /^I should see the following cukes:$/ do |expected_cukes_table|
1429
+ actual_table = ... # For example [['Latin', 'English'], ['Cucumis sativus', 'Cucumber'], ['Cucumis anguria', 'Burr Gherkin']]
1430
+ expected_cukes_table.diff!(actual_table)
1431
+ end
1432
+
1433
+ As an extra bonus we provide Webrat users with a new #table_at(selector) method that you can use to transform
1434
+ an HTML table into an Array of Array, so that you can easily compare the contents of your HTML table to
1435
+ expected data passed to a step. Here is an example:
1436
+
1437
+ Then /^I should see the following cukes:$/ do |expected_cukes_table|
1438
+ expected_cukes_table.diff!(table_at('#cuke_table').to_a)
1439
+ end
1440
+
1441
+ You can do the same trick to compare data from a Rails ActiveRecord table (although this is not a
1442
+ recommended practice - your Then steps should compare against what users*see*, not what's in the
1443
+ database):
1444
+
1445
+ # This requires that you use the column names in the header of the plain text expected table
1446
+ Then /^I should have the following cukes in the database:$/ do |expected_cukes_table|
1447
+ expected_cukes_table.diff!(Cuke.find(:all).map(&attributes))
1448
+ end
1449
+
1450
+ ### Environment variables
1451
+
1452
+ Another useful new feature is the ability to define environment variables on Cucumber's command line (just
1453
+ like you can with Rake). Example:
1454
+
1455
+ cucumber FOO=BAR --format progress features
1456
+
1457
+ You can now pick up ENV['FOO'] in ruby (for example in env.rb) and take actions according to the value,
1458
+ for example enabling your super hack that validates all HTTP responses for XHTML validity.
1459
+
1460
+ This release also has several bugfixes related to --format and Before/After hooks.
1461
+
1462
+ ### Bugfixes
1463
+ * Fix some misspellings which affect test fail for Korean example (#373 Dongju Kim)
1464
+ * Make it possible to write non-localized step definitions (#377 Aslak Hellesøy)
1465
+ * Table cells containing unicode are rendered incorrectly (#386 Stefan Kanev)
1466
+ * Before and After hooks run after everything is finished when there are 2+ --format options (#371 Aslak Hellesøy)
1467
+ * When using --out and two --format the first is not delivered inline with execution of features (#361 Aslak Hellesøy)
1468
+ * Profile Formatter broken (#370 Aslak Hellesøy)
1469
+ * Default profile usage with --drb flag degrades gracefully with no server. (#367 Ben Mabey)
1470
+ * JUnit formatter uses original file name instead of narrative to avoid accidental duplicate XML files (Aslak Hellesøy)
1471
+ * rake gems no longer lists cucumber as a [F]ramework gem (David Chelimsky)
1472
+ * CLI issues correct exit code when using --drb. Requires Spork version >= 0.5.1. (#355 Ben Mabey)
1473
+ * Make sure script/generate cucumber --spork uses the cucumber Rails environment (Philippe Lafoucrière)
1474
+ * Fixed bug with rake task raising errors with feature files with spaces (#380 Joseph Wilk)
1475
+
1476
+ ### New Features
1477
+ * I should see should support regexes (#382 John Ferlito)
1478
+ * Access to scenario outline name from After hook scenario parameter (#342 Aslak Hellesøy)
1479
+ * Allow multiple --tags switches to be passed
1480
+ * Load step definitions from vendored gems and plugins (#388 Mike Burns)
1481
+ * New --format steps formatter. Variant of the usage formatter that lists available step definitions (Demetrius Nunes)
1482
+ * Possibility to specify scenario language as part of the .feature file (#345 Aslak Hellesøy)
1483
+ * Support specifying environment variables using foo=bar syntax on command line or in profiles (#362 Bryan Helmkamp)
1484
+ * Display failing scenarios at the end of pretty format to make it easier for people to play them back (#360 Ryan Bigg)
1485
+
1486
+ ### Changed Features
1487
+ * When using --tags, positive tags are &&'ed while negative tags are ||'ed (John Wilger)
1488
+ * The data returned from Table#hashes and similar methods are frozen. Dup if you need to modify. (Aslak Hellesøy)
1489
+ * Visitor.visit_table_cell_value(value, col_width, status) is now visitor.visit_table_cell_value(value, status)
1490
+
1491
+ ## [0.3.11](https://github.com/cucumber/cucumber-ruby/compare/v0.3.10...v0.3.11)
1492
+
1493
+ This release just fixes a tiny bug in the formatter to fix an incompatibility
1494
+ with the latest RedMine release. It should have been included in 0.3.10, but
1495
+ was forgotten.
1496
+
1497
+ ### Bugfixes
1498
+ * Formatter API was broken in 0.3.9 (Roman Chernyatchik)
1499
+
1500
+ ## [0.3.10](https://github.com/cucumber/cucumber-ruby/compare/v0.3.9...v0.3.10)
1501
+
1502
+ The Spork Release!
1503
+
1504
+ This release has an exciting new feature - a new --drb switch! This magic switch lets you run your
1505
+ features much faster than before, because you can eliminate the startup time for your code. This is
1506
+ thanks to a brand new gem called Spork by Tim Harper and Ben Mabey. (You can find out more about Spork
1507
+ here: http://github.com/timcharper/spork/tree/master). You can start Spork and have it preload your
1508
+ application in a separate process. Spork listens for DRb connections, and when you run cucumber with
1509
+ --drb the features will run inside the Spork server instead. Spork provides two simple hooks for preloading
1510
+ your application - one for framework/stable code (Spork.prefork) and one for the code that*you* write and
1511
+ change often (Spork.each_run). Keep in mind that all World, Before, and other Cucumber hooks need to be
1512
+ in the Spork.each_run block. Using Spork works great for Ruby on Rails, which can take a while to load,
1513
+ but --drb and Spork aren't tied to Rails at all. The new --drb switch also works great alongside autotest
1514
+ (just add --drb to your autotest profile in cucumber.yml), so now you can get even faster feedback.
1515
+
1516
+ Cucumber's built-in cucumber generator now has a new --spork switch, so when you bootstrap your Rails
1517
+ application for cucumber, you can have spork configuration set up out of the box. (It's just a
1518
+ slightly different env.rb.)
1519
+
1520
+ Although Spork was in mind when the --drb switch was added it is important to realize that all that was added
1521
+ to Cucumber was a DRb client. Any DRb server that adheres to this protocol can be used with Cucumber's --drb
1522
+ switch. While Spork is geared towards removing the load time to give you a faster feedback loop you could
1523
+ just as easily use this client with a server that distributes your features to run in parallel. Someone just
1524
+ needs to write such a server. ;)
1525
+
1526
+ This release also has some minor bugfixes related to RSpec and Rails interop.
1527
+
1528
+ ### Bugfixes
1529
+ * RSpec's be_* matchers did not work in 0.3.9 and probably earlier versions. Now they do. (Aslak Hellesøy)
1530
+ * The Rails cucumber environment won't declare gem dependencies if the plugin exists. (Aslak Hellesøy)
1531
+ * The Rails cucumber generator will no longer declare gem dependencies on rspec if you use --testunit. (Aslak Hellesøy)
1532
+
1533
+ ### New features
1534
+ * Spork support via --drb. (Ben Mabey)
1535
+ * Added a Ast::Feature#name method for convenience. (Aslak Hellesøy)
1536
+
1537
+ ### Changed features
1538
+ * The HTML formatter wraps examples in a div, and distinguishes between Scenario and Scenario Outline. (Aslak Hellesøy)
1539
+
1540
+ ## [0.3.9](https://github.com/cucumber/cucumber-ruby/compare/v0.3.8...v0.3.9)
1541
+
1542
+ Bugfix release for 0.3.8 released earlier today. 0.3.8 had a bug in the Rails cucumber
1543
+ generator which is fixed in 0.3.9.
1544
+
1545
+ ### Bugfixes
1546
+ * Fix broken Rails cucumber generator (Tim Glen)
1547
+ * The Cucumber Rake task in non-fork mode will properly cause Rake to exit with 1 when Cucumber fails. (Aslak Hellesøy)
1548
+
1549
+ ## [0.3.8](https://github.com/cucumber/cucumber-ruby/compare/v0.3.7...v0.3.8)
1550
+
1551
+ This Cucumber version fixes several bugs related to Ruby on Rails and RSpec. If you
1552
+ use Cucumber with a Rails app we*strongly* recommend you bootstrap Cucumber again:
1553
+
1554
+ ruby script/generate cucumber
1555
+
1556
+ ### New Features
1557
+ * Rails cucumber generator sets up default gem dependencies in cucumber environment.
1558
+ * The duration of a run is reported by formatters - same format as the Linux time command (#228 Aslak Hellesøy)
1559
+ * Scenario and ExampleRow objects (passed to Before and After hooks) have #name and #line methods (#316 Aslak Hellesøy)
1560
+ * Rails generator creates a cucumber environment file to avoid potential cache_classes conflicts in test.rb (#165, Ben Mabey)
1561
+ * HTML formatter renders @tags (but the CSS is still ugly)
1562
+
1563
+ ### Removed/changed features
1564
+ * The Cucumber Rake task will again fork by default (as 0.3.3 and earlier). Forking must be turned off explicitly. (Aslak Hellesøy)
1565
+
1566
+ ### Bugfixes
1567
+ * Better coexistence with RSpec - Cucumber now*neuters* the part of RSpec that tries to parse ARGV.
1568
+ * The differ= exception is gone (#325, #340 Aslak Hellesøy)
1569
+
1570
+ ## [0.3.7](https://github.com/cucumber/cucumber-ruby/compare/v0.3.6...v0.3.7)
1571
+
1572
+ This is the "Help JetBrains RubyMine" release!
1573
+
1574
+ ### New Features
1575
+ * Added new Given alias for Catalan: Donat|Donada (Lleïr Borràs Metje)
1576
+ * New --expand option. This will print Scenario Outlines once for each Example row - with values expanded. (#327 Aslak Hellesøy)
1577
+ * You can override the formatter in Rails-generated rake tasks with the CUCUMBER_FORMAT environment variable (#335 Aslak Hellesøy)
1578
+
1579
+ ### Bugfixes
1580
+ * 'specs' folder needs to be renamed back to 'spec' (#339 Aslak Hellesøy)
1581
+ * CUCUMBER_OPTS doesn't work for cucumber rake tasks (#336 Aslak Hellesøy)
1582
+
1583
+ ## [0.3.6](https://github.com/cucumber/cucumber-ruby/compare/v0.3.5...v0.3.6)
1584
+
1585
+ Kanban! With this release you can tag features or scenarios that are work in progress
1586
+ with a tag and use the new --wip switch.
1587
+
1588
+ Another handy feature in this release is that you can package your own formatters in RubyGems.
1589
+
1590
+ ### New features
1591
+ * New --wip switch. See http://www.jroller.com/perryn/entry/bdd_on_a_multi_disciplined (Perryn Fowler)
1592
+ * Added a AfterStep hook (Luke Melia)
1593
+ * New aliases for Vietnamese (Ngoc Dao)
1594
+ * Automatic require of custom formatters. --require is no longer needed to load them, and they can be in Ruby gems. (Aslak Hellesøy)
1595
+ * Lazy loading of built-in formatters. Should improve startup time a little bit.
1596
+
1597
+ ### Bugfixes
1598
+ * Gracefully handle exceptions in After block (#330 Matt Wynne)
1599
+ * Feature with only Background doesn't run hooks (#314, #329 Aslak Hellesøy)
1600
+
1601
+ ## [0.3.5](https://github.com/cucumber/cucumber-ruby/compare/v0.3.4...v0.3.5)
1602
+
1603
+ Let's make a new release today because two annoying bugs are fixed.
1604
+
1605
+ ### Bugfixes
1606
+ * Allow feature element names to contain Gherkin keywords as long as they are not the first word on a newline (#319, #307 Joseph Wilk)
1607
+
1608
+ ## [0.3.4](https://github.com/cucumber/cucumber-ruby/compare/v0.3.3...v0.3.4)
1609
+
1610
+ A couple of great new features in this release. Running with Rake is faster than before,
1611
+ and there is a brand new JUnit formatter - great for Continuous Integration reports!
1612
+
1613
+ This release was made especially for the Oslo XP Meetup today.
1614
+
1615
+ ** IMPORTANT UPGRADE NOTES FOR RAILS USERS**
1616
+
1617
+ Running Cucumber features in the same Ruby interpreter as Rake doesn't seem to work,
1618
+ so you have to explicitly tell the task to fork (like it was doing by default in prior
1619
+ versions). In lib/tasks/cucumber.rake:
1620
+
1621
+ Cucumber::Rake::Task.new(:features) do |t|
1622
+ t.fork = true # Explicitly fork
1623
+ t.cucumber_opts = %w{--format pretty}
1624
+ end
1625
+
1626
+ (If you run script/generate cucumber this will be done for you).
1627
+ Alternatively you can omit forking and run features like this:
1628
+
1629
+ RAILS_ENV=test rake cucumber
1630
+
1631
+ However, setting the RAILS_ENV is easy to forget, so I don't recommend relying on this.
1632
+
1633
+ ### Bugfixes
1634
+ * Hooks (World, Before, After) are no longer executed when --dry-run (Aslak Hellesøy)
1635
+ * Proper UTF8 use in HTML formatter (Herminio Torres)
1636
+ * Problem with multiple terms in languages.yml (#321 Aslak Hellesøy)
1637
+
1638
+ ### New features
1639
+ * New JUnit formatter (Gareth Jones)
1640
+ * Support for Vietnamese (Ngoc Dao)
1641
+ * Added aliases for Feature and But in Japanese (Leonard Chin)
1642
+ * Support for Catalan (Francesc Esplugas)
1643
+
1644
+ ### Changed features
1645
+ * --exclude flag now works on ruby files in addition to feature files (#312 Ben Mabey)
1646
+ * The Java example under examples/java uses Ant instead of Rake - and the new JUnit formatter.
1647
+ * Rake task should not shell out (#297 Aslak Hellesøy)
1648
+ The Cucumber Rake task will run Cucumber in the same Ruby interpreter as Rake itself
1649
+ unless explicitly told to fork a new interpreter. This is to increase speed. You can
1650
+ force a new interpreter by setting fork=true or rcov=true in the task.
1651
+
1652
+ ## [0.3.3](https://github.com/cucumber/cucumber-ruby/compare/v0.3.2...v0.3.3)
1653
+
1654
+ Minor bugfix release, made specially for EuRuKo!
1655
+
1656
+ ### Bugfixes
1657
+ * Summaries are no longer printed in an empty () if there are no scenarios/steps (Aslak Hellesøy)
1658
+ * Background, Scenario Outline, Before Hook interaction (#309 Aslak Hellesøy)
1659
+ * Multiline String snippets no longer give misleading info. It's a String, not a PyString that's sent to step def.
1660
+
1661
+ ### Removed/changed features
1662
+ * New aliases: --no-source/-s, --name/-n (#317 Lonnon Foster)
1663
+
1664
+ ## [0.3.2](https://github.com/cucumber/cucumber-ruby/compare/v0.3.1...v0.3.2)
1665
+
1666
+ This release has some minor bug fixes and new features.
1667
+ Nothing major, but we need a release for RailsConf'09 in Las Vegas!
1668
+
1669
+ ### Bugfixes
1670
+ * rake tasks with profiles not respecting --require flags (#311 Ben Mabey)
1671
+ * Step table with blank cell fails (#308 JohnnyT)
1672
+ * Fixed error where unused table cells in Examples where raising exceptions due to having no status (#302 Joseph Wilk)
1673
+
1674
+ ### New features
1675
+ * Support for Hebrew (Ido Kanner)
1676
+ * Summary should report scenarios (#32 Aslak Hellesøy)
1677
+ * Examples and the associated tables are indented one level deeper than Scenario Outline. (Aslak Hellesøy)
1678
+ * Added support for Examples selection when using --name. (#295 Joseph Wilk)
1679
+
1680
+ ## [0.3.1](https://github.com/cucumber/cucumber-ruby/compare/v0.3.0...v0.3.1)
1681
+
1682
+ This release has several minor bug fixes and new features. With the addition of Latvian and Hungarian Cucumber
1683
+ now supports 32(!!) languages.
1684
+
1685
+ ### New features
1686
+ * Support multiline names for Scenarios, Scenario Outlines, Backgrounds, Examples (#231 Joseph Wilk)
1687
+ * Added #headers to Cucumber::Ast::Table (Ben Mabey)
1688
+ * New translation for Latvian (Vitauts Stočka)
1689
+ * New translation for Hungarian (#287 Bence Golda)
1690
+ * Pick up failure on after hook (#272 Aslak Hellesøy)
1691
+
1692
+ ### Bugfixes
1693
+ * Pretty formatter not colouring Examples tables correctly (#304 Aslak Hellesøy)
1694
+ * Problem using --scenario and Scenario Outline (#298 Aslak Hellesøy)
1695
+ * Tag Hook gets executed always there is a background (#301 Aslak Hellesøy)
1696
+ * Feature which only has a Background with steps causes an exception (#306 Aslak Hellesøy)
1697
+ * Gem no longer depends on Hoe (Aslak Hellesøy)
1698
+ * Span html tags appear on HTML results with 0.3.0 (#299 Aslak Hellesøy)
1699
+ * Fixed incorrect colours in pretty formatter's table headers for outline tables (Aslak Hellesøy)
1700
+ * Exceptions from steps called within hooks are now reraised. (#294 Ben Mabey)
1701
+
1702
+ ### Removed/changed features
1703
+ * --scenario handle has been removed and replaced with --name which supports partial matches, regexp special characters, running named backgrounds (#295 Joseph Wilk)
1704
+
1705
+ ## [0.3.0](https://github.com/cucumber/cucumber-ruby/compare/v0.2.3...v0.3.0)
1706
+
1707
+ This release has some minor changes to the APIs, but big enough that a new major release is in order.
1708
+ The biggest change is the new semantics of the #World method. Previously you would call this method
1709
+ several times, passing a Proc and extending the world object of the previous one with a Ruby module.
1710
+ The problem was that there was no nice way to ensure the order in which these procs were called, which
1711
+ led to some unexpected situations. In this release you can only register a single World proc. If you
1712
+ want to extend a world with certain modules, you simply call the #World method with the module(s)
1713
+ you wish to extend the World with. The Sinatra example illustrates how to do this. Also check out
1714
+ the RDoc for Cucumber::StepMother#World.
1715
+
1716
+ The Visitor API (which is used for formatters) has also changed slightly. However, we have tried to
1717
+ do this in a backwards compatible way, so if you have custom formatters for Cucumber 0.2 they should
1718
+ still work.
1719
+
1720
+ One of the most significant new features is Tagged Hooks: http://wiki.github.com/aslakhellesoy/cucumber/hooks
1721
+ This lets you associate Before and After blocks with specific scenarios.
1722
+
1723
+ We are also deprecating the step_list, step_pattern, feature_list, and feature_pattern accessors on
1724
+ Cucumber::Rake::Task. These accessors will be completely removed in version 0.4. For complex settings
1725
+ please rely on cucumber profiles in your rake tasks:
1726
+ http://wiki.github.com/aslakhellesoy/cucumber/using-rake#profiles
1727
+
1728
+ ### New features
1729
+ * Use Hooks with @tags (#229 Aslak Hellesøy)
1730
+ * Rake task supports cucumber.yml profiles (#187 Ben Mabey)
1731
+ * Field value steps for Webrat (Jack Chen)
1732
+ * Added translation for Bulgarian (Krasimir Angelov)
1733
+ * Updated translation for Polish (#273 Grzegorz Marszałek)
1734
+ * Only a single World proc can be registered. World extension now happens by calling #World with ruby modules.
1735
+ * Portuguese uses Funcionalidade in stead of Característica and accented words are aliased with unaccented ones (Alexandre da Silva and Felipe Coury).
1736
+ * The usage formatter also prints unused step definitions (Aslak Hellesøy)
1737
+ * Better exception if a World proc returns nil. (Aslak Hellesøy)
1738
+ * Allow Step Definitions to use |*varargs|, but only on Ruby 1.9. (Aslak Hellesøy)
1739
+ * Snippets for steps that use Step Tables or PyStrings include block param and object type hint comment (#247 Joseph Wilk)
1740
+ * Support description string for Backgrounds (#271 Joseph Wilk)
1741
+
1742
+ ### Bugfixes
1743
+ * After methods not being executed when Background fails (#288 Luismi Cavallé)
1744
+ * Fixed dependency on internal files in rspec breaks cucumber w/ rspec-1.2.4 (#291 Aslak Hellesøy)
1745
+ * Fix color use when using autotest on Linux. (Hans de Graaff)
1746
+ * Fixed incorrect calculation of pystring indentation (#279 Eugene Naydanov)
1747
+ * Fixed --format html leads to an error (#252 Aslak Hellesøy)
1748
+ * Fixed Background runs twice (#255 Aslak Hellesøy)
1749
+ * Fixed Background Transactions and :xx (#270 Aslak Hellesøy)
1750
+ * Fixed Autospec failing with cucumber 0.2 (#254 Aslak Hellesøy)
1751
+ * Sibling file detecting not working (#278 Aslak Hellesøy)
1752
+
1753
+ ### Removed/changed features
1754
+ * The visitor API has changed slightly:
1755
+ * \#visit_step_name, #visit_multiline_arg and \#visit_exception are no longer official API methods.
1756
+ * \#visit_step_result replaces those 3 methods.
1757
+ * Table and PyString no longer hold status information. Each visitor subclass should store state in @state if needed.
1758
+ * \#visit_py_string no longer takes a status argument.
1759
+
1760
+ ## [0.2.3](https://github.com/cucumber/cucumber-ruby/compare/v0.2.2...v0.2.3)
1761
+
1762
+ This release sports 4 updated languages, slightly better help with snippets if you "quote" arguments
1763
+ in your steps. Windows/JRuby users can enjoy colours and you get some more sugar with Tables.
1764
+
1765
+ ### New features
1766
+ * Added new Then /^I should be on (.+)$/ do |page_name| step (Grant Hollingworth)
1767
+ * Use skipped_param color for examples table header (#266 Eugene Naydanov)
1768
+ * Added new Cucumber::Ast::Table#rows_hash method (Torbjørn Vatn)
1769
+ * Windows/JRuby users can now enjoy colourful output (via http://github.com/aslakhellesoy/ansicolor) (#166 Aslak Hellesøy)
1770
+ * Ambiguous step errors hint about --guess (unless --guess already on) (Aslak Hellesøy)
1771
+ * Added translation for Slovak (Ahmed Al Hafoudh)
1772
+ * Updated translation for Dutch (Bart Zonneveld)
1773
+ * Updated translation for Italian (Alessandro Baroni)
1774
+ * Updated translation for Japanese (KAKUTANI Shintaro)
1775
+
1776
+ ### Bugfixes
1777
+ * Fixed step name after step keyword without space (#265 Aslak Hellesøy)
1778
+ * Backtrace is back in HTML reports (Aslak Hellesøy)
1779
+
1780
+ ## [0.2.2](https://github.com/cucumber/cucumber-ruby/compare/v0.2.1...v0.2.2)
1781
+
1782
+ This release includes some minor changes to make Cucumber work with pure Java. Cucumber
1783
+ has already worked with Java for a while (using JRuby and step definitions in Ruby),
1784
+ but now you can write step definitions in pure Java!
1785
+
1786
+ Check out the Cucumber Java project for more details:
1787
+ http://github.com/aslakhellesoy/cucumber_java/tree/master
1788
+
1789
+ ## [0.2.1](https://github.com/cucumber/cucumber-ruby/compare/v0.2.0...v0.2.1)
1790
+
1791
+ This release fixes a few minor bugs and adds a couple of new features.
1792
+
1793
+ ### Bugfixes
1794
+ * Fixed Cucumber, and rails controller error handling (#49 Matt Patterson)
1795
+ * HTML Formatter doesn't work correctly with scenario Outlines. (#260 Aslak Hellesøy)
1796
+ * After blocks are run in reverse order of registration. (#113 Aslak Hellesøy)
1797
+ * Snippets are showing 'Ands' (#249 Aslak Hellesøy)
1798
+
1799
+ ### New features
1800
+ * Snippets use a regexp and block arguments if the step name has "quoted" arguments. (Aslak Hellesøy)
1801
+ * Cucumber::Ast::Feature#to_sexp includes the file name. (Aslak Hellesøy)
1802
+ * support/env.rb is not loaded when --dry-run is specified. This is to increase performance. (Aslak Hellesøy)
1803
+ * New usage formatter. This is the foundation for editor autocompletion and navigation between steps and step definitions. (#209 Aslak Hellesøy)
1804
+
1805
+ ### Removed features
1806
+ * -S/--step-definitions option introduced in 0.2.0 is removed. Use --format usage [--dry-run] [--no-color].
1807
+
1808
+ ## [0.2.0](https://github.com/cucumber/cucumber-ruby/compare/v0.1.16...v0.2.0)
1809
+
1810
+ This release sports a bunch of new and exciting features, as well a major rewrite of Cucumber's internals.
1811
+ The rewrite was done to address technical debt and to have a code base that is easier to evolve and maintain.
1812
+
1813
+ There are some changes to the Gherkin language that breaks backwards compatible with the 0.1.x series.
1814
+ Most importantly, "GivenScenario" and "More Examples" no longer exist. See the "Removed features" section
1815
+ below for more details on how to use alternatives.
1816
+
1817
+ Since the grammar has changed, there are some new keywords. We have to rely on the community
1818
+ to provide updated translations. This is much easier than before - just update languages.yml.
1819
+ There is no static code generation anymore. To list all languages:
1820
+
1821
+ cucumber --lang help
1822
+
1823
+ And to list the keywords for a particular language:
1824
+
1825
+ cucumber --lang en-lol help
1826
+
1827
+ There are some really awesome new features in this release: Tagging, Autoformatting, automatic
1828
+ aliasing of keywords in all languages, full Ruby 1.9 support and improved output
1829
+ for multiline arguments are some of the highlights.
1830
+
1831
+ ### Bugfixes
1832
+ * New StepInvocation breaks console formatter for pending steps. (#241 Jacob Radford)
1833
+ * Within Scenario Outlines when replacing with a nil in a step name use empty string instead. (#237 Joseph Wilk)
1834
+ * Fixed bug with Scenario Outlines incorrectly replacing values in step tables with nil. (#237 Joseph Wilk)
1835
+ * Within Scenario Outlines when replacing with a nil in multiline strings use empty string instead. (#238 Joseph Wilk)
1836
+ * Re-structure the ast: Feature -> Background -> (Scenario|ScenarioOutline)*. Fixes bug with background being called outside transactions. (#181 Joseph Wilk)
1837
+ * --strict always exits with status 1 (#230 Tim Cuthbertson)
1838
+ * Fix error with nil values in tables raising an exception (#227 Joseph Wilk)
1839
+ * Add support for using << in formatters to ensure the html formatter works (#210 Joseph Wilk)
1840
+ * Explicitly require env.rb files first to avoid potential load order problems. (#213, Ben Mabey, Randy Harmon)
1841
+ * Depend on polyglot version (0.2.4) to avoid masking require errors. (Aslak Hellesøy).
1842
+ * -n option does not suppress the line info for a Scenario Outline (#175 Aslak Hellesøy)
1843
+ * Errors with rspec-rails matchers in cucumber 0.1.99 (#173 David Chelimsky)
1844
+ * Can't use an empty string as a table value in a scenario outline (#172 Aslak Hellesøy)
1845
+ * Really skip skipped steps (#90 Aslak Hellesøy)
1846
+ * No output for multi-line strings (#71 Aslak Hellesøy)
1847
+ * Fix cucumber/formatter/unicode flaws on Windows (#145 Michael)
1848
+ * Autotest-related Bugs: YAML missing (#136 Tobias Pape)
1849
+ * Overeager "rescue LoadError" hides lots of errors (#137 Jonathan del Strother)
1850
+ * Nested steps don't show mismatch (#116 Aslak Hellesøy)
1851
+ * Pending steps in > steps called from steps (#65 Aslak Hellesøy)
1852
+
1853
+ ### New features
1854
+ * Australian translation (Josh Graham)
1855
+ * Added World#puts(announcment) which lets you output text to the formatted output (#222 Rob Kaufmann)
1856
+ * Added Table#transpose to to allow use of vertically aligned table keys (Torbjørn Vatn, Aslak Hellesøy)
1857
+ * Added Table#map_headers to to allow use of more readable headers (Rob Holland)
1858
+ * New -S/--step-definitions option. Useful (among other things) for tools that implement automcompletion. (#208 Aslak Hellesøy).
1859
+ * The cucumber.rake file defines a dummy :features task if Cucumber is not installed (#225 Josh Nichols)
1860
+ * Added Table#map_column! to ease casting of cell values into relevant types (#223 Rob Holland)
1861
+ * New --no-diff option (#218 Bryan Ash)
1862
+ * Rails generators supports testunit and rspec option, defaulting to rspec (#217 Josh Nichols)
1863
+ * Sinatra Example (#204 Rob Holland)
1864
+ * Keywords can be aliased in languages.yml. See English for an example (examples: Examples|Scenarios)
1865
+ * Adding support for Background (#153 Joseph Wilk)
1866
+ * Added Česky/Czech (Vojtech Salbaba)
1867
+ * New --no-multiline option to reduce noise in output. Useful if lots of features are failing. (Aslak Hellesøy)
1868
+ * Added ability to pass URIs to cucumber in addition to files and directories. Useful for troubleshooting! (Aslak Hellesøy)
1869
+ * Groups of tabular scenarios (#57 Aslak Hellesøy)
1870
+ * Tagging scenarios and features. Pick the ones to run with --tags (#54 Aslak Hellesøy)
1871
+ * Make the current scenario available to the steps. (#44 Aslak Hellesøy)
1872
+ * Step definition snippets contain a 'pending' call (#84 Aslak Hellesøy)
1873
+ * Call multiline steps from other steps (#144 Aslak Hellesøy)
1874
+ * Run cucumber with --autoformat DIR to reformat (pretty print) all of your feature files. (Aslak Hellesøy)
1875
+ * New --strict option exits with an error code if there are undefined steps. (#52 Aslak Hellesøy)
1876
+ * Given, When, Then methods (used in step definitions) are automatically aliased to current language. Use $KCODE='u' in env.rb if needed.
1877
+ * Run cucumber --language help to see all supported languages. (Aslak Hellesøy)
1878
+ * Run cucumber --language LANG help to see keywords for a given language. (Aslak Hellesøy)
1879
+ * Multiline arguments (tables and """ strings) are printed in the output. (Aslak Hellesøy)
1880
+ * It's no longer necessary to compile the Treetop grammar when adding a new language. Localised parser is generated at runtime. (Aslak Hellesøy)
1881
+ * New --guess option tries to guess the best step definition match instead of raising Cucumber::Multiple. (Jake Howerton)
1882
+
1883
+ ### Removed features
1884
+ * "GivenScenario" is gone. Instead you can call Steps from Step Definitions, or use the new Background feature (#153)
1885
+ * "More Examples" is gone. "Scenario" + "More Examples" is no longer supported. Use "Scenario Outline" + "Examples" instead.
1886
+ * Pure Ruby features are no longer supported.
1887
+ * Remove --color option in autotest. Can be added manually in cucumber.yml (#215 Jean-Michel Garnier)
1888
+
1889
+ ## 0.1.16.4
1890
+
1891
+ Bugfix release.
1892
+
1893
+ IMPORTANT NOTE FOR RAILS USERS.
1894
+ The template used to generate your features/support/env.rb has changed. You have to apply a minor change
1895
+ manually for existing Rails projects when you upgrade to this version. Change this:
1896
+
1897
+ require 'webrat/rspec-rails'
1898
+
1899
+ to this:
1900
+
1901
+ require 'webrat/core/matchers'
1902
+
1903
+ ### New features
1904
+ * Finnish translation (Tero Tilus)
1905
+ * Use Webrat's #contain matcher in generated "I should (not) see" step definitions (Bryan Helmkamp)
1906
+
1907
+ == Bugfixes
1908
+ * Escaped quotes - \" - inside multiline strings will be unescaped.
1909
+ * Flush output in HTML formatter since JRuby doesnt do it automatically (Diego Carrion)
1910
+ * Better handling of ARGV (#169 David Chelimsky, Ben Mabey)
1911
+ * Compatibility with ruby-debug (do ARGV.dup in bin/cucumber so it can restart ruby with same args) (Aslak Hellesøy)
1912
+
1913
+ ## [0.1.16](https://github.com/cucumber/cucumber-ruby/compare/v0.1.15...v0.1.16)
1914
+
1915
+ This is a small bugfix release. The most notable improvement is compatibility with Webrat 0.4. Rails/Webrat users should
1916
+ upgrade both Cucumber and Webrat gems.
1917
+
1918
+ ### New features
1919
+ * Allow argument placeholders in step tables and multiline comments (#121 Joseph Wilk)
1920
+ * Scenario Outline can be followed by several named Examples sections (#123 Aslak Hellesøy)
1921
+ * Add the #binary= method back to the Rake task. It is needed by merb_cucumber for running the features of a merb app with it's bundled gems. (Thomas Marek)
1922
+ * Added a /^When I go to (.+)$/ step definition to webrat_steps.rb and a simple page name to path mapping method (Bryan Helmkamp)
1923
+
1924
+ ### Bugfixes
1925
+ * Fix to run single scenarios when the line number specified doesn't correspond to a step (i.e. blank lines or rows) (#160 Luismi Cavallé)
1926
+
1927
+ ### Removed features
1928
+
1929
+ ## [0.1.15](https://github.com/cucumber/cucumber-ruby/compare/v0.1.14...v0.1.15)
1930
+
1931
+ Bugfix release
1932
+
1933
+ ### New features
1934
+ * 한국어! (Korean!) (John Hwang)
1935
+
1936
+ ### Bugfixes
1937
+ * --dry-run skips running before/after/steps (#147 Ian Dees)
1938
+ * Fix a minor bug in the console formatter's summary (David Chelimsky)
1939
+ * Better quoting of Scenario names in Autotest (Peter Jaros)
1940
+ * Added some small workarounds for unicode handling on Windows (Aslak Hellesøy)
1941
+
1942
+ ## [0.1.14](https://github.com/cucumber/cucumber-ruby/compare/v0.1.13...v0.1.14)
1943
+
1944
+ This is the first release of Cucumber that runs on Ruby 1.9. There are still some encoding-related issues
1945
+ with Arabic (ar), Japanese (ja) and Simplified Chinese (zh-CN). Patches are welcome. Other than that -
1946
+ a couple of minor bug fixes and polishing.
1947
+
1948
+ ### New features
1949
+ * Pretty formatter shows number of scenarios (#139 Joseph Wilk)
1950
+ * Rudimentary support for Ruby 1.9. Now it's ok to file Ruby 1.9-related bugs.
1951
+
1952
+ ### Bugfixes
1953
+ * Fixed "No such file or directory -- cucumber (LoadError)" bug with AutoTest (Aslak Hellesøy)
1954
+ * Fixed `load_missing_constant': uninitialized constant Dispatcher error with Rails (Aslak Hellesøy)
1955
+
1956
+ ### Removed features
1957
+ * The #binary= method is gone from the Rake task. It will always point to the binary in the current gem. (Aslak Hellesøy)
1958
+
1959
+ ## [0.1.13](https://github.com/cucumber/cucumber-ruby/compare/v0.1.12...v0.1.13)
1960
+
1961
+ It's time for some new features again. Output is now much better since you can use diffing, tweak
1962
+ the output colours and get the full --backtrace if you want. Managing your support/* files became
1963
+ a little easier since they are now always loaded before the step definitions. Life became easier
1964
+ for Windows users in Norway (and other countries using unicode in the features). Plus several other
1965
+ bug fixes.
1966
+
1967
+ Enjoy!
1968
+
1969
+ ### New features
1970
+ * Console output is no longer bold, but regular. Step arguments are bold instead of blold+underlined. (Aslak Hellesøy)
1971
+ * Console output can be configured with CUCUMBER_COLORS in your shell. (Aslak Hellesøy)
1972
+ * Added new --backtrace option to show full backtrace (Aslak Hellesøy)
1973
+ * Enable RSpec's diffing automatically if RSpec is loaded (Aslak Hellesøy)
1974
+ * Files in support directories are loaded before any other file (i.e. step definitions.) (#120, Ben Mabey)
1975
+ * The Rails features generator got some love and is now tested: http://github.com/aslakhellesoy/cucumber_rails (Aslak Hellesøy)
1976
+ * --language is aliased to -l instead of -a (-l became available when --line was refactored) (Aslak Hellesøy)
1977
+ * Scenario Outlines which through placeholders in the steps allow control of how scenario table values are used. (#57 Joseph Wilk)
1978
+ * Scenario Outlines are now usable in pure ruby (Joseph Wilk)
1979
+ * Add support for calling 'pending' from step definitions. (#112 Joseph Wilk)
1980
+
1981
+ ### Bugfixes
1982
+ * Make rails before filters work correctly (#122, #129 Guillermo Álvarez Fernández)
1983
+ * Proper Unicode support for Windows command shells: Just require cucumber/formatter/unicode in env.rb (Aslak Hellesøy)
1984
+ * Fixed disappearing "a" on Windows (#81 Aslak Hellesøy)
1985
+ * Fixed a bug where row step outlines were loosing step tables. (#121 Joseph Wilk, Ben Mabey)
1986
+ * The Cucumber Autotest plugin now launches JRuby if autotest is run with JRuby (Aslak Hellesøy)
1987
+ * Provide helpful and non-confusing error message when specified profile is blank. (#118, Ben Mabey)
1988
+ * Improve handling and error messages for malformed cucumber.yml files. (#117, Ben Mabey)
1989
+ * document :x run option in command line help (#114, Aslak Hellesøy)
1990
+ * Change 'visits' to 'visit' in features generator to comply with new Webrat API (Darius Roberts)
1991
+
1992
+ ### Removed features
1993
+
1994
+ ## [0.1.12](https://github.com/cucumber/cucumber-ruby/compare/v0.1.11...v0.1.12)
1995
+
1996
+ This is the "getting serious with IronRuby release" - largely based on
1997
+ "Patrick Gannon":http://www.patrickgannon.net/archive/2008/10/23/bdd-style-feature-tests-using-ironruby-and-rspeccucumber.aspx's
1998
+ blog entry.
1999
+
2000
+ ### New features
2001
+ * Cucumber works with IronRuby/.NET - http://github.com/aslakhellesoy/cucumber/wikis/ironruby-and-net (Aslak Hellesøy)
2002
+
2003
+ ### Bugfixes
2004
+ * Fixed bug which was preventing coloring under Autotest (#111, Alan Larkin)
2005
+
2006
+ ### Removed features
2007
+ None
2008
+
2009
+ ## [0.1.11](https://github.com/cucumber/cucumber-ruby/compare/v0.1.10...v0.1.11)
2010
+
2011
+ Bugfix release with a couple of minor additional features to the command line options.
2012
+
2013
+ ### New features
2014
+ * Capture output from cucumber in Autotest (Alan Larkin)
2015
+ * Update cucumber generator to work with latest Webrat (Bryan Helkamp)
2016
+ * CUCUMBR LIKEZ 2 SPEEK WIF KATS. KTHXBAI (Aimee Daniells)
2017
+ * Support for dynamically pluggable formatters (#99 Joseph Wilk)
2018
+ * --verbose mode to see ruby files and feature files loaded by Cucumber (#106 Joseph Wilk)
2019
+
2020
+ ### Bugfixes
2021
+ * The jcode library is not loaded on JRuby/Rails. Workaround for http://tinyurl.com/55uu3u. (Aslak Hellesøy)
2022
+ * Support including modules for class passed to --format (#109 Joseph Wilk)
2023
+
2024
+ ### Removed features
2025
+ * The cucumber gem no longer depends on the rspec gem. It must be downloaded manually if RSpec is used. (Jeff Rafter)
2026
+
2027
+ ## [0.1.10](https://github.com/cucumber/cucumber-ruby/compare/v0.1.9...v0.1.10)
2028
+
2029
+ This release mostly has smaller bugfixes. The most significant new feature is how
2030
+ line numbers are specified. You can now run multiple features at specific lines numbers like this:
2031
+
2032
+ cucumber foo.feature:15 bar.feature:6:45:111
2033
+
2034
+ This will run foo.feature at line 15 and bar.feature at line 6, 45 and 111.
2035
+
2036
+ ### New features
2037
+ * Added example showing how to use Cucumber with Test::Unit + Matchy instead of RSpec (Aslak Hellesøy)
2038
+ * Yield existing world object to World block (#87 Aslak Hellesøy)
2039
+ * AUTOFEATURE=tRue works (case insensitive) (Aslak Hellesøy)
2040
+ * Initial support for .NET via IronRuby. (Aslak Hellesøy)
2041
+ * Lithuanian translation (sauliusgrigaitis)
2042
+ * New webrat step defintions to wrap the new selects_time, selects_date, and selects_datetime methods. (Ben Mabey)
2043
+ * Try to load webrat gem if it's not installed as a plugin (Aslak Hellesøy)
2044
+ * Support example.feature:20 or example.feature:10:20:30 syntax for running features at specific line number(s). (#88 Joseph Wilk)
2045
+
2046
+ ### Bugfixes
2047
+ * Windows - all the 'a' characters in the output have gone on strike (#81 Luis Lavena, Joseph Wilk, Aslak Hellesøy)
2048
+ * Raise a nice error when encountering step definition without block (#95 Aslak Hellesøy)
2049
+ * Features written using Ruby where breaking due to missing a line number (#91 Joseph Wilk)
2050
+ * Directly creating a Table meant the scenario table header was never set which was causing a formatter error (#91 Joseph Wilk)
2051
+
2052
+ ### Removed features
2053
+ * $KCODE='u' is no longer done automatically. Developers should do that explicitly when needed in step definitions or env.rb.
2054
+ * Step definition without a block being treated as pending (#64 Joseph Wilk)
2055
+ * The --line option has been removed. Use the new file.feature:line format instead.
2056
+
2057
+ ## [0.1.9](https://github.com/cucumber/cucumber-ruby/compare/v0.1.8...v0.1.9)
2058
+
2059
+ With this release Cucumber supports 19 (!) natural languages:
2060
+
2061
+ * Arabic
2062
+ * Chinese Simplified
2063
+ * Danish
2064
+ * Dutch
2065
+ * Estonian
2066
+ * French
2067
+ * German
2068
+ * Italian
2069
+ * Japanese
2070
+ * Malay
2071
+ * Norwegian
2072
+ * Polish
2073
+ * Portuguese
2074
+ * Romanian
2075
+ * Russian
2076
+ * Spanish
2077
+ * Swedish
2078
+ * Texan
2079
+ * Welsh
2080
+
2081
+ Thanks a lot to everyone who has contributed translations. If you don't see your language here, please
2082
+ add it: http://github.com/aslakhellesoy/cucumber/wikis/spoken-languages
2083
+
2084
+ Main functional changes in this release is "Autotest":http://github.com/aslakhellesoy/cucumber/wikis/autotest-integration
2085
+ support and how multiline strings work in feature files:
2086
+
2087
+ # In your .feature file
2088
+ Then I should see
2089
+ """
2090
+ A string
2091
+ that "indents"
2092
+ and spans
2093
+ several lines
2094
+
2095
+ """
2096
+
2097
+ # In your steps.rb file
2098
+ Then 'I should see' do |text|
2099
+ text.should == "A string\n that \"indents\"\nand spans\nseveral lines\n"
2100
+ end
2101
+
2102
+ The triple quotes are used to define the start and end of a string, and it also defines what gets stripped away
2103
+ in the inside string. If the triple quotes are indented 4 spaces, then the text within will have the 4 first
2104
+ spaces removed too.
2105
+
2106
+ ### New features
2107
+ * Added --[no-]color option to force color on or off (Peter Jaros)
2108
+ * Step definition without a block will be treated as pending (#64 Joseph Wilk)
2109
+ * Added support for Welsh (improvements welcome) (Joseph Wilk)
2110
+ * Added --quiet option to hide all development aid output when using Pretty formatter (#69 Joseph Wilk)
2111
+ * Added --no-snippets option to hide snippets for pending steps when using Pretty formatter (#69 Joseph Wilk)
2112
+ * Added error messages concerning cucumber.yml. (#70 Ben Mabey)
2113
+ * Added Autotest support - work in progress... (Peter Jaros)
2114
+ * Added new --exclude option (Bryan Helkamp)
2115
+ * Added new --scenario option (Peter Jaros)
2116
+ * Renamed common_webrat.rb to webrat_steps.rb (Ben Mabey, Aslak Hellesøy)
2117
+ * Added new feature[:feature_path] task (Roman Gonzalez)
2118
+ * Added support for Polish (Joseph Wilk)
2119
+ * Support specifying multiple formatters and multiple outputs (#47 Joseph Wilk)
2120
+ * Added support for Japanese. (Kakutani Shintaro)
2121
+ * Added support for Texan (improvements welcome). (Aslak Hellesøy)
2122
+
2123
+ ### Bugfixes
2124
+ * Pending step snippets should escape special Regexp characters (#82 Joseph Wilk)
2125
+ * Scenario without a body shouldn't show up as complete (#63 Josh Knowles)
2126
+ * Fixed bug where utf-8 strings where breaking comment alighments. (#79 Joseph Wilk)
2127
+ * Fixed next_column_index not resetting after large tables (#60, Barry Mitchelson)
2128
+ * The HTML formatter was rendering everything twice. Cannot invoke visit_feature on formatters in executor (#72 Joseph Wilk)
2129
+ * Row Scenarios need to support pending? in order for the Profile formatter to work (Joseph Wilk)
2130
+ * Snippets are not shown for steps which already have a step definition (#65 Joseph Wilk)
2131
+ * Prevent feature/scenario/pending step comments from containing '//' when running features by specifying a directory with a trailing '/' (Joseph Wilk)
2132
+ * Scenario tables need spacing after them (#59 Joseph Wilk)
2133
+ * Support running scenario table rows when using --line argument (#55 Joseph Wilk)
2134
+ * Don't load cucumber.yml unless it exists (Aslak Hellesøy)
2135
+ * Fixing bug where specifying line number 1 in a feature which starts with a scenario with a scenario table was raising an error (#56 Joseph Wilk)
2136
+
2137
+ ### Removed features
2138
+
2139
+
2140
+ ## [0.1.8](https://github.com/cucumber/cucumber-ruby/compare/v0.1.7...v0.1.8)
2141
+
2142
+ This release extends the support for tables. PLEASE NOTE THAT TABLES ARE STILL EXPERIMENTAL.
2143
+ In previous releases it has been possible to use tables to define "more examples" of a scenario in
2144
+ a FIT-style column fixture kind of way. Now you can also use tables as arguments to steps.
2145
+
2146
+ Tables used to define more examples after a scenario must now be prefixed. In English it looks like this:
2147
+
2148
+ Feature: Addition
2149
+ In order to avoid silly mistakes
2150
+ As a math idiot
2151
+ I want to be told the sum of two numbers
2152
+
2153
+ Scenario: Add two numbers
2154
+ Given I have entered 50 into the calculator
2155
+ And I have entered 70 into the calculator
2156
+ When I press add
2157
+ Then the result should be 120 on the screen
2158
+
2159
+ More Examples:
2160
+ | input_1 | input_2 | button | output |
2161
+ | 20 | 30 | add | 50 |
2162
+ | 2 | 5 | add | 7 |
2163
+ | 0 | 40 | add | 40 |
2164
+
2165
+ Languages that are not updated yet will have to use "More Examples" until we get the translations.
2166
+
2167
+ Tables can also be used as arguments to individual steps. In fact, steps now support a single argument
2168
+ that can span several lines. This can be a table or a string.
2169
+
2170
+ Example:
2171
+
2172
+ Given the following people exist:
2173
+ | name | email | phone |
2174
+ | Aslak | aslak@email.com | 123 |
2175
+ | Joe | joe@email.com | 234 |
2176
+ | Bryan | bryan@email.org | 456 |
2177
+ When I search for email.com
2178
+ Then I should see:
2179
+ | name | email | phone |
2180
+ | Aslak | aslak@email.com | 123 |
2181
+ | Joe | joe@email.com | 234 |
2182
+ And I should see:
2183
+ "Some text
2184
+ on several lines"
2185
+
2186
+ The step definitions for such multiline steps must define an extra block argument for the argument:
2187
+
2188
+ Given /the following people exist:/ do |people_table|
2189
+ # people_table is of type Cucumber::Model::Table
2190
+ # See RDoc for more info
2191
+ end
2192
+
2193
+ Then /I should see:/ do |string|
2194
+ # string is a plain old ruby String with leading spaces on each line removed
2195
+ end
2196
+
2197
+ ### New features
2198
+ * Added profile formatter. (#35, Joseph Wilk)
2199
+ * Added support for Chinese Simplified. (Liming Lian)
2200
+ * Added support for Dutch. (Sjoerd Tieleman)
2201
+ * Multiline steps are now supported. (#4, Aslak Hellesøy)
2202
+ * Tables used to define more examples for a scenario must be prefixed "More Examples" (see languages.yml for other languages)
2203
+ * Show the file and line number for scenarios as a comment when displaying with the pretty formatter. (#40, Joseph Wilk)
2204
+ * Show the file for the feature as a comment when displaying with the pretty formatter. (#40, Joseph Wilk)
2205
+ * Show the feature file and line for pending steps as a comment when displaying with the pretty formatter. (#40, Joseph Wilk)
2206
+
2207
+ ### Bugfixes
2208
+
2209
+ * Fixed speling errors in Spanish (Daniel Cadenas)
2210
+ * ActionMailer delivery_method should not be set to test (#41, Luke Melia)
2211
+ * Reverse incorrectly ordered args in webrat select step (#43, David Chelimsky)
2212
+ * Support comments above the first scenario (#31, Aslak Hellesøy)
2213
+ * Fixed the HTML Formatter to use actual values for FIT table headers (#30, Joseph Wilk)
2214
+
2215
+ ### Removed features
2216
+
2217
+ * Removed the /^I go to (.*)$/ step from common_webrat.rb - it's not language agnostic and provides little value.
2218
+
2219
+ ### New features
2220
+
2221
+ * Added new --out option to make it easier to specify output from Rake and cucumber.yml
2222
+
2223
+ ## [0.1.7](https://github.com/cucumber/cucumber-ruby/compare/v0.1.6...v0.1.7)
2224
+
2225
+ This release fixes a few bugs and adds some new features. The most notable features are:
2226
+
2227
+ ### Calling steps from steps
2228
+
2229
+ Step definitions are a little bit closer to having regular method semantics.
2230
+ You define them, but now you can also call them from other steps. Here is an
2231
+ example:
2232
+
2233
+ Given /I am logged in as an (.*) named (.*)$/ do |role, name|
2234
+ Given "I am registered as #{role}, #{name}, secret"
2235
+ When "I log in with #{name}, secret"
2236
+ end
2237
+
2238
+ Given /I am registered as (.*), (.*), (.*)/ do |role, name, password|
2239
+ # (Code removed for brevity)
2240
+ end
2241
+
2242
+ When /I log in with (.*), (.*)/ do |name, password|
2243
+ # (Code removed for brevity)
2244
+ end
2245
+
2246
+ This means that steps can be reused in other steps. The GivenScenario feature achieves a similar
2247
+ effect (on the scenario level), but this feature is something we're not very happy with, mostly
2248
+ because it's not parameterisable. Calling steps from steps is.
2249
+
2250
+ GivenScenario will still be working several releases, but the plan is to remove it completely in
2251
+ the 0.3.0 release.
2252
+
2253
+ ### Seeing where a step is defined
2254
+
2255
+ Prior to this release it could be hard to find out where the ruby step definition matching
2256
+ a plain text step is defined. Not anymore! Cucumber will now output this:
2257
+
2258
+ Scenario: Regular numbers
2259
+ Given I have entered 3 into the calculator # features/steps/calculator_steps.rb:12
2260
+ And I have entered 2 into the calculator # features/steps/calculator_steps.rb:12
2261
+ When I press divide # features/steps/calculator_steps.rb:16
2262
+ Then the result should be 1.5 on the screen # features/steps/calculator_steps.rb:20
2263
+ And the result class should be Float # features/steps/calculator_steps.rb:24
2264
+
2265
+ ### Bugfixes
2266
+
2267
+ * Fixed a bug in the command line args being lost when using --profile (#27, Joseph Wilk)
2268
+ * Fixed a bug in Webrat selects (Tim Glen)
2269
+ * Fixed parsing of DOS line endings (#2, #28, Aslak Hellesøy)
2270
+
2271
+ ### New features
2272
+
2273
+ * Steps can be called from other steps (#3, Bryan Helmkamp, Aslak Hellesøy)
2274
+ * Added But keyword to all languages (#21, Aslak Hellesøy)
2275
+ * Added --no-source option to display step definition location next to step text (#26, Joseph Wilk, Aslak Hellesøy)
2276
+ * Added more Webrat steps (#25, Tim Glen)
2277
+
2278
+ ## [0.1.6](https://github.com/cucumber/cucumber-ruby/compare/f3292f4023a707099d02602b2bd6c4ca3cec6820...v0.1.6)
2279
+
2280
+ First gem release!