kosmas58-cucumber 0.1.16.6 → 0.1.99.21

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 (248) hide show
  1. data/History.txt +126 -2
  2. data/License.txt +1 -1
  3. data/Manifest.txt +0 -270
  4. data/Rakefile +1 -1
  5. data/bin/cucumber +2 -2
  6. data/config/hoe.rb +7 -2
  7. data/examples/cs/features/step_definitons/calculator_steps.rb +1 -1
  8. data/examples/i18n/README.textile +1 -1
  9. data/examples/i18n/Rakefile +3 -3
  10. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +1 -6
  11. data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +1 -1
  12. data/examples/i18n/de/features/addition.feature +6 -6
  13. data/examples/i18n/de/features/step_definitons/calculator_steps.rb +2 -2
  14. data/examples/i18n/en/features/addition.feature +6 -6
  15. data/examples/i18n/en/features/step_definitons/calculator_steps.rb +2 -2
  16. data/examples/i18n/es/features/adicion.feature +11 -12
  17. data/examples/i18n/es/features/step_definitons/calculador_steps.rb +7 -10
  18. data/examples/i18n/es/lib/calculador.rb +4 -1
  19. data/examples/i18n/et/features/liitmine.feature +7 -6
  20. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +1 -1
  21. data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +1 -1
  22. data/examples/i18n/fi/features/yhteenlasku.feature +2 -2
  23. data/examples/i18n/fr/features/addition.feature +2 -2
  24. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +1 -1
  25. data/examples/i18n/id/features/addition.feature +6 -6
  26. data/examples/i18n/id/features/step_definitons/calculator_steps.rb +2 -2
  27. data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +1 -1
  28. data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +2 -3
  29. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +1 -1
  30. data/examples/i18n/lt/features/addition.feature +7 -6
  31. data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +2 -2
  32. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +7 -7
  33. data/examples/i18n/no/features/summering.feature +1 -0
  34. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +1 -1
  35. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +1 -1
  36. data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +1 -1
  37. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +2 -2
  38. data/examples/java/src/cucumber/demo/Hello.java +16 -0
  39. data/examples/jbehave/README.textile +17 -0
  40. data/examples/jbehave/features/support/env.rb +7 -0
  41. data/examples/jbehave/features/trading.feature +24 -0
  42. data/examples/jbehave/pom.xml +48 -0
  43. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/converters/TraderConverter.java +32 -0
  44. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Stock.java +42 -0
  45. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Trader.java +29 -0
  46. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/persistence/TraderPersister.java +22 -0
  47. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/scenarios/TraderSteps.java +65 -0
  48. data/examples/self_test/README.textile +4 -1
  49. data/examples/{calculator_ruby_features → self_test}/Rakefile +3 -3
  50. data/examples/self_test/features/background/failing_background.feature +10 -0
  51. data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
  52. data/examples/self_test/features/background/multiline_args_background.feature +32 -0
  53. data/examples/self_test/features/background/passing_background.feature +10 -0
  54. data/examples/self_test/features/background/pending_background.feature +10 -0
  55. data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  56. data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  57. data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
  58. data/examples/self_test/features/lots_of_undefined.feature +8 -0
  59. data/examples/self_test/features/outline_sample.feature +11 -5
  60. data/examples/self_test/features/sample.feature +8 -3
  61. data/examples/self_test/features/step_definitions/sample_steps.rb +53 -4
  62. data/examples/self_test/features/support/env.rb +1 -0
  63. data/examples/self_test/features/support/tag_count_formatter.rb +25 -0
  64. data/examples/tickets/features/172.feature +28 -0
  65. data/examples/tickets/features/177/1.feature +29 -0
  66. data/examples/tickets/features/177/2.feature +21 -0
  67. data/examples/tickets/features/177/3.feature +18 -0
  68. data/examples/tickets/features/180.feature +7 -0
  69. data/examples/tickets/features/scenario_outline.feature +6 -1
  70. data/examples/tickets/features/step_definitons/tickets_steps.rb +27 -3
  71. data/examples/tickets/features/tickets.feature +4 -0
  72. data/features/background.feature +223 -0
  73. data/features/cucumber_cli.feature +218 -98
  74. data/features/cucumber_cli_outlines.feature +54 -37
  75. data/features/custom_formatter.feature +11 -0
  76. data/features/report_called_undefined_steps.feature +32 -0
  77. data/features/step_definitions/cucumber_steps.rb +7 -3
  78. data/features/step_definitions/extra_steps.rb +1 -1
  79. data/features/support/env.rb +2 -1
  80. data/gem_tasks/flog.rake +1 -1
  81. data/gem_tasks/gemspec.rake +2 -2
  82. data/gem_tasks/jar.rake +67 -0
  83. data/lib/autotest/cucumber_mixin.rb +17 -23
  84. data/lib/cucumber.rb +63 -11
  85. data/lib/cucumber/ast.rb +29 -0
  86. data/lib/cucumber/ast/background.rb +88 -0
  87. data/lib/cucumber/ast/comment.rb +26 -0
  88. data/lib/cucumber/ast/examples.rb +26 -0
  89. data/lib/cucumber/ast/feature.rb +66 -0
  90. data/lib/cucumber/ast/features.rb +39 -0
  91. data/lib/cucumber/ast/filter.rb +22 -0
  92. data/lib/cucumber/ast/outline_table.rb +49 -0
  93. data/lib/cucumber/ast/py_string.rb +52 -0
  94. data/lib/cucumber/ast/scenario.rb +103 -0
  95. data/lib/cucumber/ast/scenario_outline.rb +92 -0
  96. data/lib/cucumber/ast/step.rb +161 -0
  97. data/lib/cucumber/ast/steps.rb +13 -0
  98. data/lib/cucumber/ast/table.rb +218 -0
  99. data/lib/cucumber/ast/tags.rb +40 -0
  100. data/lib/cucumber/ast/visitor.rb +109 -0
  101. data/lib/cucumber/broadcaster.rb +1 -6
  102. data/lib/cucumber/cli/configuration.rb +339 -0
  103. data/lib/cucumber/cli/language_help_formatter.rb +59 -0
  104. data/lib/cucumber/cli/main.rb +100 -0
  105. data/lib/cucumber/core_ext/exception.rb +41 -8
  106. data/lib/cucumber/core_ext/instance_exec.rb +54 -0
  107. data/lib/cucumber/core_ext/proc.rb +29 -65
  108. data/lib/cucumber/core_ext/string.rb +19 -0
  109. data/lib/cucumber/formatter.rb +1 -0
  110. data/lib/cucumber/{formatters → formatter}/ansicolor.rb +14 -16
  111. data/lib/cucumber/formatter/color_io.rb +17 -0
  112. data/lib/cucumber/formatter/console.rb +119 -0
  113. data/lib/cucumber/formatter/cucumber.css +55 -0
  114. data/lib/cucumber/formatter/cucumber.sass +49 -0
  115. data/lib/cucumber/formatter/html.rb +121 -0
  116. data/lib/cucumber/formatter/pretty.rb +167 -0
  117. data/lib/cucumber/formatter/profile.rb +77 -0
  118. data/lib/cucumber/formatter/progress.rb +68 -0
  119. data/lib/cucumber/formatter/rerun.rb +35 -0
  120. data/lib/cucumber/formatter/unicode.rb +35 -0
  121. data/lib/cucumber/formatters/unicode.rb +2 -35
  122. data/lib/cucumber/jbehave.rb +102 -0
  123. data/lib/cucumber/languages.yml +128 -75
  124. data/lib/cucumber/parser.rb +43 -0
  125. data/lib/cucumber/parser/basic.rb +0 -0
  126. data/lib/cucumber/parser/feature.rb +1490 -0
  127. data/lib/cucumber/parser/feature.tt +188 -0
  128. data/lib/cucumber/parser/i18n.tt +31 -0
  129. data/lib/cucumber/parser/table.rb +402 -0
  130. data/lib/cucumber/parser/table.tt +59 -0
  131. data/lib/cucumber/parser/treetop_ext.rb +75 -0
  132. data/lib/cucumber/platform.rb +3 -17
  133. data/lib/cucumber/rails/rspec.rb +5 -2
  134. data/lib/cucumber/step_definition.rb +87 -0
  135. data/lib/cucumber/step_mother.rb +151 -66
  136. data/lib/cucumber/version.rb +2 -2
  137. data/rails_generators/cucumber/USAGE +3 -2
  138. data/rails_generators/cucumber/cucumber_generator.rb +33 -23
  139. data/rails_generators/cucumber/templates/cucumber +2 -1
  140. data/rails_generators/cucumber/templates/cucumber.rake +6 -1
  141. data/rails_generators/cucumber/templates/env.rb +1 -1
  142. data/rails_generators/feature/USAGE +3 -0
  143. data/rails_generators/feature/feature_generator.rb +30 -6
  144. data/spec/cucumber/ast/background_spec.rb +58 -0
  145. data/spec/cucumber/ast/feature_factory.rb +54 -0
  146. data/spec/cucumber/ast/feature_spec.rb +60 -0
  147. data/spec/cucumber/ast/py_string_spec.rb +40 -0
  148. data/spec/cucumber/ast/scenario_outline_spec.rb +64 -0
  149. data/spec/cucumber/ast/scenario_spec.rb +82 -0
  150. data/spec/cucumber/ast/step_spec.rb +45 -0
  151. data/spec/cucumber/ast/table_spec.rb +81 -0
  152. data/spec/cucumber/ast/tags_spec.rb +23 -0
  153. data/spec/cucumber/broadcaster_spec.rb +4 -17
  154. data/spec/cucumber/cli/configuration_spec.rb +239 -0
  155. data/spec/cucumber/cli/main_spec.rb +164 -0
  156. data/spec/cucumber/core_ext/proc_spec.rb +27 -35
  157. data/spec/cucumber/core_ext/string_spec.rb +8 -0
  158. data/spec/cucumber/{formatters → formatter}/ansicolor_spec.rb +2 -2
  159. data/spec/cucumber/formatter/html/cucumber.css +37 -0
  160. data/spec/cucumber/formatter/html/cucumber.js +13 -0
  161. data/spec/cucumber/formatter/html/index.html +45 -0
  162. data/spec/cucumber/formatter/html/jquery-1.3.min.js +19 -0
  163. data/spec/cucumber/formatter/html/jquery.uitableedit.js +100 -0
  164. data/spec/cucumber/formatters/profile_formatter_spec.rb +17 -16
  165. data/spec/cucumber/parser/feature_parser_spec.rb +281 -0
  166. data/spec/cucumber/parser/table_parser_spec.rb +48 -0
  167. data/spec/cucumber/step_definition_spec.rb +62 -0
  168. data/spec/cucumber/step_mother_spec.rb +50 -51
  169. data/spec/cucumber/treetop_parser/empty_feature.feature +1 -1
  170. data/spec/cucumber/treetop_parser/scenario_outline.feature +1 -1
  171. data/spec/cucumber/treetop_parser/spaces.feature +3 -1
  172. data/spec/cucumber/treetop_parser/with_comments.feature +1 -1
  173. data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
  174. data/spec/cucumber/world/pending_spec.rb +13 -12
  175. data/spec/spec_helper.rb +1 -1
  176. metadata +107 -79
  177. data/examples/calculator_ruby_features/features/addition.rb +0 -39
  178. data/examples/calculator_ruby_features/features/step_definitons/calculator_steps.rb +0 -43
  179. data/gem_tasks/treetop.rake +0 -41
  180. data/lib/cucumber/cli.rb +0 -355
  181. data/lib/cucumber/executor.rb +0 -205
  182. data/lib/cucumber/formatters.rb +0 -1
  183. data/lib/cucumber/formatters/autotest_formatter.rb +0 -23
  184. data/lib/cucumber/formatters/cucumber.css +0 -132
  185. data/lib/cucumber/formatters/cucumber.js +0 -11
  186. data/lib/cucumber/formatters/html_formatter.rb +0 -152
  187. data/lib/cucumber/formatters/jquery.js +0 -32
  188. data/lib/cucumber/formatters/pretty_formatter.rb +0 -285
  189. data/lib/cucumber/formatters/profile_formatter.rb +0 -92
  190. data/lib/cucumber/formatters/progress_formatter.rb +0 -61
  191. data/lib/cucumber/model.rb +0 -1
  192. data/lib/cucumber/model/table.rb +0 -32
  193. data/lib/cucumber/step_methods.rb +0 -49
  194. data/lib/cucumber/tree.rb +0 -16
  195. data/lib/cucumber/tree/feature.rb +0 -105
  196. data/lib/cucumber/tree/features.rb +0 -21
  197. data/lib/cucumber/tree/given_scenario.rb +0 -13
  198. data/lib/cucumber/tree/scenario.rb +0 -240
  199. data/lib/cucumber/tree/step.rb +0 -173
  200. data/lib/cucumber/tree/table.rb +0 -26
  201. data/lib/cucumber/tree/top_down_visitor.rb +0 -23
  202. data/lib/cucumber/treetop_parser/feature.treetop.erb +0 -254
  203. data/lib/cucumber/treetop_parser/feature_ar.rb +0 -1951
  204. data/lib/cucumber/treetop_parser/feature_cy.rb +0 -1951
  205. data/lib/cucumber/treetop_parser/feature_da.rb +0 -1951
  206. data/lib/cucumber/treetop_parser/feature_de.rb +0 -1951
  207. data/lib/cucumber/treetop_parser/feature_en-lol.rb +0 -1951
  208. data/lib/cucumber/treetop_parser/feature_en-tx.rb +0 -1951
  209. data/lib/cucumber/treetop_parser/feature_en.rb +0 -1951
  210. data/lib/cucumber/treetop_parser/feature_es.rb +0 -1951
  211. data/lib/cucumber/treetop_parser/feature_et.rb +0 -1951
  212. data/lib/cucumber/treetop_parser/feature_fi.rb +0 -1951
  213. data/lib/cucumber/treetop_parser/feature_fr.rb +0 -1951
  214. data/lib/cucumber/treetop_parser/feature_id.rb +0 -1951
  215. data/lib/cucumber/treetop_parser/feature_it.rb +0 -1951
  216. data/lib/cucumber/treetop_parser/feature_ja.rb +0 -1951
  217. data/lib/cucumber/treetop_parser/feature_ko.rb +0 -1951
  218. data/lib/cucumber/treetop_parser/feature_lt.rb +0 -1951
  219. data/lib/cucumber/treetop_parser/feature_nl.rb +0 -1951
  220. data/lib/cucumber/treetop_parser/feature_no.rb +0 -1951
  221. data/lib/cucumber/treetop_parser/feature_parser.rb +0 -36
  222. data/lib/cucumber/treetop_parser/feature_pl.rb +0 -1951
  223. data/lib/cucumber/treetop_parser/feature_pt.rb +0 -1951
  224. data/lib/cucumber/treetop_parser/feature_ro.rb +0 -1951
  225. data/lib/cucumber/treetop_parser/feature_ro2.rb +0 -1951
  226. data/lib/cucumber/treetop_parser/feature_ru.rb +0 -1951
  227. data/lib/cucumber/treetop_parser/feature_se.rb +0 -1951
  228. data/lib/cucumber/treetop_parser/feature_zh-CN.rb +0 -1951
  229. data/lib/cucumber/world.rb +0 -1
  230. data/lib/cucumber/world/pending.rb +0 -22
  231. data/setup.rb +0 -1585
  232. data/spec/cucumber/cli_spec.rb +0 -521
  233. data/spec/cucumber/executor_spec.rb +0 -382
  234. data/spec/cucumber/formatters/autotest_formatter_spec.rb +0 -26
  235. data/spec/cucumber/formatters/features.html +0 -269
  236. data/spec/cucumber/formatters/html_formatter_spec.rb +0 -110
  237. data/spec/cucumber/formatters/pretty_formatter_spec.rb +0 -410
  238. data/spec/cucumber/formatters/progress_formatter_spec.rb +0 -81
  239. data/spec/cucumber/model/table_spec.rb +0 -32
  240. data/spec/cucumber/tree/feature_spec.rb +0 -122
  241. data/spec/cucumber/tree/row_scenario_outline_spec.rb +0 -73
  242. data/spec/cucumber/tree/row_scenario_spec.rb +0 -55
  243. data/spec/cucumber/tree/row_step_outline_spec.rb +0 -38
  244. data/spec/cucumber/tree/scenario_outline_spec.rb +0 -50
  245. data/spec/cucumber/tree/scenario_spec.rb +0 -134
  246. data/spec/cucumber/tree/step_outline_spec.rb +0 -17
  247. data/spec/cucumber/tree/step_spec.rb +0 -59
  248. data/spec/cucumber/treetop_parser/feature_parser_spec.rb +0 -120
data/History.txt CHANGED
@@ -1,9 +1,130 @@
1
- === New features
1
+ === Added language option to generators and rake
2
2
  * Added language as rake option
3
3
  * Added GemInstaller config files
4
4
  * Added CruiseControl.rb files
5
5
 
6
- == 0.1.16.x (Git)
6
+ == Git (0.2 alpha)
7
+
8
+ This is a major rewrite of Cucumber's internals. The rewrite was done to address technical
9
+ debt and to have a codebase that is easier to evolve and maintain. There are some major
10
+ changes to the Gherkin language, so this release is not fully backwards compatible. You
11
+ may have to edit your feature files a little. Most importantly, "GivenScenario" and
12
+ "More Examples" no longer exist. See the "Removed features" section below for more details
13
+ on how to use alternatives.
14
+
15
+ **** CALL FOR TRANSLATORS ****
16
+ Since the grammar has changed, there are some new keywords. We have to rely on the community
17
+ to provide updated translations. This is much easier than before - just update languages.yml.
18
+ There is no static code generation anymore. To list all languages:
19
+
20
+ cucumber --lang help
21
+
22
+ And to list the keywords for a particular language:
23
+
24
+ cucumber --lang en-lol help
25
+
26
+ So just go ahead and list the language of your choice and send us updated translations.
27
+
28
+ There are some really awesome new features in this release: Tagging, Autoformatting, automatic
29
+ aliasing of keywords in all languages, much better Ruby 1.9 support and improved output
30
+ for multiline arguments are some of the highlights.
31
+
32
+ This version also brings Cucumber even closer to Java. Although it has been possible to
33
+ run Cucumber on JRuby since v0.1.11, it has required that step definitions be defined
34
+ in Ruby code. This has been a barrier for many Java developers who don't know Ruby.
35
+
36
+ With this version you can write step definitions in pure Java code! Java step definitions
37
+ are implemented simply by subclassing org.jbehave.scenario.steps.Steps. Example:
38
+
39
+ package super.duper;
40
+
41
+ public class MyJavaSteps extends Steps {
42
+ @Given("I have %count cucumbers in my belly")
43
+ public void cucumbersInTheBelly(int count) {
44
+ // talk to the Belly class
45
+ }
46
+
47
+ @Then("I should not be hungry for %n hours")
48
+ public void shouldNotBeHungry(int n) {
49
+ // Make assertions with JUnit or Hamcrest
50
+ }
51
+ }
52
+
53
+ The only Ruby code you have to write is a little wiring in your env.rb file:
54
+
55
+ require 'cucumber/jbehave'
56
+ JBehave(super.duper.MyJavaSteps.new)
57
+
58
+ You might be wondering what this brings over just using the whole JBehave tool
59
+ standalone. Well, it gives you access to the Gherkin language in your features,
60
+ which is a richer DSL than JBehave's language. -Over 20 spoken languages, Tables,
61
+ Scenario Outlines, the rich command line, the nice output format and everything
62
+ pure Ruby users have been enjoying for a while.
63
+
64
+ == TODO Before 0.2 release
65
+ * Make sure all features and specs pass on Windows, JRuby and Ruby 1.9
66
+ * Tighten up and simplify the grammar. More edge case features/specs.
67
+ * Reintroduce StepInvocation. Reduce some of the redundant calls to StepDefinition/StepMother. Align with JBehave.
68
+ * Make some class diagrams.
69
+ * Implement at least a basic HTML formatter
70
+ * Run a single cucumber feature from rake "rake features FEATURE=/path/to/feature:line"
71
+ * Wiki page about running subsets
72
+ ** file:line
73
+ *** scenario (or step within)
74
+ *** scenario outline
75
+ *** scenario outline examples
76
+ *** line in an example table
77
+ *** background (same as whole file)
78
+ *** fix bugs in any of those cases (there are some)
79
+ ** --tags
80
+ *** Link to page about tags
81
+ * Tags with arguments
82
+ * cucumber.jar + examples
83
+ ** Remove need for -S cucumber
84
+ ** Full jar and simple jar
85
+
86
+ == Bugfixes
87
+ * Depend on polyglot version (0.2.4) to avoid masking require errors. (Aslak Hellesøy).
88
+ * -n option does not suppress the line info for a Scenario Outline (#175 Aslak Hellesøy)
89
+ * Errors with rspec-rails matchers in cucumber 0.1.99 (#173 David Chelimsky)
90
+ * Can't use an empty string as a table value in a scenario outline (#172 Aslak Hellesøy)
91
+ * Really skip skipped steps (#90 Aslak Hellesøy)
92
+ * No output for multi-line strings (#71 Aslak Hellesøy)
93
+ * Fix cucumber/formatters/unicode flaws on Windows (#145 Michael)
94
+ * Autotest-related Bugs: YAML missing (#136 Tobias Pape)
95
+ * Overeager "rescue LoadError" hides lots of errors (#137 Jonathan del Strother)
96
+ * Nested steps don't show mismatch (#116 Aslak Hellesøy)
97
+ * Pending steps in > steps called from steps (#65 Aslak Hellesøy)
98
+
99
+ === New features
100
+ * Keywords can be aliased in languages.yml. See English for an example (examples: Examples|Scenarios)
101
+ * Adding support for Background (#153 Joseph Wilk)
102
+ * Added Česky/Czech (Vojtech Salbaba)
103
+ * New --no-multiline option to reduce noise. Useful if lots of features are failing.
104
+ * Added ability to pass URIs to cucumber in addition to files and directories. Useful for troubleshooting! (Aslak Hellesøy)
105
+ * Groups of tabular scenarios (#57 Aslak Hellesøy)
106
+ * Tagging scenarios and features. Pick the ones to run with --tags (#54 Aslak Hellesøy)
107
+ * Make the current scenario available to the steps. (#44 Aslak Hellesøy)
108
+ * Step definition snippets contain a 'pending' call (#84 Aslak Hellesøy)
109
+ * Call multiline steps from other steps (#144 Aslak Hellesøy)
110
+ * Run cucumber with --autoformat DIR to reformat (pretty print) all of your feature files. (Aslak Hellesøy)
111
+ * New --strict option exits with an error code if there are undefined steps. (#52 Aslak Hellesøy)
112
+ * Given, When, Then are automatically aliased to current language.
113
+ Ruby 1.8 doesn't allow non-ascii method names in the source, so unless you're on 1.9
114
+ you will have to use Given, When, Then or set up your own aliases. Here is Norwegian:
115
+ Cucumber.alias_steps(%w{Naar Saa}) # Når, Så already aliased, but can't be called. (Aslak Hellesøy)
116
+ * Run cucumber --language help to see all supported languages. (Aslak Hellesøy)
117
+ * Run cucumber --language LANG help to see keywords for a given language. (Aslak Hellesøy)
118
+ * Multiline arguments (tables and """ strings) are printed in the output. (Aslak Hellesøy)
119
+ * It's no longer necessary to compile the Treetop grammar when adding a new language. Localised parser is generated at runtime. (Aslak Hellesøy)
120
+ * New --guess option tries to guess the best step definition match instead of raising Cucumber::Multiple. (Jake Howerton)
121
+
122
+ === Removed features
123
+ * "GivenScenario" is gone. Instead you can call Steps from Steps, or wait for "Background (#153)"
124
+ * "More Examples" is gone. "Scenario" + "More Examples" is no longer supported. Use "Scenario Outline" + "Examples" instead.
125
+ * Pure Ruby features are no longer supported.
126
+
127
+ == (0.16.4 aslakhellesoy-webrat gem on GitHub)
7
128
 
8
129
  Bugfix release.
9
130
 
@@ -22,6 +143,7 @@ to this:
22
143
  * Use Webrat's #contain matcher in generated "I should (not) see" step definitions (Bryan Helmkamp)
23
144
 
24
145
  == Bugfixes
146
+ * Escaped quotes - \" - inside multiline strings will be unescaped.
25
147
  * Flush output in HTML formatter since JRuby doesnt do it automatically (Diego Carrion)
26
148
  * Better handling of ARGV (#169 David Chelimsky, Ben Mabey)
27
149
  * Compatibility with ruby-debug (do ARGV.dup in bin/cucumber so it can restart ruby with same args) (Aslak Hellesøy)
@@ -32,6 +154,8 @@ This is a small bugfix release. The most notable improvement is compatibility wi
32
154
  upgrade both Cucumber and Webrat gems.
33
155
 
34
156
  === New features
157
+ * Allow argument placeholders in step tables and multiline comments (#121 Joseph Wilk)
158
+ * Scenario Outline can be followed by several named Examples sections (#123 Aslak Hellesøy)
35
159
  * 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)
36
160
  * Added a /^When I go to (.+)$/ step definition to webrat_steps.rb and a simple page name to path mapping method (Bryan Helmkamp)
37
161
 
data/License.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2008 Aslak Hellesøy
1
+ Copyright (c) 2008,2009 Aslak Hellesøy
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/Manifest.txt CHANGED
@@ -1,270 +0,0 @@
1
- History.txt
2
- License.txt
3
- Manifest.txt
4
- README.txt
5
- Rakefile
6
- bin/cucumber
7
- config/hoe.rb
8
- config/requirements.rb
9
- cucumber.yml
10
- examples/calculator_ruby_features/Rakefile
11
- examples/calculator_ruby_features/features/addition.rb
12
- examples/calculator_ruby_features/features/step_definitons/calculator_steps.rb
13
- examples/cs/README.textile
14
- examples/cs/Rakefile
15
- examples/cs/compile.bat
16
- examples/cs/features/addition.feature
17
- examples/cs/features/step_definitons/calculator_steps.rb
18
- examples/cs/src/demo/Calculator.cs
19
- examples/dos_line_endings/Rakefile
20
- examples/dos_line_endings/features/dos_line_endings.feature
21
- examples/i18n/README.textile
22
- examples/i18n/Rakefile
23
- examples/i18n/ar/Rakefile
24
- examples/i18n/ar/features/addition.feature
25
- examples/i18n/ar/features/step_definitons/calculator_steps.rb
26
- examples/i18n/ar/lib/calculator.rb
27
- examples/i18n/da/Rakefile
28
- examples/i18n/da/features/step_definitons/kalkulator_steps.rb
29
- examples/i18n/da/features/summering.feature
30
- examples/i18n/da/lib/kalkulator.rb
31
- examples/i18n/de/Rakefile
32
- examples/i18n/de/features/addition.feature
33
- examples/i18n/de/features/division.feature
34
- examples/i18n/de/features/step_definitons/calculator_steps.rb
35
- examples/i18n/de/lib/calculator.rb
36
- examples/i18n/en/Rakefile
37
- examples/i18n/en/features/addition.feature
38
- examples/i18n/en/features/division.feature
39
- examples/i18n/en/features/step_definitons/calculator_steps.rb
40
- examples/i18n/en/lib/calculator.rb
41
- examples/i18n/es/Rakefile
42
- examples/i18n/es/features/adicion.feature
43
- examples/i18n/es/features/step_definitons/calculador_steps.rb
44
- examples/i18n/es/lib/calculador.rb
45
- examples/i18n/et/Rakefile
46
- examples/i18n/et/features/liitmine.feature
47
- examples/i18n/et/features/step_definitions/kalkulaator_steps.rb
48
- examples/i18n/et/lib/kalkulaator.rb
49
- examples/i18n/fi/Rakefile
50
- examples/i18n/fi/features/jakolasku.feature
51
- examples/i18n/fi/features/step_definitons/laskin_steps.rb
52
- examples/i18n/fi/features/yhteenlasku.feature
53
- examples/i18n/fi/lib/laskin.rb
54
- examples/i18n/fr/Rakefile
55
- examples/i18n/fr/features/addition.feature
56
- examples/i18n/fr/features/step_definitions/calculatrice_steps.rb
57
- examples/i18n/fr/lib/calculatrice.rb
58
- examples/i18n/id/Rakefile
59
- examples/i18n/id/features/addition.feature
60
- examples/i18n/id/features/division.feature
61
- examples/i18n/id/features/step_definitons/calculator_steps.rb
62
- examples/i18n/id/lib/calculator.rb
63
- examples/i18n/it/Rakefile
64
- examples/i18n/it/features/somma.feature
65
- examples/i18n/it/features/step_definitons/calcolatrice_steps.rb
66
- examples/i18n/it/lib/calcolatrice.rb
67
- examples/i18n/ja/README.txt
68
- examples/i18n/ja/Rakefile
69
- examples/i18n/ja/features/addition.feature
70
- examples/i18n/ja/features/division.feature
71
- examples/i18n/ja/features/step_definitons/calculator_steps.rb
72
- examples/i18n/ja/lib/calculator.rb
73
- examples/i18n/ko/Rakefile
74
- examples/i18n/ko/features/addition.feature
75
- examples/i18n/ko/features/division.feature
76
- examples/i18n/ko/features/step_definitons/calculator_steps.rb
77
- examples/i18n/ko/lib/calculator.rb
78
- examples/i18n/lt/Rakefile
79
- examples/i18n/lt/features/addition.feature
80
- examples/i18n/lt/features/division.feature
81
- examples/i18n/lt/features/step_definitons/calculator_steps.rb
82
- examples/i18n/lt/lib/calculator.rb
83
- examples/i18n/no/Rakefile
84
- examples/i18n/no/features/step_definitons/kalkulator_steps.rb
85
- examples/i18n/no/features/summering.feature
86
- examples/i18n/no/lib/kalkulator.rb
87
- examples/i18n/pt/Rakefile
88
- examples/i18n/pt/features/adicao.feature
89
- examples/i18n/pt/features/step_definitions/calculadora_steps.rb
90
- examples/i18n/pt/lib/calculadora.rb
91
- examples/i18n/ro/Rakefile
92
- examples/i18n/ro/features/step_definitons/calculator_steps.rb
93
- examples/i18n/ro/features/suma.feature
94
- examples/i18n/ro/lib/calculator.rb
95
- examples/i18n/se/Rakefile
96
- examples/i18n/se/features/step_definitons/kalkulator_steps.rb
97
- examples/i18n/se/features/summering.feature
98
- examples/i18n/se/lib/kalkulator.rb
99
- examples/i18n/zh-CN/Rakefile
100
- examples/i18n/zh-CN/features/addition.feature
101
- examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb
102
- examples/i18n/zh-CN/lib/calculator.rb
103
- examples/java/README.textile
104
- examples/java/Rakefile
105
- examples/java/features/hello.feature
106
- examples/java/features/step_definitons/hello_steps.rb
107
- examples/java/features/step_definitons/tree_steps.rb
108
- examples/java/features/tree.feature
109
- examples/selenium/Rakefile
110
- examples/selenium/features/search.feature
111
- examples/selenium/features/step_definitons/stories_steps.rb
112
- examples/self_test/README.textile
113
- examples/self_test/features/outline_sample.feature
114
- examples/self_test/features/sample.feature
115
- examples/self_test/features/step_definitions/sample_steps.rb
116
- examples/test_unit/Rakefile
117
- examples/test_unit/features/step_definitions/test_unit_steps.rb
118
- examples/test_unit/features/test_unit.feature
119
- examples/tickets/Rakefile
120
- examples/tickets/cucumber.yml
121
- examples/tickets/features/lib/eatting_machine.rb
122
- examples/tickets/features/lib/pantry.rb
123
- examples/tickets/features/scenario_outline.feature
124
- examples/tickets/features/step_definitons/scenario_outline_steps.rb
125
- examples/tickets/features/step_definitons/tickets_steps.rb
126
- examples/tickets/features/tickets.feature
127
- examples/watir/README.textile
128
- examples/watir/Rakefile
129
- examples/watir/features/search.feature
130
- examples/watir/features/step_definitons/search_steps.rb
131
- examples/watir/features/support/env.rb
132
- features/cucumber_cli.feature
133
- features/cucumber_cli_outlines.feature
134
- features/step_definitions/cucumber_steps.rb
135
- features/step_definitions/extra_steps.rb
136
- features/support/env.rb
137
- gem_tasks/deployment.rake
138
- gem_tasks/environment.rake
139
- gem_tasks/features.rake
140
- gem_tasks/fix_cr_lf.rake
141
- gem_tasks/flog.rake
142
- gem_tasks/gemspec.rake
143
- gem_tasks/rspec.rake
144
- gem_tasks/treetop.rake
145
- gem_tasks/yard.rake
146
- lib/autotest/cucumber.rb
147
- lib/autotest/cucumber_mixin.rb
148
- lib/autotest/cucumber_rails.rb
149
- lib/autotest/cucumber_rails_rspec.rb
150
- lib/autotest/cucumber_rspec.rb
151
- lib/autotest/discover.rb
152
- lib/cucumber.rb
153
- lib/cucumber/broadcaster.rb
154
- lib/cucumber/cli.rb
155
- lib/cucumber/core_ext/exception.rb
156
- lib/cucumber/core_ext/proc.rb
157
- lib/cucumber/core_ext/string.rb
158
- lib/cucumber/executor.rb
159
- lib/cucumber/formatters.rb
160
- lib/cucumber/formatters/ansicolor.rb
161
- lib/cucumber/formatters/autotest_formatter.rb
162
- lib/cucumber/formatters/cucumber.css
163
- lib/cucumber/formatters/cucumber.js
164
- lib/cucumber/formatters/html_formatter.rb
165
- lib/cucumber/formatters/jquery.js
166
- lib/cucumber/formatters/pretty_formatter.rb
167
- lib/cucumber/formatters/profile_formatter.rb
168
- lib/cucumber/formatters/progress_formatter.rb
169
- lib/cucumber/formatters/unicode.rb
170
- lib/cucumber/languages.yml
171
- lib/cucumber/model.rb
172
- lib/cucumber/model/table.rb
173
- lib/cucumber/platform.rb
174
- lib/cucumber/rails/rspec.rb
175
- lib/cucumber/rails/world.rb
176
- lib/cucumber/rake/task.rb
177
- lib/cucumber/step_methods.rb
178
- lib/cucumber/step_mother.rb
179
- lib/cucumber/tree.rb
180
- lib/cucumber/tree/feature.rb
181
- lib/cucumber/tree/features.rb
182
- lib/cucumber/tree/given_scenario.rb
183
- lib/cucumber/tree/scenario.rb
184
- lib/cucumber/tree/step.rb
185
- lib/cucumber/tree/table.rb
186
- lib/cucumber/tree/top_down_visitor.rb
187
- lib/cucumber/treetop_parser/feature.treetop.erb
188
- lib/cucumber/treetop_parser/feature_ar.rb
189
- lib/cucumber/treetop_parser/feature_cy.rb
190
- lib/cucumber/treetop_parser/feature_da.rb
191
- lib/cucumber/treetop_parser/feature_de.rb
192
- lib/cucumber/treetop_parser/feature_en-lol.rb
193
- lib/cucumber/treetop_parser/feature_en-tx.rb
194
- lib/cucumber/treetop_parser/feature_en.rb
195
- lib/cucumber/treetop_parser/feature_es.rb
196
- lib/cucumber/treetop_parser/feature_et.rb
197
- lib/cucumber/treetop_parser/feature_fi.rb
198
- lib/cucumber/treetop_parser/feature_fr.rb
199
- lib/cucumber/treetop_parser/feature_id.rb
200
- lib/cucumber/treetop_parser/feature_it.rb
201
- lib/cucumber/treetop_parser/feature_ja.rb
202
- lib/cucumber/treetop_parser/feature_ko.rb
203
- lib/cucumber/treetop_parser/feature_lt.rb
204
- lib/cucumber/treetop_parser/feature_nl.rb
205
- lib/cucumber/treetop_parser/feature_no.rb
206
- lib/cucumber/treetop_parser/feature_parser.rb
207
- lib/cucumber/treetop_parser/feature_pl.rb
208
- lib/cucumber/treetop_parser/feature_pt.rb
209
- lib/cucumber/treetop_parser/feature_ro.rb
210
- lib/cucumber/treetop_parser/feature_ro2.rb
211
- lib/cucumber/treetop_parser/feature_ru.rb
212
- lib/cucumber/treetop_parser/feature_se.rb
213
- lib/cucumber/treetop_parser/feature_zh-CN.rb
214
- lib/cucumber/version.rb
215
- lib/cucumber/world.rb
216
- lib/cucumber/world/pending.rb
217
- rails_generators/cucumber/USAGE
218
- rails_generators/cucumber/cucumber_generator.rb
219
- rails_generators/cucumber/templates/cucumber
220
- rails_generators/cucumber/templates/cucumber.rake
221
- rails_generators/cucumber/templates/env.rb
222
- rails_generators/cucumber/templates/paths.rb
223
- rails_generators/cucumber/templates/webrat_steps.rb
224
- rails_generators/feature/USAGE
225
- rails_generators/feature/feature_generator.rb
226
- rails_generators/feature/templates/feature.erb
227
- rails_generators/feature/templates/steps.erb
228
- setup.rb
229
- spec/cucumber/broadcaster_spec.rb
230
- spec/cucumber/cli_spec.rb
231
- spec/cucumber/core_ext/proc_spec.rb
232
- spec/cucumber/core_ext/string_spec.rb
233
- spec/cucumber/executor_spec.rb
234
- spec/cucumber/formatters/ansicolor_spec.rb
235
- spec/cucumber/formatters/autotest_formatter_spec.rb
236
- spec/cucumber/formatters/features.html
237
- spec/cucumber/formatters/html_formatter_spec.rb
238
- spec/cucumber/formatters/pretty_formatter_spec.rb
239
- spec/cucumber/formatters/profile_formatter_spec.rb
240
- spec/cucumber/formatters/progress_formatter_spec.rb
241
- spec/cucumber/model/table_spec.rb
242
- spec/cucumber/rails/stubs/mini_rails.rb
243
- spec/cucumber/rails/stubs/test_help.rb
244
- spec/cucumber/rails/world_spec.rb
245
- spec/cucumber/sell_cucumbers.feature
246
- spec/cucumber/step_mother_spec.rb
247
- spec/cucumber/tree/feature_spec.rb
248
- spec/cucumber/tree/row_scenario_outline_spec.rb
249
- spec/cucumber/tree/row_scenario_spec.rb
250
- spec/cucumber/tree/row_step_outline_spec.rb
251
- spec/cucumber/tree/scenario_outline_spec.rb
252
- spec/cucumber/tree/scenario_spec.rb
253
- spec/cucumber/tree/step_outline_spec.rb
254
- spec/cucumber/tree/step_spec.rb
255
- spec/cucumber/treetop_parser/empty_feature.feature
256
- spec/cucumber/treetop_parser/empty_scenario.feature
257
- spec/cucumber/treetop_parser/empty_scenario_outline.feature
258
- spec/cucumber/treetop_parser/feature_parser_spec.rb
259
- spec/cucumber/treetop_parser/fit_scenario.feature
260
- spec/cucumber/treetop_parser/given_scenario.feature
261
- spec/cucumber/treetop_parser/invalid_scenario_outlines.feature
262
- spec/cucumber/treetop_parser/multiline_steps.feature
263
- spec/cucumber/treetop_parser/multiple_tables.feature
264
- spec/cucumber/treetop_parser/scenario_outline.feature
265
- spec/cucumber/treetop_parser/spaces.feature
266
- spec/cucumber/treetop_parser/test_dos.feature
267
- spec/cucumber/treetop_parser/with_comments.feature
268
- spec/cucumber/world/pending_spec.rb
269
- spec/spec.opts
270
- spec/spec_helper.rb
data/Rakefile CHANGED
@@ -6,4 +6,4 @@ require 'config/hoe' # setup Hoe + all gem configuration
6
6
  Dir['gem_tasks/**/*.rake'].each { |rake| load rake }
7
7
 
8
8
  # Hoe gives us :default => :test, but we don't have Test::Unit tests.
9
- Rake::Task[:default].clear_prerequisites
9
+ Rake::Task[:default].clear_prerequisites rescue nil # For some super weird reason this fails for some...
data/bin/cucumber CHANGED
@@ -2,5 +2,5 @@
2
2
  # Add '.rb' to work around a bug in IronRuby's File#dirname
3
3
  $:.unshift(File.dirname(__FILE__ + '.rb') + '/../lib') unless $:.include?(File.dirname(__FILE__ + '.rb') + '/../lib')
4
4
 
5
- require 'cucumber/cli'
6
- Cucumber::CLI.execute(ARGV.dup)
5
+ require 'cucumber/cli/main'
6
+ Cucumber::Cli::Main.execute(ARGV.dup)
data/config/hoe.rb CHANGED
@@ -5,7 +5,7 @@ AUTHOR = 'Aslak Hellesøy' # can also be an array of Authors
5
5
  EMAIL = "aslak.hellesoy@gmail.com"
6
6
  DESCRIPTION = "Executable Feature scenarios"
7
7
  GEM_NAME = 'cucumber' # what ppl will type to install your gem
8
- HOMEPATH = "http://github.com/aslakhellesoy/cucumber"
8
+ HOMEPATH = "http://cukes.info"
9
9
  RUBYFORGE_PROJECT = 'rspec'
10
10
 
11
11
  @config_file = "~/.rubyforge/user-config.yml"
@@ -58,7 +58,12 @@ $hoe = Hoe.new(GEM_NAME, VERS) do |p|
58
58
  # == Optional
59
59
  p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
60
60
  #p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
61
- p.extra_deps = [ ['term-ansicolor', '>= 1.0.3'], ['treetop', '>= 1.2.4'], ['diff-lcs', '>= 1.1.2'] ]
61
+ p.extra_deps = [
62
+ ['term-ansicolor', '>= 1.0.3'],
63
+ ['treetop', '>= 1.2.4'],
64
+ ['polyglot', '>= 0.2.4'], # Remove this when Treetop no longer loads polyglot by default.
65
+ ['diff-lcs', '>= 1.1.2']
66
+ ]
62
67
 
63
68
  #p.spec_extras = {} # A hash of extra values to set in the gemspec.
64
69