aslakhellesoy-cucumber 0.1.99.3 → 0.1.99.4

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 (257) hide show
  1. data/Manifest.txt +6 -0
  2. metadata +1 -1
  3. data/cucumber.yml +0 -1
  4. data/examples/cs/README.textile +0 -1
  5. data/examples/cs/Rakefile +0 -12
  6. data/examples/cs/compile.bat +0 -1
  7. data/examples/cs/features/addition.feature +0 -16
  8. data/examples/cs/features/step_definitons/calculator_steps.rb +0 -19
  9. data/examples/cs/src/demo/Calculator.cs +0 -20
  10. data/examples/dos_line_endings/Rakefile +0 -6
  11. data/examples/dos_line_endings/features/dos_line_endings.feature +0 -9
  12. data/examples/i18n/README.textile +0 -18
  13. data/examples/i18n/Rakefile +0 -32
  14. data/examples/i18n/ar/Rakefile +0 -6
  15. data/examples/i18n/ar/features/addition.feature +0 -17
  16. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +0 -28
  17. data/examples/i18n/ar/lib/calculator.rb +0 -10
  18. data/examples/i18n/da/Rakefile +0 -6
  19. data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +0 -24
  20. data/examples/i18n/da/features/summering.feature +0 -17
  21. data/examples/i18n/da/lib/kalkulator.rb +0 -11
  22. data/examples/i18n/de/Rakefile +0 -6
  23. data/examples/i18n/de/features/addition.feature +0 -16
  24. data/examples/i18n/de/features/division.feature +0 -9
  25. data/examples/i18n/de/features/step_definitons/calculator_steps.rb +0 -24
  26. data/examples/i18n/de/lib/calculator.rb +0 -14
  27. data/examples/i18n/en/Rakefile +0 -6
  28. data/examples/i18n/en/features/addition.feature +0 -16
  29. data/examples/i18n/en/features/division.feature +0 -9
  30. data/examples/i18n/en/features/step_definitons/calculator_steps.rb +0 -24
  31. data/examples/i18n/en/lib/calculator.rb +0 -14
  32. data/examples/i18n/es/Rakefile +0 -6
  33. data/examples/i18n/es/features/adicion.feature +0 -17
  34. data/examples/i18n/es/features/step_definitons/calculador_steps.rb +0 -24
  35. data/examples/i18n/es/lib/calculador.rb +0 -11
  36. data/examples/i18n/et/Rakefile +0 -6
  37. data/examples/i18n/et/features/liitmine.feature +0 -17
  38. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +0 -24
  39. data/examples/i18n/et/lib/kalkulaator.rb +0 -10
  40. data/examples/i18n/fi/Rakefile +0 -6
  41. data/examples/i18n/fi/features/jakolasku.feature +0 -9
  42. data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +0 -24
  43. data/examples/i18n/fi/features/yhteenlasku.feature +0 -16
  44. data/examples/i18n/fi/lib/laskin.rb +0 -14
  45. data/examples/i18n/fr/Rakefile +0 -6
  46. data/examples/i18n/fr/features/addition.feature +0 -15
  47. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +0 -27
  48. data/examples/i18n/fr/lib/calculatrice.rb +0 -10
  49. data/examples/i18n/id/Rakefile +0 -6
  50. data/examples/i18n/id/features/addition.feature +0 -16
  51. data/examples/i18n/id/features/division.feature +0 -9
  52. data/examples/i18n/id/features/step_definitons/calculator_steps.rb +0 -24
  53. data/examples/i18n/id/lib/calculator.rb +0 -14
  54. data/examples/i18n/it/Rakefile +0 -6
  55. data/examples/i18n/it/features/somma.feature +0 -10
  56. data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +0 -24
  57. data/examples/i18n/it/lib/calcolatrice.rb +0 -11
  58. data/examples/i18n/ja/README.txt +0 -5
  59. data/examples/i18n/ja/Rakefile +0 -6
  60. data/examples/i18n/ja/features/addition.feature +0 -16
  61. data/examples/i18n/ja/features/division.feature +0 -9
  62. data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +0 -24
  63. data/examples/i18n/ja/lib/calculator.rb +0 -14
  64. data/examples/i18n/ko/Rakefile +0 -6
  65. data/examples/i18n/ko/features/addition.feature +0 -16
  66. data/examples/i18n/ko/features/division.feature +0 -10
  67. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +0 -24
  68. data/examples/i18n/ko/lib/calculator.rb +0 -14
  69. data/examples/i18n/lt/Rakefile +0 -6
  70. data/examples/i18n/lt/features/addition.feature +0 -17
  71. data/examples/i18n/lt/features/division.feature +0 -9
  72. data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +0 -24
  73. data/examples/i18n/lt/lib/calculator.rb +0 -14
  74. data/examples/i18n/no/Rakefile +0 -6
  75. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +0 -24
  76. data/examples/i18n/no/features/summering.feature +0 -18
  77. data/examples/i18n/no/lib/kalkulator.rb +0 -11
  78. data/examples/i18n/pt/Rakefile +0 -6
  79. data/examples/i18n/pt/features/adicao.feature +0 -10
  80. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +0 -24
  81. data/examples/i18n/pt/lib/calculadora.rb +0 -10
  82. data/examples/i18n/ro/Rakefile +0 -6
  83. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +0 -24
  84. data/examples/i18n/ro/features/suma.feature +0 -10
  85. data/examples/i18n/ro/lib/calculator.rb +0 -11
  86. data/examples/i18n/se/Rakefile +0 -6
  87. data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +0 -24
  88. data/examples/i18n/se/features/summering.feature +0 -17
  89. data/examples/i18n/se/lib/kalkulator.rb +0 -11
  90. data/examples/i18n/zh-CN/Rakefile +0 -6
  91. data/examples/i18n/zh-CN/features/addition.feature +0 -17
  92. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +0 -26
  93. data/examples/i18n/zh-CN/lib/calculator.rb +0 -10
  94. data/examples/java/README.textile +0 -22
  95. data/examples/java/Rakefile +0 -12
  96. data/examples/java/features/hello.feature +0 -11
  97. data/examples/java/features/step_definitons/hello_steps.rb +0 -25
  98. data/examples/java/features/step_definitons/tree_steps.rb +0 -14
  99. data/examples/java/features/tree.feature +0 -9
  100. data/examples/jbehave/README.textile +0 -17
  101. data/examples/jbehave/features/support/env.rb +0 -7
  102. data/examples/jbehave/features/trading.feature +0 -24
  103. data/examples/jbehave/pom.xml +0 -48
  104. data/examples/selenium/Rakefile +0 -6
  105. data/examples/selenium/features/search.feature +0 -9
  106. data/examples/selenium/features/step_definitons/stories_steps.rb +0 -40
  107. data/examples/self_test/README.textile +0 -6
  108. data/examples/self_test/features/call_undefined_step_from_step_def.feature +0 -7
  109. data/examples/self_test/features/lots_of_undefined.feature +0 -8
  110. data/examples/self_test/features/outline_sample.feature +0 -12
  111. data/examples/self_test/features/sample.feature +0 -16
  112. data/examples/self_test/features/step_definitions/sample_steps.rb +0 -25
  113. data/examples/test_unit/Rakefile +0 -6
  114. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +0 -26
  115. data/examples/test_unit/features/test_unit.feature +0 -9
  116. data/examples/tickets/Rakefile +0 -11
  117. data/examples/tickets/cucumber.yml +0 -2
  118. data/examples/tickets/features/lib/eatting_machine.rb +0 -18
  119. data/examples/tickets/features/lib/pantry.rb +0 -20
  120. data/examples/tickets/features/scenario_outline.feature +0 -90
  121. data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +0 -42
  122. data/examples/tickets/features/step_definitons/tickets_steps.rb +0 -61
  123. data/examples/tickets/features/tickets.feature +0 -28
  124. data/examples/watir/README.textile +0 -16
  125. data/examples/watir/Rakefile +0 -6
  126. data/examples/watir/features/search.feature +0 -9
  127. data/examples/watir/features/step_definitons/search_steps.rb +0 -24
  128. data/examples/watir/features/support/env.rb +0 -32
  129. data/features/cucumber_cli.feature +0 -327
  130. data/features/cucumber_cli_outlines.feature +0 -81
  131. data/features/report_called_undefined_steps.feature +0 -32
  132. data/features/step_definitions/cucumber_steps.rb +0 -31
  133. data/features/step_definitions/extra_steps.rb +0 -2
  134. data/features/support/env.rb +0 -7
  135. data/gem_tasks/deployment.rake +0 -11
  136. data/gem_tasks/environment.rake +0 -7
  137. data/gem_tasks/features.rake +0 -6
  138. data/gem_tasks/fix_cr_lf.rake +0 -10
  139. data/gem_tasks/flog.rake +0 -4
  140. data/gem_tasks/gemspec.rake +0 -10
  141. data/gem_tasks/rspec.rake +0 -35
  142. data/gem_tasks/yard.rake +0 -8
  143. data/lib/autotest/cucumber.rb +0 -6
  144. data/lib/autotest/cucumber_mixin.rb +0 -124
  145. data/lib/autotest/cucumber_rails.rb +0 -6
  146. data/lib/autotest/cucumber_rails_rspec.rb +0 -6
  147. data/lib/autotest/cucumber_rspec.rb +0 -6
  148. data/lib/autotest/discover.rb +0 -9
  149. data/lib/cucumber/ast/comment.rb +0 -26
  150. data/lib/cucumber/ast/examples.rb +0 -22
  151. data/lib/cucumber/ast/feature.rb +0 -60
  152. data/lib/cucumber/ast/features.rb +0 -39
  153. data/lib/cucumber/ast/filter.rb +0 -22
  154. data/lib/cucumber/ast/outline_table.rb +0 -49
  155. data/lib/cucumber/ast/py_string.rb +0 -52
  156. data/lib/cucumber/ast/scenario.rb +0 -95
  157. data/lib/cucumber/ast/scenario_outline.rb +0 -83
  158. data/lib/cucumber/ast/step.rb +0 -139
  159. data/lib/cucumber/ast/table.rb +0 -214
  160. data/lib/cucumber/ast/tags.rb +0 -33
  161. data/lib/cucumber/ast/visitor.rb +0 -93
  162. data/lib/cucumber/ast.rb +0 -27
  163. data/lib/cucumber/broadcaster.rb +0 -15
  164. data/lib/cucumber/cli.rb +0 -410
  165. data/lib/cucumber/core_ext/exception.rb +0 -53
  166. data/lib/cucumber/core_ext/instance_exec.rb +0 -54
  167. data/lib/cucumber/core_ext/proc.rb +0 -33
  168. data/lib/cucumber/core_ext/string.rb +0 -48
  169. data/lib/cucumber/formatter/ansicolor.rb +0 -106
  170. data/lib/cucumber/formatter/console.rb +0 -116
  171. data/lib/cucumber/formatter/pretty.rb +0 -158
  172. data/lib/cucumber/formatter/profile.rb +0 -77
  173. data/lib/cucumber/formatter/progress.rb +0 -68
  174. data/lib/cucumber/formatter/rerun.rb +0 -35
  175. data/lib/cucumber/formatter.rb +0 -1
  176. data/lib/cucumber/formatters/autotest_formatter.rb +0 -21
  177. data/lib/cucumber/formatters/cucumber.css +0 -132
  178. data/lib/cucumber/formatters/cucumber.js +0 -11
  179. data/lib/cucumber/formatters/html_formatter.rb +0 -152
  180. data/lib/cucumber/formatters/jquery.js +0 -32
  181. data/lib/cucumber/formatters/pretty_formatter.rb +0 -285
  182. data/lib/cucumber/formatters/unicode.rb +0 -35
  183. data/lib/cucumber/jbehave.rb +0 -104
  184. data/lib/cucumber/languages.yml +0 -314
  185. data/lib/cucumber/parser/basic.rb +0 -0
  186. data/lib/cucumber/parser/feature.rb +0 -1315
  187. data/lib/cucumber/parser/feature.tt +0 -160
  188. data/lib/cucumber/parser/i18n.tt +0 -27
  189. data/lib/cucumber/parser/table.rb +0 -396
  190. data/lib/cucumber/parser/table.tt +0 -53
  191. data/lib/cucumber/parser/treetop_ext.rb +0 -67
  192. data/lib/cucumber/parser.rb +0 -24
  193. data/lib/cucumber/platform.rb +0 -18
  194. data/lib/cucumber/rails/rspec.rb +0 -5
  195. data/lib/cucumber/rails/world.rb +0 -73
  196. data/lib/cucumber/rake/task.rb +0 -106
  197. data/lib/cucumber/step_definition.rb +0 -87
  198. data/lib/cucumber/step_mother.rb +0 -164
  199. data/lib/cucumber/treetop_parser/feature_fi.rb +0 -1951
  200. data/lib/cucumber/version.rb +0 -10
  201. data/lib/cucumber.rb +0 -72
  202. data/pretty.txt +0 -486
  203. data/rails_generators/cucumber/USAGE +0 -11
  204. data/rails_generators/cucumber/cucumber_generator.rb +0 -31
  205. data/rails_generators/cucumber/templates/cucumber +0 -8
  206. data/rails_generators/cucumber/templates/cucumber.rake +0 -7
  207. data/rails_generators/cucumber/templates/env.rb +0 -16
  208. data/rails_generators/cucumber/templates/paths.rb +0 -12
  209. data/rails_generators/cucumber/templates/webrat_steps.rb +0 -99
  210. data/rails_generators/feature/USAGE +0 -12
  211. data/rails_generators/feature/feature_generator.rb +0 -36
  212. data/rails_generators/feature/templates/feature.erb +0 -31
  213. data/rails_generators/feature/templates/steps.erb +0 -24
  214. data/spec/cucumber/ast/feature_factory.rb +0 -54
  215. data/spec/cucumber/ast/feature_spec.rb +0 -60
  216. data/spec/cucumber/ast/py_string_spec.rb +0 -40
  217. data/spec/cucumber/ast/scenario_outline_spec.rb +0 -64
  218. data/spec/cucumber/ast/scenario_spec.rb +0 -82
  219. data/spec/cucumber/ast/step_spec.rb +0 -45
  220. data/spec/cucumber/ast/table_spec.rb +0 -81
  221. data/spec/cucumber/broadcaster_spec.rb +0 -14
  222. data/spec/cucumber/cli_spec.rb +0 -416
  223. data/spec/cucumber/core_ext/proc_spec.rb +0 -37
  224. data/spec/cucumber/core_ext/string_spec.rb +0 -42
  225. data/spec/cucumber/formatter/ansicolor_spec.rb +0 -35
  226. data/spec/cucumber/formatter/html/cucumber.css +0 -37
  227. data/spec/cucumber/formatter/html/cucumber.js +0 -11
  228. data/spec/cucumber/formatter/html/index.html +0 -45
  229. data/spec/cucumber/formatter/html/jquery-1.3.min.js +0 -19
  230. data/spec/cucumber/formatter/html/jquery.uitableedit.js +0 -100
  231. data/spec/cucumber/formatters/autotest_formatter_spec.rb +0 -27
  232. data/spec/cucumber/formatters/features.html +0 -269
  233. data/spec/cucumber/formatters/profile_formatter_spec.rb +0 -198
  234. data/spec/cucumber/parser/feature_parser_spec.rb +0 -247
  235. data/spec/cucumber/parser/table_parser_spec.rb +0 -48
  236. data/spec/cucumber/rails/stubs/mini_rails.rb +0 -18
  237. data/spec/cucumber/rails/stubs/test_help.rb +0 -1
  238. data/spec/cucumber/rails/world_spec.rb +0 -11
  239. data/spec/cucumber/sell_cucumbers.feature +0 -19
  240. data/spec/cucumber/step_definition_spec.rb +0 -62
  241. data/spec/cucumber/step_mom_spec.rb +0 -49
  242. data/spec/cucumber/treetop_parser/empty_feature.feature +0 -4
  243. data/spec/cucumber/treetop_parser/empty_scenario.feature +0 -9
  244. data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +0 -3
  245. data/spec/cucumber/treetop_parser/fit_scenario.feature +0 -8
  246. data/spec/cucumber/treetop_parser/given_scenario.feature +0 -9
  247. data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +0 -7
  248. data/spec/cucumber/treetop_parser/multiline_steps.feature +0 -17
  249. data/spec/cucumber/treetop_parser/multiple_tables.feature +0 -27
  250. data/spec/cucumber/treetop_parser/scenario_outline.feature +0 -16
  251. data/spec/cucumber/treetop_parser/spaces.feature +0 -12
  252. data/spec/cucumber/treetop_parser/test_dos.feature +0 -25
  253. data/spec/cucumber/treetop_parser/with_comments.feature +0 -10
  254. data/spec/cucumber/treetop_parser/with_tags.feature +0 -18
  255. data/spec/cucumber/world/pending_spec.rb +0 -47
  256. data/spec/spec.opts +0 -2
  257. data/spec/spec_helper.rb +0 -21
@@ -1,7 +0,0 @@
1
- require 'spec/expectations'
2
- require 'fileutils'
3
-
4
- After do
5
- FileUtils.rm_rf 'examples/self_test/tmp'
6
- FileUtils.mkdir 'examples/self_test/tmp'
7
- end
@@ -1,11 +0,0 @@
1
- desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
2
- task :install_gem_no_doc => [:clean, :package] do
3
- sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
4
- end
5
-
6
- namespace :manifest do
7
- desc 'Recreate Manifest.txt to include ALL files'
8
- task :refresh do
9
- `rake check_manifest | patch -p0 > Manifest.txt`
10
- end
11
- end
@@ -1,7 +0,0 @@
1
- task :ruby_env do
2
- RUBY_APP = if RUBY_PLATFORM =~ /java/
3
- "jruby"
4
- else
5
- "ruby"
6
- end unless defined? RUBY_APP
7
- end
@@ -1,6 +0,0 @@
1
- $:.unshift(File.dirname(__FILE__) + '/../lib')
2
- require 'cucumber/rake/task'
3
-
4
- Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = "--format progress"
6
- end
@@ -1,10 +0,0 @@
1
- desc 'Make all files use UNIX (\n) line endings'
2
- task :fix_cr_lf do
3
- files = FileList['**/*']
4
- files.each do |f|
5
- next if File.directory?(f) || f =~ /dos/
6
- s = IO.read(f)
7
- s.gsub!(/\r?\n/, "\n")
8
- File.open(f, "w") { |io| io.write(s) }
9
- end
10
- end
data/gem_tasks/flog.rake DELETED
@@ -1,4 +0,0 @@
1
- desc "Run flog over significant files"
2
- task :flog do
3
- sh "find lib/cucumber -name \\*.rb | grep -v parser\/feature\\.rb | xargs flog"
4
- end
@@ -1,10 +0,0 @@
1
- namespace :gemspec do
2
- desc 'Refresh cucumber.gemspec to include ALL files'
3
- task :refresh => 'manifest:refresh' do
4
- File.open('cucumber.gemspec', 'w') {|io| io.write($hoe.spec.to_ruby)}
5
- puts "1) git commit -a -m \"Release #{Cucumber::VERSION::STRING}\""
6
- puts "2) git tag -a \"v#{Cucumber::VERSION::STRING}\" -m \"Release #{Cucumber::VERSION::STRING}\""
7
- puts "3) git push --tags"
8
- puts "4) Bounce the version in version.rb"
9
- end
10
- end
data/gem_tasks/rspec.rake DELETED
@@ -1,35 +0,0 @@
1
- def unable_to_load
2
- STDERR.puts <<-EOS
3
- To use rspec for testing you must install rspec gem:
4
- gem install rspec
5
-
6
- EOS
7
- nil
8
- end
9
-
10
- def require_spec
11
- require 'spec/expectations'
12
- rescue LoadError
13
- require_spec_with_rubygems
14
- end
15
-
16
- def require_spec_with_rubygems
17
- require 'rubygems'
18
- require 'spec/expectations'
19
- rescue LoadError
20
- unable_to_load
21
- end
22
-
23
- if require_spec
24
- begin
25
- require 'spec/rake/spectask'
26
- rescue LoadError
27
- unable_to_load
28
- end
29
-
30
- desc "Run the Cucumber specs"
31
- Spec::Rake::SpecTask.new do |t|
32
- t.spec_opts = ['--options', "spec/spec.opts"]
33
- t.spec_files = FileList['spec/**/*_spec.rb']
34
- end
35
- end
data/gem_tasks/yard.rake DELETED
@@ -1,8 +0,0 @@
1
- begin
2
- require 'yard'
3
-
4
- YARD::Rake::YardocTask.new do |t|
5
- t.files = ['lib/**/*.rb']
6
- end
7
- rescue LoadError => ignore
8
- end
@@ -1,6 +0,0 @@
1
- require 'autotest'
2
- require 'autotest/cucumber_mixin'
3
-
4
- class Autotest::Cucumber < Autotest
5
- include CucumberMixin
6
- end
@@ -1,124 +0,0 @@
1
- require 'autotest'
2
- require 'tempfile'
3
- require 'yaml'
4
- require File.dirname(__FILE__) + '/../cucumber'
5
-
6
- module Autotest::CucumberMixin
7
- def self.included(receiver)
8
- receiver::ALL_HOOKS << [:run_features, :ran_features]
9
- end
10
-
11
- attr_accessor :features_to_run
12
-
13
- def initialize
14
- super
15
- reset_features
16
- end
17
-
18
- def run
19
- hook :initialize
20
- reset
21
- reset_features
22
- add_sigint_handler
23
-
24
- self.last_mtime = Time.now if $f
25
-
26
- loop do # ^c handler
27
- begin
28
- get_to_green
29
- if self.tainted then
30
- rerun_all_tests
31
- rerun_all_features if all_good
32
- else
33
- hook :all_good
34
- end
35
- wait_for_changes
36
- # Once tests and features are green, reset features every
37
- # time a file is changed to see if anything breaks.
38
- reset_features
39
- rescue Interrupt
40
- break if self.wants_to_quit
41
- reset
42
- reset_features
43
- end
44
- end
45
- hook :quit
46
- end
47
-
48
- def all_features_good
49
- features_to_run == ""
50
- end
51
-
52
- def get_to_green
53
- begin
54
- super
55
- run_features
56
- wait_for_changes unless all_features_good
57
- end until all_features_good
58
- end
59
-
60
- def rerun_all_features
61
- reset_features
62
- run_features
63
- end
64
-
65
- def reset_features
66
- self.features_to_run = :all
67
- end
68
-
69
- def run_features
70
- hook :run_features
71
- Tempfile.open('autotest-cucumber') do |dirty_features_file|
72
- cmd = self.make_cucumber_cmd(self.features_to_run, dirty_features_file.path)
73
- return if cmd.empty?
74
- puts cmd unless $q
75
- old_sync = $stdout.sync
76
- $stdout.sync = true
77
- self.results = []
78
- line = []
79
- begin
80
- open("| #{cmd}", "r") do |f|
81
- until f.eof? do
82
- c = f.getc
83
- putc c
84
- line << c
85
- if c == ?\n then
86
- self.results << if RUBY_VERSION >= "1.9" then
87
- line.join
88
- else
89
- line.pack "c*"
90
- end
91
- line.clear
92
- end
93
- end
94
- end
95
- ensure
96
- $stdout.sync = old_sync
97
- end
98
- self.features_to_run = dirty_features_file.read
99
- self.tainted = true unless self.features_to_run == []
100
- end
101
- hook :ran_features
102
- end
103
-
104
- def make_cucumber_cmd(features_to_run, dirty_features_filename)
105
- return '' if features_to_run == ''
106
-
107
- profiles = YAML.load_file("cucumber.yml").keys rescue []
108
-
109
- profile ||= "autotest-all" if profiles.include?("autotest-all") and features_to_run == :all
110
- profile ||= "autotest" if profiles.include?("autotest")
111
- profile ||= nil
112
-
113
- if profile
114
- args = ["--profile", profile]
115
- else
116
- args = %w{--format} << (features_to_run == :all ? "progress" : "pretty")
117
- end
118
- args += %w{--color --format rerun --out} << dirty_features_filename
119
- args << (features_to_run == :all ? "features" : features_to_run)
120
- args = args.join(' ')
121
-
122
- return "#{Cucumber::RUBY_BINARY} #{Cucumber::BINARY} #{args}"
123
- end
124
- end
@@ -1,6 +0,0 @@
1
- require 'autotest/rails'
2
- require 'autotest/cucumber_mixin'
3
-
4
- class Autotest::CucumberRails < Autotest::Rails
5
- include CucumberMixin
6
- end
@@ -1,6 +0,0 @@
1
- require 'autotest/cucumber_mixin'
2
- require 'autotest/rails_rspec'
3
-
4
- class Autotest::CucumberRailsRspec < Autotest::RailsRspec
5
- include CucumberMixin
6
- end
@@ -1,6 +0,0 @@
1
- require 'autotest/cucumber_mixin'
2
- require 'autotest/rspec'
3
-
4
- class Autotest::CucumberRspec < Autotest::Rspec
5
- include CucumberMixin
6
- end
@@ -1,9 +0,0 @@
1
- Autotest.add_discovery do
2
- if File.directory?('features')
3
- if ENV['AUTOFEATURE'] =~ /true/i
4
- "cucumber"
5
- else
6
- puts "(Not running features. To run features in autotest, set AUTOFEATURE=true.)"
7
- end
8
- end
9
- end
@@ -1,26 +0,0 @@
1
- module Cucumber
2
- module Ast
3
- # Holds the value of a comment parsed from a feature file:
4
- #
5
- # # Lorem ipsum
6
- # # dolor sit amet
7
- #
8
- # This gets parsed into a Comment with value <tt>"# Lorem ipsum\n# dolor sit amet\n"</tt>
9
- #
10
- class Comment
11
- def initialize(value)
12
- @value = value
13
- end
14
-
15
- def accept(visitor)
16
- @value.split("\n").each do |line|
17
- visitor.visit_comment_line(line.strip)
18
- end
19
- end
20
-
21
- def to_sexp
22
- (@value.nil? || @value == '') ? nil : [:comment, @value]
23
- end
24
- end
25
- end
26
- end
@@ -1,22 +0,0 @@
1
- module Cucumber
2
- module Ast
3
- class Examples
4
- def initialize(line, keyword, name, outline_table)
5
- @keyword, @name, @outline_table = keyword, name, outline_table
6
- end
7
-
8
- def accept(visitor)
9
- visitor.visit_examples_name(@keyword, @name)
10
- @outline_table.accept(visitor, nil)
11
- end
12
-
13
- def at_lines?(lines)
14
- lines.empty? || lines.index(@line) || @outline_table.at_lines?(lines)
15
- end
16
-
17
- def to_sexp
18
- [:examples, @keyword, @name, @outline_table.to_sexp]
19
- end
20
- end
21
- end
22
- end
@@ -1,60 +0,0 @@
1
- module Cucumber
2
- module Ast
3
- # Represents the root node of a parsed feature.
4
- class Feature
5
- attr_accessor :file
6
- attr_writer :features, :lines
7
-
8
- def initialize(comment, tags, name, feature_elements)
9
- @comment, @tags, @name, @feature_elements = comment, tags, name, feature_elements
10
- feature_elements.each{|feature_element| feature_element.feature = self}
11
- @lines = []
12
- end
13
-
14
- def tagged_with?(tag_names, check_elements=true)
15
- @tags.among?(tag_names) ||
16
- (check_elements && @feature_elements.detect{|e| e.tagged_with?(tag_names)})
17
- end
18
-
19
- def matches_scenario_names?(scenario_names)
20
- @feature_elements.detect{|e| e.matches_scenario_names?(scenario_names)}
21
- end
22
-
23
- def accept(visitor)
24
- visitor.current_feature_lines = @lines
25
- visitor.visit_comment(@comment)
26
- visitor.visit_tags(@tags)
27
- visitor.visit_feature_name(@name)
28
- @feature_elements.each do |feature_element|
29
- visitor.visit_feature_element(feature_element) if @features.visit?(feature_element, @lines)
30
- end
31
- end
32
-
33
- def scenario_executed(scenario)
34
- @features.scenario_executed(scenario) if @features
35
- end
36
-
37
- def step_executed(step)
38
- @features.step_executed(step) if @features
39
- end
40
-
41
- def backtrace_line(step_name, line)
42
- "#{file_line(line)}:in `#{step_name}'"
43
- end
44
-
45
- def file_line(line)
46
- "#{@file}:#{line}"
47
- end
48
-
49
- def to_sexp
50
- sexp = [:feature, @name]
51
- comment = @comment.to_sexp
52
- sexp += [comment] if comment
53
- tags = @tags.to_sexp
54
- sexp += tags if tags.any?
55
- sexp += @feature_elements.map{|e| e.to_sexp}
56
- sexp
57
- end
58
- end
59
- end
60
- end
@@ -1,39 +0,0 @@
1
- module Cucumber
2
- module Ast
3
- class Features
4
- attr_reader :steps, :scenarios
5
-
6
- def initialize(filter)
7
- @filter = filter
8
-
9
- @features = []
10
- @scenarios = []
11
- @steps = Hash.new{|steps, status| steps[status] = []}
12
- end
13
-
14
- def add_feature(feature)
15
- feature.features = self
16
- @features << feature
17
- end
18
-
19
- def visit?(node, lines)
20
- @filter.matched?(node) &&
21
- (lines.empty? ? true : node.at_lines?(lines))
22
- end
23
-
24
- def scenario_executed(scenario)
25
- @scenarios << scenario
26
- end
27
-
28
- def step_executed(step)
29
- @steps[step.status] << step
30
- end
31
-
32
- def accept(visitor)
33
- @features.each do |feature|
34
- visitor.visit_feature(feature) if visit?(feature, [])
35
- end
36
- end
37
- end
38
- end
39
- end
@@ -1,22 +0,0 @@
1
- module Cucumber
2
- module Ast
3
- class Filter
4
- def initialize(options)
5
- @options = options
6
- end
7
-
8
- def matched?(node)
9
- matched_by_tags?(node) &&
10
- matched_by_scenario_names?(node)
11
- end
12
-
13
- def matched_by_tags?(node)
14
- @options[:tags].empty? || node.tagged_with?(@options[:tags])
15
- end
16
-
17
- def matched_by_scenario_names?(node)
18
- @options[:scenario_names].empty? || node.matches_scenario_names?(@options[:scenario_names])
19
- end
20
- end
21
- end
22
- end
@@ -1,49 +0,0 @@
1
- module Cucumber
2
- module Ast
3
- class OutlineTable < Table
4
- def initialize(raw, scenario_outline)
5
- super(raw)
6
- @scenario_outline = scenario_outline
7
- @cells_class = ExampleCells
8
- end
9
-
10
- def accept(visitor, status)
11
- rows.each_with_index do |row, n|
12
- should_visit = n == 0 ||
13
- row.at_lines?(visitor.current_feature_lines) ||
14
- @scenario_outline.at_header_or_step_lines?(visitor.current_feature_lines)
15
-
16
- if should_visit
17
- visitor.visit_table_row(row, status)
18
- end
19
- end
20
- nil
21
- end
22
-
23
- def execute_row(cells, visitor, &proc)
24
- @scenario_outline.execute_row(cells, visitor, &proc)
25
- end
26
-
27
- class ExampleCells < Cells
28
- def accept(visitor, status)
29
- if header?
30
- @cells.each do |cell|
31
- visitor.visit_table_cell(cell, :thead)
32
- end
33
- nil
34
- else
35
- exception = @table.execute_row(self, visitor) do |cell, status|
36
- visitor.visit_table_cell(cell, status)
37
- end
38
- end
39
- end
40
-
41
- private
42
-
43
- def header?
44
- index == 0
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,52 +0,0 @@
1
- module Cucumber
2
- module Ast
3
- # Represents an inline argument in a step. Example:
4
- #
5
- # Given the message
6
- # """
7
- # I like
8
- # Cucumber sandwich
9
- # """
10
- #
11
- # The text between the pair of <tt>"""</tt> is stored inside a PyString,
12
- # which is yielded to the StepDefinition block as the last argument.
13
- #
14
- # The StepDefinition can then access the String via the #to_s method. In the
15
- # example above, that would return: <tt>"I like\nCucumber sandwich"</tt>
16
- #
17
- # Note how the indentation from the source is stripped away.
18
- #
19
- class PyString
20
- def initialize(start_line, end_line, string, quotes_indent)
21
- @start_line, @end_line = start_line, end_line
22
- @string, @quotes_indent = string, quotes_indent
23
- end
24
-
25
- def to_s
26
- @string.indent(-@quotes_indent)
27
- end
28
-
29
- def at_lines?(lines)
30
- lines.detect{|l| l >= @start_line && l <= @end_line}
31
- end
32
-
33
- def accept(visitor, status)
34
- visitor.visit_py_string(to_s, status)
35
- end
36
-
37
- def arguments_replaced(arguments) #:nodoc:
38
- string = @string
39
- arguments.each do |name, value|
40
- string = string.gsub(name, value)
41
- end
42
- PyString.new(@start_line, @end_line, string, @quotes_indent)
43
- end
44
-
45
- # For testing only
46
- def to_sexp #:nodoc:
47
- [:py_string, to_s]
48
- end
49
-
50
- end
51
- end
52
- end
@@ -1,95 +0,0 @@
1
- module Cucumber
2
- module Ast
3
- class Scenario
4
- attr_writer :feature
5
-
6
- def initialize(comment, tags, line, keyword, name, steps)
7
- @comment, @tags, @line, @keyword, @name = comment, tags, line, keyword, name
8
- steps.each {|step| step.scenario = self}
9
- @steps = steps
10
- end
11
-
12
- def status
13
- @steps.map{|step| step.status}
14
- end
15
-
16
- def tagged_with?(tag_names)
17
- @tags.among?(tag_names) || @feature.tagged_with?(tag_names, false)
18
- end
19
-
20
- def matches_scenario_names?(scenario_names)
21
- scenario_names.detect{|name| @name == name}
22
- end
23
-
24
- def accept(visitor)
25
- visitor.visit_comment(@comment)
26
- visitor.visit_tags(@tags)
27
- visitor.visit_scenario_name(@keyword, @name, file_line(@line), source_indent(text_length))
28
- visitor.world(self) do |world|
29
- previous = :passed
30
- @steps.each do |step|
31
- step.previous = previous
32
- step.world = world
33
- visitor.visit_step(step)
34
- previous = step.status
35
- end
36
- end
37
- @feature.scenario_executed(self) if @feature && !@executed
38
- @executed = true
39
- end
40
-
41
- def source_indent(text_length)
42
- max_line_length - text_length
43
- end
44
-
45
- def max_line_length
46
- lengths = (@steps + [self]).map{|e| e.text_length}
47
- lengths.max
48
- end
49
-
50
- def text_length
51
- @keyword.jlength + @name.jlength
52
- end
53
-
54
- def at_lines?(lines)
55
- at_header_or_step_lines?(lines)
56
- end
57
-
58
- def at_header_or_step_lines?(lines)
59
- lines.empty? || lines.index(@line) || @steps.detect {|step| step.at_lines?(lines)} || @tags.at_lines?(lines)
60
- end
61
-
62
- def undefined?
63
- @steps.empty?
64
- end
65
-
66
- def step_executed(step)
67
- @feature.step_executed(step) if @feature
68
- end
69
-
70
- def backtrace_line(name = "#{@keyword} #{@name}", line = @line)
71
- @feature.backtrace_line(name, line) if @feature
72
- end
73
-
74
- def file_line(line = @line)
75
- @feature.file_line(line) if @feature
76
- end
77
-
78
- def previous_step(step)
79
- i = @steps.index(step)
80
- @steps[i-1]
81
- end
82
-
83
- def to_sexp
84
- sexp = [:scenario, @line, @keyword, @name]
85
- comment = @comment.to_sexp
86
- sexp += [comment] if comment
87
- tags = @tags.to_sexp
88
- sexp += tags if tags.any?
89
- steps = @steps.map{|step| step.to_sexp}
90
- sexp += steps if steps.any?
91
- sexp
92
- end
93
- end
94
- end
95
- end