cucumber 2.99.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. checksums.yaml +4 -4
  2. data/.cucumberproignore +6 -0
  3. data/.gitattributes +32 -0
  4. data/.github/ISSUE_TEMPLATE.md +1 -1
  5. data/.github/PULL_REQUEST_TEMPLATE.md +1 -0
  6. data/.rubocop.yml +13 -0
  7. data/.rubocop_todo.yml +991 -0
  8. data/.travis.yml +56 -10
  9. data/{History.md → CHANGELOG.md} +166 -32
  10. data/CONTRIBUTING.md +21 -1
  11. data/Gemfile +18 -5
  12. data/README.md +13 -4
  13. data/Rakefile +12 -2
  14. data/appveyor.yml +27 -0
  15. data/bin/cucumber +2 -1
  16. data/cucumber.gemspec +15 -10
  17. data/cucumber.yml +10 -11
  18. data/examples/i18n/Rakefile +1 -1
  19. data/examples/i18n/ar/features/step_definitions/calculator_steps.rb +8 -3
  20. data/examples/i18n/ar/lib/calculator.rb +2 -2
  21. data/examples/i18n/bg/features/step_definitions/calculator_steps.rb +6 -6
  22. data/examples/i18n/bg/features/support/env.rb +6 -1
  23. data/examples/i18n/bg/lib/calculator.rb +2 -1
  24. data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +10 -5
  25. data/examples/i18n/ca/lib/calculadora.rb +2 -2
  26. data/examples/i18n/cs/features/step_definitions/calculator_steps.rb +10 -5
  27. data/examples/i18n/cs/lib/calculator.rb +3 -3
  28. data/examples/i18n/da/features/step_definitions/lommeregner_steps.rb +10 -5
  29. data/examples/i18n/da/lib/lommeregner.rb +2 -2
  30. data/examples/i18n/de/features/step_definitions/calculator_steps.rb +10 -5
  31. data/examples/i18n/de/lib/calculator.rb +2 -2
  32. data/examples/i18n/el/features/step_definitions/calculator_steps.rb +10 -5
  33. data/examples/i18n/el/lib/calculator.rb +2 -2
  34. data/examples/i18n/en/features/step_definitions/calculator_steps.rb +9 -4
  35. data/examples/i18n/en/lib/calculator.rb +2 -2
  36. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +4 -4
  37. data/examples/i18n/en-lol/features/support/env.rb +6 -2
  38. data/examples/i18n/en-lol/lib/basket.rb +2 -2
  39. data/examples/i18n/en-lol/lib/belly.rb +2 -2
  40. data/examples/i18n/eo/features/step_definitions/calculator_steps.rb +9 -4
  41. data/examples/i18n/eo/lib/calculator.rb +2 -2
  42. data/examples/i18n/es/features/step_definitions/calculador_steps.rb +10 -5
  43. data/examples/i18n/es/lib/calculador.rb +2 -2
  44. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +10 -5
  45. data/examples/i18n/et/lib/kalkulaator.rb +3 -3
  46. data/examples/i18n/fi/features/step_definitions/laskin_steps.rb +9 -4
  47. data/examples/i18n/fi/lib/laskin.rb +1 -1
  48. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +8 -8
  49. data/examples/i18n/fr/features/support/env.rb +7 -2
  50. data/examples/i18n/fr/lib/calculatrice.rb +2 -2
  51. data/examples/i18n/he/features/step_definitions/calculator_steps.rb +10 -5
  52. data/examples/i18n/he/lib/calculator.rb +1 -1
  53. data/examples/i18n/hi/features/step_definitions/calculator_steps.rb +9 -4
  54. data/examples/i18n/hi/lib/calculator.rb +1 -1
  55. data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +9 -5
  56. data/examples/i18n/ht/lib/kalkilatris.rb +2 -2
  57. data/examples/i18n/hu/features/step_definitions/calculator_steps.rb +10 -5
  58. data/examples/i18n/hu/lib/calculator.rb +1 -1
  59. data/examples/i18n/id/features/step_definitions/calculator_steps.rb +10 -5
  60. data/examples/i18n/id/lib/calculator.rb +2 -2
  61. data/examples/i18n/it/features/step_definitions/calcolatrice_steps.rb +10 -5
  62. data/examples/i18n/it/lib/calcolatrice.rb +3 -3
  63. data/examples/i18n/ja/features/step_definitions/calculator_steps.rb +3 -3
  64. data/examples/i18n/ja/features/support/env.rb +7 -2
  65. data/examples/i18n/ja/lib/calculator.rb +2 -2
  66. data/examples/i18n/ko/features/step_definitions/calculator_steps.rb +10 -5
  67. data/examples/i18n/ko/lib/calculator.rb +2 -2
  68. data/examples/i18n/lt/features/step_definitions/calculator_steps.rb +10 -5
  69. data/examples/i18n/lt/lib/calculator.rb +2 -2
  70. data/examples/i18n/lv/features/step_definitions/calculator_steps.rb +10 -5
  71. data/examples/i18n/lv/lib/calculator.rb +2 -2
  72. data/examples/i18n/no/features/step_definitions/kalkulator_steps.rb +3 -3
  73. data/examples/i18n/no/features/support/env.rb +7 -2
  74. data/examples/i18n/no/lib/kalkulator.rb +2 -2
  75. data/examples/i18n/pl/features/step_definitions/calculator_steps.rb +10 -5
  76. data/examples/i18n/pl/features/support/env.rb +6 -1
  77. data/examples/i18n/pl/lib/calculator.rb +2 -2
  78. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +3 -3
  79. data/examples/i18n/pt/features/support/env.rb +7 -2
  80. data/examples/i18n/pt/lib/calculadora.rb +1 -1
  81. data/examples/i18n/ro/features/step_definitions/calculator_steps.rb +11 -6
  82. data/examples/i18n/ro/lib/calculator.rb +1 -1
  83. data/examples/i18n/ru/features/step_definitions/calculator_steps.rb +5 -5
  84. data/examples/i18n/ru/features/support/env.rb +6 -1
  85. data/examples/i18n/ru/lib/calculator.rb +2 -1
  86. data/examples/i18n/sk/features/step_definitions/calculator_steps.rb +10 -5
  87. data/examples/i18n/sk/lib/calculator.rb +2 -2
  88. data/examples/i18n/sr-Cyrl/features/step_definitions/calculator_steps.rb +3 -3
  89. data/examples/i18n/sr-Cyrl/features/support/env.rb +7 -2
  90. data/examples/i18n/sr-Cyrl/lib/calculator.rb +2 -2
  91. data/examples/i18n/sr-Latn/features/step_definitions/calculator_steps.rb +10 -5
  92. data/examples/i18n/sr-Latn/lib/calculator.rb +2 -2
  93. data/examples/i18n/sv/features/step_definitions/kalkulator_steps.rb +9 -4
  94. data/examples/i18n/sv/lib/kalkulator.rb +2 -2
  95. data/examples/i18n/tr/features/step_definitions/hesap_makinesi_adimlari.rb +10 -5
  96. data/examples/i18n/tr/lib/hesap_makinesi.rb +2 -2
  97. data/examples/i18n/uk/features/step_definitions/calculator_steps.rb +4 -4
  98. data/examples/i18n/uk/features/support/env.rb +6 -1
  99. data/examples/i18n/uk/lib/calculator.rb +2 -1
  100. data/examples/i18n/uz/features/step_definitions/calculator_steps.rb +4 -4
  101. data/examples/i18n/uz/features/support/env.rb +6 -1
  102. data/examples/i18n/uz/lib/calculator.rb +2 -1
  103. data/examples/i18n/zh-CN/features/step_definitions/calculator_steps.rb +11 -6
  104. data/examples/i18n/zh-CN/lib/calculator.rb +2 -2
  105. data/examples/i18n/zh-TW/features/step_definitions/calculator_steps.rb +10 -5
  106. data/examples/i18n/zh-TW/lib/calculator.rb +2 -2
  107. data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +3 -3
  108. data/examples/sinatra/features/step_definitions/add_steps.rb +4 -4
  109. data/examples/sinatra/features/support/env.rb +6 -1
  110. data/examples/tcl/features/step_definitions/fib_steps.rb +2 -2
  111. data/examples/tcl/features/support/env.rb +2 -1
  112. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +4 -4
  113. data/examples/watir/features/step_definitions/search_steps.rb +6 -5
  114. data/examples/watir/features/support/env.rb +5 -1
  115. data/examples/watir/features/support/screenshots.rb +5 -5
  116. data/features/docs/api/list_step_defs_as_json.feature +21 -7
  117. data/features/docs/api/listen_for_events.feature +9 -8
  118. data/features/docs/api/run_cli_main_with_existing_runtime.feature +1 -0
  119. data/features/docs/cli/dry_run.feature +3 -0
  120. data/features/docs/cli/execute_with_tag_filter.feature +8 -6
  121. data/features/docs/cli/fail_fast.feature +2 -0
  122. data/features/docs/cli/help.feature +8 -0
  123. data/features/docs/{gherkin/language_help.feature → cli/i18n.feature} +6 -6
  124. data/features/docs/cli/randomize.feature +2 -2
  125. data/features/docs/cli/retry_failing_tests.feature +75 -15
  126. data/features/docs/cli/run_scenarios_matching_name.feature +1 -0
  127. data/features/docs/cli/specifying_multiple_formatters.feature +3 -0
  128. data/features/docs/cli/strict_mode.feature +6 -0
  129. data/features/docs/defining_steps/ambiguous_steps.feature +89 -0
  130. data/features/docs/defining_steps/nested_steps.feature +5 -1
  131. data/features/docs/defining_steps/nested_steps_i18n.feature +3 -0
  132. data/features/docs/defining_steps/nested_steps_with_second_arg.feature +2 -0
  133. data/features/docs/defining_steps/printing_messages.feature +1 -2
  134. data/features/docs/defining_steps/skip_scenario.feature +1 -34
  135. data/features/docs/defining_steps/snippets.feature +18 -18
  136. data/features/docs/events/gherkin_source_read_event.feature +43 -0
  137. data/features/docs/events/step_activated_event.feature +36 -0
  138. data/features/docs/events/step_definition_registered_event.feature +29 -0
  139. data/features/docs/events/test_case_finished_event.feature +35 -0
  140. data/features/docs/events/test_case_started_event.feature +54 -0
  141. data/features/docs/events/test_run_finished_event.feature +40 -0
  142. data/features/docs/events/test_run_started_event.feature +41 -0
  143. data/features/docs/events/test_step_finished_event.feature +47 -0
  144. data/features/docs/events/test_step_started_event.feature +43 -0
  145. data/features/docs/exception_in_after_hook.feature +3 -2
  146. data/features/docs/exception_in_after_step_hook.feature +2 -0
  147. data/features/docs/exception_in_around_hook.feature +2 -0
  148. data/features/docs/exception_in_before_hook.feature +3 -1
  149. data/features/docs/extending_cucumber/custom_formatter.feature +12 -48
  150. data/features/docs/formatters/json_formatter.feature +4 -4
  151. data/features/docs/formatters/junit_formatter.feature +7 -6
  152. data/features/docs/formatters/pretty_formatter.feature +1 -0
  153. data/features/docs/formatters/progress_formatter.feature +1 -0
  154. data/features/docs/formatters/rerun_formatter.feature +2 -0
  155. data/features/docs/formatters/summary_formatter.feature +35 -0
  156. data/features/docs/formatters/usage_formatter.feature +3 -0
  157. data/features/docs/getting_started.feature +2 -1
  158. data/features/docs/gherkin/background.feature +5 -5
  159. data/features/docs/gherkin/doc_strings.feature +2 -0
  160. data/features/docs/gherkin/expand_option_for_outlines.feature +1 -0
  161. data/features/docs/gherkin/outlines.feature +6 -4
  162. data/features/docs/gherkin/unicode_table.feature +2 -1
  163. data/features/docs/gherkin/using_descriptions.feature +1 -0
  164. data/features/docs/gherkin/using_star_notation.feature +1 -1
  165. data/features/docs/post_configuration_hook.feature +1 -17
  166. data/features/docs/rake_task.feature +5 -0
  167. data/features/docs/raketask.feature +3 -1
  168. data/features/docs/work_in_progress.feature +5 -2
  169. data/features/docs/writing_support_code/after_step_hooks.feature +3 -1
  170. data/features/docs/writing_support_code/around_hooks.feature +6 -0
  171. data/features/docs/writing_support_code/before_hook.feature +1 -0
  172. data/features/docs/writing_support_code/hook_order.feature +3 -1
  173. data/features/docs/writing_support_code/parameter_types.feature +53 -0
  174. data/features/docs/writing_support_code/tagged_hooks.feature +1 -1
  175. data/features/docs/writing_support_code/world.feature +129 -0
  176. data/features/lib/step_definitions/aruba_steps.rb +5 -10
  177. data/features/lib/step_definitions/cli_steps.rb +4 -0
  178. data/features/lib/step_definitions/cucumber_steps.rb +9 -12
  179. data/features/lib/step_definitions/iso-8859-1_steps.rb +9 -5
  180. data/features/lib/step_definitions/json_steps.rb +2 -1
  181. data/features/lib/step_definitions/junit_steps.rb +2 -1
  182. data/features/lib/step_definitions/language_steps.rb +3 -2
  183. data/features/lib/step_definitions/profile_steps.rb +7 -6
  184. data/features/lib/step_definitions/retry_steps.rb +33 -13
  185. data/features/lib/step_definitions/ruby_steps.rb +2 -1
  186. data/features/lib/support/env.rb +3 -2
  187. data/features/lib/support/fake_wire_server.rb +17 -3
  188. data/features/lib/support/feature_factory.rb +2 -1
  189. data/features/lib/support/normalise_output.rb +14 -12
  190. data/features/lib/support/parameter_types.rb +5 -0
  191. data/gem_tasks/contributors.rake +10 -6
  192. data/gem_tasks/cov.rake +1 -0
  193. data/gem_tasks/downloads.rb +1 -0
  194. data/gem_tasks/environment.rake +2 -5
  195. data/gem_tasks/examples.rake +3 -2
  196. data/gem_tasks/fix_cr_lf.rake +19 -7
  197. data/gem_tasks/flog.rake +4 -3
  198. data/gem_tasks/rspec.rake +2 -1
  199. data/gem_tasks/sass.rake +2 -1
  200. data/lib/autotest/cucumber.rb +1 -0
  201. data/lib/autotest/cucumber_mixin.rb +17 -16
  202. data/lib/autotest/cucumber_rails.rb +1 -0
  203. data/lib/autotest/cucumber_rails_rspec.rb +1 -0
  204. data/lib/autotest/cucumber_rails_rspec2.rb +1 -0
  205. data/lib/autotest/cucumber_rspec.rb +1 -0
  206. data/lib/autotest/cucumber_rspec2.rb +1 -0
  207. data/lib/autotest/discover.rb +3 -2
  208. data/lib/cucumber/cli/configuration.rb +12 -21
  209. data/lib/cucumber/cli/main.rb +8 -7
  210. data/lib/cucumber/cli/options.rb +341 -217
  211. data/lib/cucumber/cli/profile_loader.rb +26 -21
  212. data/lib/cucumber/cli/rerun_file.rb +1 -0
  213. data/lib/cucumber/configuration.rb +54 -37
  214. data/lib/cucumber/constantize.rb +2 -1
  215. data/lib/cucumber/core_ext/string.rb +2 -1
  216. data/lib/cucumber/deprecate.rb +4 -3
  217. data/lib/cucumber/encoding.rb +1 -0
  218. data/lib/cucumber/errors.rb +3 -1
  219. data/lib/cucumber/events/gherkin_source_read.rb +17 -0
  220. data/lib/cucumber/events/{step_match.rb → step_activated.rb} +5 -2
  221. data/lib/cucumber/events/step_definition_registered.rb +24 -0
  222. data/lib/cucumber/events/test_case_finished.rb +18 -0
  223. data/lib/cucumber/events/test_case_started.rb +15 -0
  224. data/lib/cucumber/events/test_run_finished.rb +12 -0
  225. data/lib/cucumber/events/test_run_started.rb +16 -0
  226. data/lib/cucumber/events/test_step_finished.rb +20 -0
  227. data/lib/cucumber/events/test_step_started.rb +17 -0
  228. data/lib/cucumber/events.rb +23 -3
  229. data/lib/cucumber/file_specs.rb +1 -0
  230. data/lib/cucumber/filters/activate_steps.rb +8 -3
  231. data/lib/cucumber/filters/apply_after_hooks.rb +1 -0
  232. data/lib/cucumber/filters/apply_after_step_hooks.rb +1 -0
  233. data/lib/cucumber/filters/apply_around_hooks.rb +1 -0
  234. data/lib/cucumber/filters/apply_before_hooks.rb +1 -0
  235. data/lib/cucumber/filters/broadcast_test_run_started_event.rb +27 -0
  236. data/lib/cucumber/filters/gated_receiver.rb +1 -0
  237. data/lib/cucumber/filters/prepare_world.rb +1 -0
  238. data/lib/cucumber/filters/quit.rb +1 -0
  239. data/lib/cucumber/filters/randomizer.rb +1 -0
  240. data/lib/cucumber/filters/retry.rb +4 -4
  241. data/lib/cucumber/filters/tag_limits/test_case_index.rb +1 -0
  242. data/lib/cucumber/filters/tag_limits/verifier.rb +2 -1
  243. data/lib/cucumber/filters/tag_limits.rb +4 -3
  244. data/lib/cucumber/filters.rb +3 -0
  245. data/lib/cucumber/formatter/ansicolor.rb +9 -11
  246. data/lib/cucumber/formatter/backtrace_filter.rb +21 -8
  247. data/lib/cucumber/formatter/console.rb +72 -66
  248. data/lib/cucumber/formatter/console_counts.rb +44 -0
  249. data/lib/cucumber/formatter/console_issues.rb +58 -0
  250. data/lib/cucumber/formatter/duration.rb +2 -1
  251. data/lib/cucumber/formatter/duration_extractor.rb +1 -0
  252. data/lib/cucumber/formatter/fail_fast.rb +4 -2
  253. data/lib/cucumber/formatter/fanout.rb +1 -0
  254. data/lib/cucumber/formatter/hook_query_visitor.rb +1 -0
  255. data/lib/cucumber/formatter/html.rb +175 -249
  256. data/lib/cucumber/formatter/html_builder.rb +120 -0
  257. data/lib/cucumber/formatter/ignore_missing_messages.rb +1 -0
  258. data/lib/cucumber/formatter/inline-js.js +30 -0
  259. data/lib/cucumber/formatter/interceptor.rb +3 -2
  260. data/lib/cucumber/formatter/io.rb +2 -1
  261. data/lib/cucumber/formatter/json.rb +33 -30
  262. data/lib/cucumber/formatter/json_pretty.rb +1 -0
  263. data/lib/cucumber/formatter/junit.rb +26 -24
  264. data/lib/cucumber/formatter/legacy_api/adapter.rb +81 -69
  265. data/lib/cucumber/formatter/legacy_api/ast.rb +27 -22
  266. data/lib/cucumber/formatter/legacy_api/results.rb +7 -8
  267. data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +1 -0
  268. data/lib/cucumber/formatter/pretty.rb +24 -18
  269. data/lib/cucumber/formatter/progress.rb +55 -13
  270. data/lib/cucumber/formatter/rerun.rb +15 -18
  271. data/lib/cucumber/formatter/stepdefs.rb +1 -0
  272. data/lib/cucumber/formatter/steps.rb +2 -1
  273. data/lib/cucumber/formatter/summary.rb +43 -20
  274. data/lib/cucumber/formatter/unicode.rb +2 -1
  275. data/lib/cucumber/formatter/usage.rb +33 -28
  276. data/lib/cucumber/gherkin/data_table_parser.rb +1 -0
  277. data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +2 -1
  278. data/lib/cucumber/gherkin/formatter/escaping.rb +2 -1
  279. data/lib/cucumber/gherkin/i18n.rb +1 -0
  280. data/lib/cucumber/gherkin/steps_parser.rb +1 -0
  281. data/lib/cucumber/{rb_support/rb_dsl.rb → glue/dsl.rb} +41 -30
  282. data/lib/cucumber/glue/hook.rb +43 -0
  283. data/lib/cucumber/glue/invoke_in_world.rb +70 -0
  284. data/lib/cucumber/glue/proto_world.rb +220 -0
  285. data/lib/cucumber/{rb_support/rb_language.rb → glue/registry_and_more.rb} +60 -90
  286. data/lib/cucumber/{rb_support → glue}/snippet.rb +64 -26
  287. data/lib/cucumber/glue/step_definition.rb +143 -0
  288. data/lib/cucumber/glue/world_factory.rb +23 -0
  289. data/lib/cucumber/hooks.rb +9 -8
  290. data/lib/cucumber/load_path.rb +1 -0
  291. data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +158 -0
  292. data/lib/cucumber/multiline_argument/data_table.rb +47 -181
  293. data/lib/cucumber/multiline_argument/doc_string.rb +1 -0
  294. data/lib/cucumber/multiline_argument.rb +6 -15
  295. data/lib/cucumber/platform.rb +4 -5
  296. data/lib/cucumber/project_initializer.rb +3 -2
  297. data/lib/cucumber/rake/task.rb +19 -14
  298. data/lib/cucumber/rspec/disable_option_parser.rb +2 -1
  299. data/lib/cucumber/rspec/doubles.rb +2 -1
  300. data/lib/cucumber/running_test_case.rb +3 -27
  301. data/lib/cucumber/runtime/after_hooks.rb +2 -1
  302. data/lib/cucumber/runtime/before_hooks.rb +1 -0
  303. data/lib/cucumber/runtime/for_programming_languages.rb +2 -36
  304. data/lib/cucumber/runtime/step_hooks.rb +1 -0
  305. data/lib/cucumber/runtime/support_code.rb +21 -16
  306. data/lib/cucumber/runtime/user_interface.rb +10 -16
  307. data/lib/cucumber/runtime.rb +49 -32
  308. data/lib/cucumber/step_argument.rb +1 -2
  309. data/lib/cucumber/step_definition_light.rb +2 -0
  310. data/lib/cucumber/step_definitions.rb +1 -0
  311. data/lib/cucumber/step_match.rb +30 -15
  312. data/lib/cucumber/step_match_search.rb +3 -3
  313. data/lib/cucumber/term/ansicolor.rb +2 -1
  314. data/lib/cucumber/unit.rb +1 -0
  315. data/lib/cucumber/version +1 -1
  316. data/lib/cucumber.rb +1 -13
  317. data/lib/simplecov_setup.rb +2 -1
  318. data/scripts/invite-collaborator +40 -0
  319. data/scripts/update-changelog +86 -0
  320. data/spec/cucumber/cli/configuration_spec.rb +109 -98
  321. data/spec/cucumber/cli/main_spec.rb +8 -7
  322. data/spec/cucumber/cli/options_spec.rb +114 -79
  323. data/spec/cucumber/cli/profile_loader_spec.rb +25 -5
  324. data/spec/cucumber/cli/rerun_spec.rb +21 -20
  325. data/spec/cucumber/configuration_spec.rb +48 -47
  326. data/spec/cucumber/constantize_spec.rb +3 -2
  327. data/spec/cucumber/events_spec.rb +9 -0
  328. data/spec/cucumber/file_specs_spec.rb +26 -25
  329. data/spec/cucumber/filters/activate_steps_spec.rb +25 -22
  330. data/spec/cucumber/filters/gated_receiver_spec.rb +7 -6
  331. data/spec/cucumber/filters/retry_spec.rb +42 -23
  332. data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +12 -11
  333. data/spec/cucumber/filters/tag_limits/verifier_spec.rb +15 -14
  334. data/spec/cucumber/filters/tag_limits_spec.rb +9 -8
  335. data/spec/cucumber/formatter/ansicolor_spec.rb +10 -9
  336. data/spec/cucumber/formatter/backtrace_filter_spec.rb +32 -0
  337. data/spec/cucumber/formatter/console_counts_spec.rb +14 -0
  338. data/spec/cucumber/formatter/duration_spec.rb +4 -3
  339. data/spec/cucumber/formatter/fail_fast_spec.rb +27 -27
  340. data/spec/cucumber/formatter/html_spec.rb +65 -60
  341. data/spec/cucumber/formatter/interceptor_spec.rb +1 -0
  342. data/spec/cucumber/formatter/json_spec.rb +71 -97
  343. data/spec/cucumber/formatter/junit_spec.rb +46 -47
  344. data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +134 -141
  345. data/spec/cucumber/formatter/pretty_spec.rb +105 -117
  346. data/spec/cucumber/formatter/progress_spec.rb +22 -21
  347. data/spec/cucumber/formatter/rerun_spec.rb +70 -64
  348. data/spec/cucumber/formatter/spec_helper.rb +14 -12
  349. data/spec/cucumber/{rb_support/rb_world_spec.rb → glue/proto_world_spec.rb} +22 -6
  350. data/spec/cucumber/glue/registry_and_more_spec.rb +213 -0
  351. data/spec/cucumber/{rb_support → glue}/snippet_spec.rb +62 -25
  352. data/spec/cucumber/glue/step_definition_spec.rb +207 -0
  353. data/spec/cucumber/hooks_spec.rb +5 -4
  354. data/spec/cucumber/multiline_argument/data_table_spec.rb +179 -129
  355. data/spec/cucumber/project_initializer_spec.rb +12 -11
  356. data/spec/cucumber/rake/forked_spec.rb +22 -17
  357. data/spec/cucumber/rake/task_spec.rb +21 -20
  358. data/spec/cucumber/running_test_case_spec.rb +36 -35
  359. data/spec/cucumber/runtime/for_programming_languages_spec.rb +2 -30
  360. data/spec/cucumber/runtime/support_code_spec.rb +1 -0
  361. data/spec/cucumber/runtime_spec.rb +3 -2
  362. data/spec/cucumber/step_argument_spec.rb +6 -5
  363. data/spec/cucumber/step_match_search_spec.rb +32 -41
  364. data/spec/cucumber/step_match_spec.rb +34 -33
  365. data/spec/cucumber/world/pending_spec.rb +12 -11
  366. data/spec/spec_helper.rb +1 -0
  367. data/spec/support/standard_step_actions.rb +2 -1
  368. metadata +132 -61
  369. data/features/docs/formatters/debug_formatter.feature +0 -47
  370. data/features/docs/formatters/formatter_step_file_colon_line.feature +0 -44
  371. data/features/docs/writing_support_code/transforms.feature +0 -98
  372. data/features/lib/step_definitions/wire_steps.rb +0 -58
  373. data/gem_tasks/cucumber.rake +0 -25
  374. data/lib/cucumber/ast.rb +0 -13
  375. data/lib/cucumber/core_ext/instance_exec.rb +0 -70
  376. data/lib/cucumber/events/after_test_case.rb +0 -25
  377. data/lib/cucumber/events/after_test_step.rb +0 -30
  378. data/lib/cucumber/events/before_test_case.rb +0 -18
  379. data/lib/cucumber/events/before_test_step.rb +0 -23
  380. data/lib/cucumber/events/bus.rb +0 -86
  381. data/lib/cucumber/events/finished_testing.rb +0 -9
  382. data/lib/cucumber/formatter/debug.rb +0 -35
  383. data/lib/cucumber/formatter/event_bus_report.rb +0 -38
  384. data/lib/cucumber/rb_support/rb_hook.rb +0 -19
  385. data/lib/cucumber/rb_support/rb_step_definition.rb +0 -131
  386. data/lib/cucumber/rb_support/rb_transform.rb +0 -59
  387. data/lib/cucumber/rb_support/rb_world.rb +0 -149
  388. data/spec/cucumber/core_ext/instance_exec_spec.rb +0 -4
  389. data/spec/cucumber/events/bus_spec.rb +0 -94
  390. data/spec/cucumber/formatter/debug_spec.rb +0 -64
  391. data/spec/cucumber/formatter/event_bus_report_spec.rb +0 -88
  392. data/spec/cucumber/rb_support/rb_language_spec.rb +0 -243
  393. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +0 -199
  394. data/spec/cucumber/rb_support/rb_transform_spec.rb +0 -46
  395. data/spec/cucumber_spec.rb +0 -39
@@ -3,12 +3,12 @@ class Kalkulaator
3
3
  @args ||= []
4
4
  @args << n
5
5
  end
6
-
6
+
7
7
  def liida
8
- @args.inject(0){|n,sum| sum+=n}
8
+ @args.inject(0){|n,sum| sum + n}
9
9
  end
10
10
 
11
11
  def jaga
12
12
  @args[0].to_f / @args[1].to_f
13
- end
13
+ end
14
14
  end
@@ -1,5 +1,10 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
9
  $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'laskin'
@@ -11,14 +16,14 @@ end
11
16
  After do
12
17
  end
13
18
 
14
- Given /että olen syöttänyt laskimeen luvun (\d+)/ do |n|
19
+ Given(/että olen syöttänyt laskimeen luvun (\d+)/) do |n|
15
20
  @laskin.pinoa n.to_i
16
21
  end
17
22
 
18
- When /painan "(\w+)"/ do |op|
23
+ When(/painan "(\w+)"/) do |op|
19
24
  @tulos = @laskin.send op
20
25
  end
21
26
 
22
- Then /laskimen ruudulla pitäisi näkyä tulos (.*)/ do |tulos|
27
+ Then(/laskimen ruudulla pitäisi näkyä tulos (.*)/) do |tulos|
23
28
  @tulos.should == tulos.to_f
24
29
  end
@@ -5,7 +5,7 @@ class Laskin
5
5
  end
6
6
 
7
7
  def summaa
8
- @args.inject(0){|n,sum| sum+=n}
8
+ @args.inject(0){|n,sum| sum + n}
9
9
  end
10
10
 
11
11
  def jaa
@@ -1,32 +1,32 @@
1
1
  # encoding: utf-8
2
- Soit /^une calculatrice$/ do
2
+ Soit(/^une calculatrice$/) do
3
3
  @calc = Calculatrice.new
4
4
  end
5
5
 
6
- Etantdonné /^qu'on tape (.*)$/ do |n|
6
+ Etantdonné(/^qu'on tape (.*)$/) do |n|
7
7
  @calc.push n.to_i
8
8
  end
9
9
 
10
- Etantdonné /^que j'entre (\d+) pour le (.*) nombre/ do |n, x|
10
+ Etantdonné(/^que j'entre (\d+) pour le (.*) nombre/) do |n, x|
11
11
  @calc.push n.to_i
12
12
  end
13
13
 
14
- Lorsque /^je tape sur la touche "="$/ do
14
+ Lorsque(/^je tape sur la touche "="$/) do
15
15
  @expected_result = @calc.additionner
16
16
  end
17
17
 
18
- Lorsqu /on tape additionner/ do
18
+ Lorsqu(/on tape additionner/) do
19
19
  @expected_result = @calc.additionner
20
20
  end
21
21
 
22
- Alors /le résultat affiché doit être (\d*)/ do |result|
22
+ Alors(/le résultat affiché doit être (\d*)/) do |result|
23
23
  expect result.to_i == @expected_result
24
24
  end
25
25
 
26
- Alors /le résultat doit être (\d*)/ do |result|
26
+ Alors(/le résultat doit être (\d*)/) do |result|
27
27
  expect result.to_i == @expected_result
28
28
  end
29
29
 
30
- Soit /^que je tape sur la touche "\+"$/ do
30
+ Soit(/^que je tape sur la touche "\+"$/) do
31
31
  # noop
32
32
  end
@@ -1,5 +1,10 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
9
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calculatrice'
@@ -3,8 +3,8 @@ class Calculatrice
3
3
  @args ||= []
4
4
  @args << n
5
5
  end
6
-
6
+
7
7
  def additionner
8
- @args.inject(0){|n,sum| sum+=n}
8
+ @args.inject(0){|n,sum| sum + n}
9
9
  end
10
10
  end
@@ -1,7 +1,12 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
9
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calculator'
6
11
 
7
12
  Before do
@@ -11,14 +16,14 @@ end
11
16
  After do
12
17
  end
13
18
 
14
- Given /שהזנתי (\d+) למחשבון/ do |n|
19
+ Given(/שהזנתי (\d+) למחשבון/) do |n|
15
20
  @calc.push n.to_i
16
21
  end
17
22
 
18
- When /אני לוחץ על (.+)/ do |op|
23
+ When(/אני לוחץ על (.+)/) do |op|
19
24
  @result = @calc.send op
20
25
  end
21
26
 
22
- Then /התוצאה על המסך צריכה להיות (.*)/ do |result|
27
+ Then(/התוצאה על המסך צריכה להיות (.*)/) do |result|
23
28
  @result.should == result.to_f
24
29
  end
@@ -6,7 +6,7 @@ class Calculator
6
6
  end
7
7
 
8
8
  def חבר
9
- @args.inject(0){|n,sum| sum+=n}
9
+ @args.inject(0){|n,sum| sum + n}
10
10
  end
11
11
 
12
12
  def חלק
@@ -1,5 +1,10 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
9
  $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calculator'
@@ -11,14 +16,14 @@ end
11
16
  After do
12
17
  end
13
18
 
14
- Given /मैं गणक में (\d+) डालता हूँ/ do |n|
19
+ Given(/मैं गणक में (\d+) डालता हूँ/) do |n|
15
20
  @calc.push n.to_i
16
21
  end
17
22
 
18
- When /मैं (\w+) दबाता हूँ/ do |op|
23
+ When(/मैं (\w+) दबाता हूँ/) do |op|
19
24
  @result = @calc.send op
20
25
  end
21
26
 
22
- Then /परिणाम (.*) परदे पर प्रदशित होना चाहिए/ do |result|
27
+ Then(/परिणाम (.*) परदे पर प्रदशित होना चाहिए/) do |result|
23
28
  @result.should == result.to_f
24
29
  end
@@ -6,7 +6,7 @@ class Calculator
6
6
  end
7
7
 
8
8
  def add
9
- @args.inject(0){|n,sum| sum+=n}
9
+ @args.inject(0){|n,sum| sum + n}
10
10
  end
11
11
 
12
12
  def divide
@@ -1,6 +1,10 @@
1
-
2
1
  # encoding: utf-8
3
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
4
8
  require 'cucumber/formatter/unicode'
5
9
  $:.unshift(File.dirname(__FILE__) + '/../../lib')
6
10
  require 'kalkilatris'
@@ -12,14 +16,14 @@ end
12
16
  After do
13
17
  end
14
18
 
15
- Sipoze /Mwen te antre nan (\d+) nan kalkilatris la/ do |n|
19
+ Sipoze(/Mwen te antre nan (\d+) nan kalkilatris la/) do |n|
16
20
  @kalk.push n.to_i
17
21
  end
18
22
 
19
- Lè /Mwen peze (\w+)/ do |op|
23
+ Lè(/Mwen peze (\w+)/) do |op|
20
24
  @result = @kalk.send op
21
25
  end
22
26
 
23
- Lè sa a /Rezilta a ta dwe (.*) sou ekran an/ do |result|
27
+ Lè sa a(/Rezilta a ta dwe (.*) sou ekran an/) do |result|
24
28
  @result.should == result.to_f
25
29
  end
@@ -3,9 +3,9 @@ class Kalkilatris
3
3
  @args ||= []
4
4
  @args << n
5
5
  end
6
-
6
+
7
7
  def ajoute
8
- @args.inject(0){|n,sum| sum+=n}
8
+ @args.inject(0){|n,sum| sum + n}
9
9
  end
10
10
 
11
11
  def divize
@@ -1,7 +1,12 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
9
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calculator'
6
11
 
7
12
  Before do
@@ -11,15 +16,15 @@ end
11
16
  After do
12
17
  end
13
18
 
14
- Ha /^beütök a számológépbe egy (\d+)\-(?:es|as|ös|ás)t$/ do |n|
19
+ Ha(/^beütök a számológépbe egy (\d+)\-(?:es|as|ös|ás)t$/) do |n|
15
20
  @calc.push n.to_i
16
21
  end
17
22
 
18
- Majd /^megnyomom az? (\w+) gombot$/ do |op|
23
+ Majd(/^megnyomom az? (\w+) gombot$/) do |op|
19
24
  @result = @calc.send op
20
25
  end
21
26
 
22
- Akkor /^eredményül (.*)\-(?:e|a|ö|á|)t kell kapnom$/ do |result|
27
+ Akkor(/^eredményül (.*)\-(?:e|a|ö|á|)t kell kapnom$/) do |result|
23
28
  @result.should == result.to_f
24
29
  end
25
30
 
@@ -5,7 +5,7 @@ class Calculator
5
5
  end
6
6
 
7
7
  def add
8
- @args.inject(0){|n,sum| sum+=n}
8
+ @args.inject(0){|n,sum| sum + n}
9
9
  end
10
10
 
11
11
  def divide
@@ -1,7 +1,12 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
9
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calculator'
6
11
 
7
12
  Before do
@@ -11,14 +16,14 @@ end
11
16
  After do
12
17
  end
13
18
 
14
- Given /aku sudah masukkan (\d+) ke kalkulator/ do |n|
19
+ Given(/aku sudah masukkan (\d+) ke kalkulator/) do |n|
15
20
  @calc.push n.to_i
16
21
  end
17
22
 
18
- When /aku tekan (\w+)/ do |op|
23
+ When(/aku tekan (\w+)/) do |op|
19
24
  @result = @calc.send op
20
25
  end
21
26
 
22
- Then /hasilnya harus (.*) di layar/ do |result|
27
+ Then(/hasilnya harus (.*) di layar/) do |result|
23
28
  @result.should == result.to_f
24
29
  end
@@ -3,9 +3,9 @@ class Calculator
3
3
  @args ||= []
4
4
  @args << n
5
5
  end
6
-
6
+
7
7
  def add
8
- @args.inject(0){|n,sum| sum+=n}
8
+ @args.inject(0){|n,sum| sum + n}
9
9
  end
10
10
 
11
11
  def divide
@@ -1,7 +1,12 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
9
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calcolatrice'
6
11
 
7
12
  Before do
@@ -11,14 +16,14 @@ end
11
16
  After do
12
17
  end
13
18
 
14
- Given /che ho inserito (\d+)/ do |n|
19
+ Given(/che ho inserito (\d+)/) do |n|
15
20
  @calc.push n.to_i
16
21
  end
17
22
 
18
- When 'premo somma' do
23
+ When('premo somma') do
19
24
  @result = @calc.add
20
25
  end
21
26
 
22
- Then /il risultato deve essere (\d*)/ do |result|
27
+ Then(/il risultato deve essere (\d*)/) do |result|
23
28
  @result.should == result.to_i
24
29
  end
@@ -3,9 +3,9 @@ class Calcolatrice
3
3
  @args ||= []
4
4
  @args << n
5
5
  end
6
-
6
+
7
7
  def add
8
8
  #@args[0] + @args[1]
9
- @args.inject(0){|n,sum| sum+=n}
9
+ @args.inject(0){|n,sum| sum + n}
10
10
  end
11
- end
11
+ end
@@ -6,14 +6,14 @@ end
6
6
  After do
7
7
  end
8
8
 
9
- 前提 "$n を入力" do |n|
9
+ 前提("$n を入力") do |n|
10
10
  @calc.push n.to_i
11
11
  end
12
12
 
13
- もし /(\w+) を押した/ do |op|
13
+ もし(/(\w+) を押した/) do |op|
14
14
  @result = @calc.send op
15
15
  end
16
16
 
17
- ならば /(.*) を表示/ do |result|
17
+ ならば(/(.*) を表示/) do |result|
18
18
  @result.should == result.to_f
19
19
  end
@@ -1,5 +1,10 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
9
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calculator'
@@ -3,9 +3,9 @@ class Calculator
3
3
  @args ||= []
4
4
  @args << n
5
5
  end
6
-
6
+
7
7
  def add
8
- @args.inject(0){|n,sum| sum+=n}
8
+ @args.inject(0){|n,sum| sum + n}
9
9
  end
10
10
 
11
11
  def divide
@@ -1,7 +1,12 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
9
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calculator'
6
11
 
7
12
  Before do
@@ -11,14 +16,14 @@ end
11
16
  After do
12
17
  end
13
18
 
14
- Given /^계산기에 (.*)을 입력했음$/ do |n|
19
+ Given(/^계산기에 (.*)을 입력했음$/) do |n|
15
20
  @calc.push n.to_i
16
21
  end
17
22
 
18
- When /^내가 (.*)를 누르면$/ do |op|
23
+ When(/^내가 (.*)를 누르면$/) do |op|
19
24
  @result = @calc.send op
20
25
  end
21
26
 
22
- Then /^화면에 출력된 결과는 (.*)이다$/ do |result|
27
+ Then(/^화면에 출력된 결과는 (.*)이다$/) do |result|
23
28
  @result.should == result.to_f
24
29
  end
@@ -3,9 +3,9 @@ class Calculator
3
3
  @args ||= []
4
4
  @args << n
5
5
  end
6
-
6
+
7
7
  def add
8
- @args.inject(0){|n,sum| sum+=n}
8
+ @args.inject(0){|n,sum| sum + n}
9
9
  end
10
10
 
11
11
  def divide
@@ -1,7 +1,12 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
9
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calculator'
6
11
 
7
12
  Before do
@@ -11,14 +16,14 @@ end
11
16
  After do
12
17
  end
13
18
 
14
- Given /aš įvedžiau (\d+) į skaičiuotuvą/ do |n|
19
+ Given(/aš įvedžiau (\d+) į skaičiuotuvą/) do |n|
15
20
  @calc.push n.to_i
16
21
  end
17
22
 
18
- When /aš paspaudžiu "(\w+)"/ do |op|
23
+ When(/aš paspaudžiu "(\w+)"/) do |op|
19
24
  @result = @calc.send op
20
25
  end
21
26
 
22
- Then /rezultatas ekrane turi būti (.*)/ do |result|
27
+ Then(/rezultatas ekrane turi būti (.*)/) do |result|
23
28
  @result.should == result.to_f
24
29
  end
@@ -3,9 +3,9 @@ class Calculator
3
3
  @args ||= []
4
4
  @args << n
5
5
  end
6
-
6
+
7
7
  def add
8
- @args.inject(0){|n,sum| sum+=n}
8
+ @args.inject(0){|n,sum| sum + n}
9
9
  end
10
10
 
11
11
  def divide
@@ -1,7 +1,12 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
9
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calculator'
6
11
 
7
12
  Before do
@@ -11,14 +16,14 @@ end
11
16
  After do
12
17
  end
13
18
 
14
- Given /esmu ievadījis kalkulatorā (\d+)/ do |n|
19
+ Given(/esmu ievadījis kalkulatorā (\d+)/) do |n|
15
20
  @calc.push n.to_i
16
21
  end
17
22
 
18
- When /nospiežu pogu (\w+)/ do |op|
23
+ When(/nospiežu pogu (\w+)/) do |op|
19
24
  @result = @calc.send op
20
25
  end
21
26
 
22
- Then /rezultātam uz ekrāna ir jābūt (.*)/ do |result|
27
+ Then(/rezultātam uz ekrāna ir jābūt (.*)/) do |result|
23
28
  @result.should == result.to_f
24
29
  end
@@ -3,9 +3,9 @@ class Calculator
3
3
  @args ||= []
4
4
  @args << n
5
5
  end
6
-
6
+
7
7
  def add
8
- @args.inject(0){|n,sum| sum+=n}
8
+ @args.inject(0){|n,sum| sum + n}
9
9
  end
10
10
 
11
11
  def divide
@@ -4,14 +4,14 @@ Before do
4
4
  @calc = Kalkulator.new
5
5
  end
6
6
 
7
- Given /at jeg har tastet inn (\d+)/ do |n|
7
+ Given(/at jeg har tastet inn (\d+)/) do |n|
8
8
  @calc.push n.to_i
9
9
  end
10
10
 
11
- Når 'jeg summerer' do
11
+ Når('jeg summerer') do
12
12
  @result = @calc.add
13
13
  end
14
14
 
15
- Så /skal resultatet være (\d*)/ do |result|
15
+ Så(/skal resultatet være (\d*)/) do |result|
16
16
  @result.should == result.to_i
17
17
  end
@@ -1,6 +1,11 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
9
 
5
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
10
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
6
11
  require 'kalkulator'
@@ -3,9 +3,9 @@ class Kalkulator
3
3
  @args ||= []
4
4
  @args << n
5
5
  end
6
-
6
+
7
7
  def add
8
8
  #@args[0] + @args[1]
9
- @args.inject(0){|n,sum| sum+=n}
9
+ @args.inject(0){|n,sum| sum + n}
10
10
  end
11
11
  end
@@ -1,7 +1,12 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
9
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calculator'
6
11
 
7
12
  Before do
@@ -11,14 +16,14 @@ end
11
16
  After do
12
17
  end
13
18
 
14
- Zakładając /wprowadzenie do kalkulatora liczby (\d+)/ do |n|
19
+ Zakładając(/wprowadzenie do kalkulatora liczby (\d+)/) do |n|
15
20
  @calc.push n.to_i
16
21
  end
17
22
 
18
- Jeżeli /nacisnę (\w+)/ do |op|
23
+ Jeżeli(/nacisnę (\w+)/) do |op|
19
24
  @result = @calc.send op
20
25
  end
21
26
 
22
- Wtedy /rezultat (.*) wyświetli się na ekranie/ do |result|
27
+ Wtedy(/rezultat (.*) wyświetli się na ekranie/) do |result|
23
28
  @result.should == result.to_f
24
29
  end
@@ -1,5 +1,10 @@
1
1
  # encoding: utf-8
2
- begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
2
+ begin
3
+ require 'rspec/expectations'
4
+ rescue LoadError
5
+ require 'spec/expectations'
6
+ end
7
+
3
8
  require 'cucumber/formatter/unicode'
4
9
  $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
10
  require 'calculator'