cucumber 1.2.1 → 1.2.2

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 (172) hide show
  1. data/.rvmrc +1 -1
  2. data/.travis.yml +3 -2
  3. data/DEVELOPERS.md +48 -0
  4. data/History.md +22 -3
  5. data/README.md +13 -31
  6. data/Rakefile +1 -0
  7. data/cucumber.gemspec +18 -17
  8. data/cucumber.yml +3 -2
  9. data/examples/i18n/cs/Rakefile +6 -0
  10. data/examples/i18n/cs/features/addition.feature +17 -0
  11. data/examples/i18n/cs/features/division.feature +11 -0
  12. data/examples/i18n/cs/features/step_definitons/calculator_steps.rb +24 -0
  13. data/examples/i18n/cs/lib/calculator.rb +14 -0
  14. data/examples/i18n/hi/Rakefile +6 -0
  15. data/examples/i18n/hi/features/addition.feature +16 -0
  16. data/examples/i18n/hi/features/division.feature +10 -0
  17. data/examples/i18n/hi/features/step_definitons/calculator_steps.rb +24 -0
  18. data/examples/i18n/hi/lib/calculator.rb +15 -0
  19. data/examples/python/README.textile +2 -1
  20. data/examples/ruby2python/README.textile +2 -1
  21. data/features/.cucumber/stepdefs.json +1688 -445
  22. data/features/assertions.feature +69 -0
  23. data/features/formatter_callbacks.feature +189 -0
  24. data/features/html_formatter.feature +19 -0
  25. data/features/json_formatter.feature +8 -4
  26. data/features/nested_steps_with_second_arg.feature +73 -0
  27. data/features/step_definitions.feature +65 -0
  28. data/features/step_definitions/cucumber_steps.rb +18 -3
  29. data/fixtures/self_test/features/support/env.rb +1 -1
  30. data/gem_tasks/cucumber.rake +5 -3
  31. data/gem_tasks/downloads.rb +3 -3
  32. data/gem_tasks/stats +4 -2
  33. data/gem_tasks/yard.rake +31 -13
  34. data/legacy_features/default_snippets.feature +3 -3
  35. data/legacy_features/language_help.feature +4 -0
  36. data/legacy_features/report_called_undefined_steps.feature +1 -1
  37. data/legacy_features/snippet.feature +3 -3
  38. data/legacy_features/snippets_when_using_star_keyword.feature +1 -1
  39. data/legacy_features/step_definitions/cucumber_steps.rb +4 -3
  40. data/legacy_features/support/env.rb +1 -1
  41. data/legacy_features/support/fake_wire_server.rb +9 -9
  42. data/lib/autotest/cucumber_mixin.rb +14 -14
  43. data/lib/autotest/discover.rb +2 -0
  44. data/lib/cucumber.rb +2 -2
  45. data/lib/cucumber/ast.rb +1 -1
  46. data/lib/cucumber/ast/background.rb +11 -7
  47. data/lib/cucumber/ast/comment.rb +2 -2
  48. data/lib/cucumber/ast/doc_string.rb +1 -1
  49. data/lib/cucumber/ast/examples.rb +1 -1
  50. data/lib/cucumber/ast/feature.rb +2 -2
  51. data/lib/cucumber/ast/feature_element.rb +1 -1
  52. data/lib/cucumber/ast/multiline_argument.rb +2 -2
  53. data/lib/cucumber/ast/names.rb +2 -2
  54. data/lib/cucumber/ast/outline_table.rb +4 -5
  55. data/lib/cucumber/ast/scenario.rb +14 -14
  56. data/lib/cucumber/ast/scenario_outline.rb +4 -4
  57. data/lib/cucumber/ast/step.rb +3 -3
  58. data/lib/cucumber/ast/step_collection.rb +5 -5
  59. data/lib/cucumber/ast/step_invocation.rb +8 -8
  60. data/lib/cucumber/ast/table.rb +40 -27
  61. data/lib/cucumber/ast/tree_walker.rb +9 -8
  62. data/lib/cucumber/ast/visitor.rb +1 -1
  63. data/lib/cucumber/cli/configuration.rb +10 -10
  64. data/lib/cucumber/cli/drb_client.rb +1 -1
  65. data/lib/cucumber/cli/main.rb +3 -3
  66. data/lib/cucumber/cli/options.rb +3 -2
  67. data/lib/cucumber/cli/profile_loader.rb +1 -1
  68. data/lib/cucumber/configuration.rb +12 -12
  69. data/lib/cucumber/constantize.rb +11 -2
  70. data/lib/cucumber/core_ext/disable_mini_and_test_unit_autorun.rb +1 -1
  71. data/lib/cucumber/core_ext/instance_exec.rb +4 -4
  72. data/lib/cucumber/core_ext/proc.rb +3 -3
  73. data/lib/cucumber/errors.rb +1 -1
  74. data/lib/cucumber/feature_file.rb +1 -1
  75. data/lib/cucumber/formatter/ansicolor.rb +36 -23
  76. data/lib/cucumber/formatter/console.rb +45 -25
  77. data/lib/cucumber/formatter/debug.rb +7 -7
  78. data/lib/cucumber/formatter/duration.rb +1 -1
  79. data/lib/cucumber/formatter/gherkin_formatter_adapter.rb +7 -0
  80. data/lib/cucumber/formatter/gpretty.rb +1 -1
  81. data/lib/cucumber/formatter/html.rb +52 -53
  82. data/lib/cucumber/formatter/interceptor.rb +2 -2
  83. data/lib/cucumber/formatter/json.rb +1 -1
  84. data/lib/cucumber/formatter/json_pretty.rb +2 -1
  85. data/lib/cucumber/formatter/junit.rb +1 -1
  86. data/lib/cucumber/formatter/ordered_xml_markup.rb +1 -1
  87. data/lib/cucumber/formatter/pretty.rb +12 -12
  88. data/lib/cucumber/formatter/progress.rb +5 -5
  89. data/lib/cucumber/formatter/rerun.rb +5 -5
  90. data/lib/cucumber/formatter/stepdefs.rb +1 -1
  91. data/lib/cucumber/formatter/steps.rb +6 -6
  92. data/lib/cucumber/formatter/summary.rb +6 -6
  93. data/lib/cucumber/formatter/unicode.rb +18 -18
  94. data/lib/cucumber/formatter/usage.rb +7 -7
  95. data/lib/cucumber/js_support/js_dsl.js +1 -1
  96. data/lib/cucumber/language_support.rb +1 -1
  97. data/lib/cucumber/parser/gherkin_builder.rb +33 -33
  98. data/lib/cucumber/platform.rb +3 -2
  99. data/lib/cucumber/py_support/py_dsl.py +2 -2
  100. data/lib/cucumber/py_support/py_language.py +2 -2
  101. data/lib/cucumber/py_support/py_language.rb +2 -2
  102. data/lib/cucumber/rake/task.rb +4 -3
  103. data/lib/cucumber/rb_support/rb_dsl.rb +10 -10
  104. data/lib/cucumber/rb_support/rb_language.rb +27 -19
  105. data/lib/cucumber/rb_support/rb_step_definition.rb +39 -11
  106. data/lib/cucumber/rb_support/rb_transform.rb +3 -3
  107. data/lib/cucumber/rb_support/rb_world.rb +15 -15
  108. data/lib/cucumber/rb_support/regexp_argument_matcher.rb +1 -1
  109. data/lib/cucumber/rspec/disable_option_parser.rb +1 -1
  110. data/lib/cucumber/rspec/doubles.rb +1 -1
  111. data/lib/cucumber/runtime.rb +11 -10
  112. data/lib/cucumber/runtime/features_loader.rb +6 -6
  113. data/lib/cucumber/runtime/for_programming_languages.rb +8 -15
  114. data/lib/cucumber/runtime/results.rb +6 -6
  115. data/lib/cucumber/runtime/support_code.rb +37 -28
  116. data/lib/cucumber/runtime/user_interface.rb +4 -4
  117. data/lib/cucumber/step_definition_light.rb +4 -4
  118. data/lib/cucumber/step_definitions.rb +2 -3
  119. data/lib/cucumber/step_match.rb +6 -6
  120. data/lib/cucumber/step_mother.rb +1 -1
  121. data/lib/cucumber/term/ansicolor.rb +22 -22
  122. data/lib/cucumber/wire_support/configuration.rb +11 -14
  123. data/lib/cucumber/wire_support/connection.rb +10 -9
  124. data/lib/cucumber/wire_support/request_handler.rb +3 -3
  125. data/lib/cucumber/wire_support/wire_exception.rb +3 -3
  126. data/lib/cucumber/wire_support/wire_language.rb +11 -11
  127. data/lib/cucumber/wire_support/wire_packet.rb +7 -5
  128. data/lib/cucumber/wire_support/wire_protocol.rb +6 -6
  129. data/lib/cucumber/wire_support/wire_protocol/requests.rb +20 -20
  130. data/lib/cucumber/wire_support/wire_step_definition.rb +4 -4
  131. data/spec/cucumber/ast/background_spec.rb +4 -4
  132. data/spec/cucumber/ast/doc_string_spec.rb +8 -8
  133. data/spec/cucumber/ast/feature_factory.rb +4 -4
  134. data/spec/cucumber/ast/feature_spec.rb +18 -18
  135. data/spec/cucumber/ast/outline_table_spec.rb +3 -3
  136. data/spec/cucumber/ast/step_spec.rb +4 -4
  137. data/spec/cucumber/ast/table_spec.rb +50 -29
  138. data/spec/cucumber/ast/tree_walker_spec.rb +12 -4
  139. data/spec/cucumber/broadcaster_spec.rb +1 -1
  140. data/spec/cucumber/cli/configuration_spec.rb +10 -4
  141. data/spec/cucumber/cli/drb_client_spec.rb +1 -1
  142. data/spec/cucumber/cli/main_spec.rb +28 -7
  143. data/spec/cucumber/cli/options_spec.rb +3 -3
  144. data/spec/cucumber/configuration_spec.rb +4 -4
  145. data/spec/cucumber/constantize_spec.rb +2 -0
  146. data/spec/cucumber/core_ext/proc_spec.rb +7 -7
  147. data/spec/cucumber/formatter/ansicolor_spec.rb +2 -2
  148. data/spec/cucumber/formatter/duration_spec.rb +2 -2
  149. data/spec/cucumber/formatter/html_spec.rb +31 -31
  150. data/spec/cucumber/formatter/interceptor_spec.rb +10 -0
  151. data/spec/cucumber/formatter/progress_spec.rb +1 -1
  152. data/spec/cucumber/formatter/spec_helper.rb +7 -7
  153. data/spec/cucumber/rake/forked_spec.rb +15 -2
  154. data/spec/cucumber/rake/rcov_spec.rb +2 -2
  155. data/spec/cucumber/rb_support/rb_language_spec.rb +34 -17
  156. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +45 -35
  157. data/spec/cucumber/rb_support/rb_transform_spec.rb +3 -3
  158. data/spec/cucumber/runtime/for_programming_languages_spec.rb +31 -0
  159. data/spec/cucumber/runtime/results_spec.rb +5 -5
  160. data/spec/cucumber/runtime/support_code_spec.rb +13 -2
  161. data/spec/cucumber/runtime_spec.rb +7 -7
  162. data/spec/cucumber/step_match_spec.rb +2 -2
  163. data/spec/cucumber/wire_support/configuration_spec.rb +16 -6
  164. data/spec/cucumber/wire_support/connection_spec.rb +25 -11
  165. data/spec/cucumber/wire_support/wire_exception_spec.rb +3 -3
  166. data/spec/cucumber/wire_support/wire_language_spec.rb +3 -3
  167. data/spec/cucumber/wire_support/wire_packet_spec.rb +4 -4
  168. data/spec/cucumber/wire_support/wire_step_definition_spec.rb +1 -1
  169. data/spec/spec_helper.rb +2 -2
  170. metadata +98 -128
  171. data/legacy_features/html_formatter.feature +0 -8
  172. data/legacy_features/html_formatter/a.html +0 -561
@@ -1,4 +1,3 @@
1
- require 'json'
2
1
  module Cucumber
3
2
  class StepDefinitions
4
3
  def initialize(configuration = Configuration.default)
@@ -6,9 +5,9 @@ module Cucumber
6
5
  @support_code = Runtime::SupportCode.new(nil, false)
7
6
  @support_code.load_files_from_paths(configuration.autoload_code_paths)
8
7
  end
9
-
8
+
10
9
  def to_json
11
10
  @support_code.step_definitions.map{|stepdef| stepdef.to_hash}.to_json
12
11
  end
13
12
  end
14
- end
13
+ end
@@ -2,9 +2,9 @@ module Cucumber
2
2
  class StepMatch #:nodoc:
3
3
  attr_reader :step_definition, :step_arguments
4
4
 
5
- # Creates a new StepMatch. The +name_to_report+ argument is what's reported, unless it's is,
6
- # in which case +name_to_report+ is used instead.
7
- #
5
+ # Creates a new StepMatch. The +name_to_report+ argument is what's
6
+ # reported, unless it's is, in which case +name_to_report+ is used instead.
7
+ #
8
8
  def initialize(step_definition, name_to_match, name_to_report, step_arguments)
9
9
  raise "name_to_match can't be nil" if name_to_match.nil?
10
10
  raise "step_arguments can't be nil (but it can be an empty array)" if step_arguments.nil?
@@ -61,7 +61,7 @@ module Cucumber
61
61
  offset = past_offset = 0
62
62
  step_arguments.each do |step_argument|
63
63
  next if step_argument.offset.nil? || step_argument.offset < past_offset
64
-
64
+
65
65
  replacement = if block_given?
66
66
  proc.call(step_argument.val)
67
67
  elsif Proc === format
@@ -81,7 +81,7 @@ module Cucumber
81
81
  sprintf("#<%s:0x%x>", self.class, self.object_id)
82
82
  end
83
83
  end
84
-
84
+
85
85
  class NoStepMatch #:nodoc:
86
86
  attr_reader :step_definition, :name
87
87
 
@@ -89,7 +89,7 @@ module Cucumber
89
89
  @step = step
90
90
  @name = name
91
91
  end
92
-
92
+
93
93
  def format_args(format)
94
94
  @name
95
95
  end
@@ -7,4 +7,4 @@ module Cucumber
7
7
  super
8
8
  end
9
9
  end
10
- end
10
+ end
@@ -5,34 +5,34 @@ module Cucumber
5
5
  module ANSIColor
6
6
  # :stopdoc:
7
7
  ATTRIBUTES = [
8
- [ :clear , 0 ],
8
+ [ :clear , 0 ],
9
9
  [ :reset , 0 ], # synonym for :clear
10
- [ :bold , 1 ],
11
- [ :dark , 2 ],
10
+ [ :bold , 1 ],
11
+ [ :dark , 2 ],
12
12
  [ :italic , 3 ], # not widely implemented
13
- [ :underline , 4 ],
13
+ [ :underline , 4 ],
14
14
  [ :underscore , 4 ], # synonym for :underline
15
- [ :blink , 5 ],
15
+ [ :blink , 5 ],
16
16
  [ :rapid_blink , 6 ], # not widely implemented
17
17
  [ :negative , 7 ], # no reverse because of String#reverse
18
- [ :concealed , 8 ],
18
+ [ :concealed , 8 ],
19
19
  [ :strikethrough, 9 ], # not widely implemented
20
- [ :black , 30 ],
21
- [ :red , 31 ],
22
- [ :green , 32 ],
23
- [ :yellow , 33 ],
24
- [ :blue , 34 ],
25
- [ :magenta , 35 ],
26
- [ :cyan , 36 ],
27
- [ :white , 37 ],
28
- [ :on_black , 40 ],
29
- [ :on_red , 41 ],
30
- [ :on_green , 42 ],
31
- [ :on_yellow , 43 ],
32
- [ :on_blue , 44 ],
33
- [ :on_magenta , 45 ],
34
- [ :on_cyan , 46 ],
35
- [ :on_white , 47 ],
20
+ [ :black , 30 ],
21
+ [ :red , 31 ],
22
+ [ :green , 32 ],
23
+ [ :yellow , 33 ],
24
+ [ :blue , 34 ],
25
+ [ :magenta , 35 ],
26
+ [ :cyan , 36 ],
27
+ [ :white , 37 ],
28
+ [ :on_black , 40 ],
29
+ [ :on_red , 41 ],
30
+ [ :on_green , 42 ],
31
+ [ :on_yellow , 43 ],
32
+ [ :on_blue , 44 ],
33
+ [ :on_magenta , 45 ],
34
+ [ :on_cyan , 46 ],
35
+ [ :on_white , 47 ],
36
36
  ]
37
37
 
38
38
  ATTRIBUTE_NAMES = ATTRIBUTES.transpose.first
@@ -5,27 +5,24 @@ module Cucumber
5
5
  module WireSupport
6
6
  class Configuration
7
7
  attr_reader :host, :port
8
-
8
+
9
9
  def initialize(wire_file)
10
10
  params = YAML.load(ERB.new(File.read(wire_file)).result)
11
11
  @host = params['host']
12
12
  @port = params['port']
13
- @timeouts = default_timeouts.merge(params['timeout'] || {})
13
+ @timeouts = DEFAULT_TIMEOUTS.merge(params['timeout'] || {})
14
14
  end
15
-
15
+
16
16
  def timeout(message = nil)
17
17
  return @timeouts[message.to_s] || 3
18
18
  end
19
-
20
- private
21
-
22
- def default_timeouts
23
- {
24
- 'invoke' => 120,
25
- 'begin_scenario' => 120,
26
- 'end_scenario' => 120
27
- }
28
- end
19
+
20
+ DEFAULT_TIMEOUTS = {
21
+ 'connect' => 11,
22
+ 'invoke' => 120,
23
+ 'begin_scenario' => 120,
24
+ 'end_scenario' => 120
25
+ }
29
26
  end
30
27
  end
31
- end
28
+ end
@@ -5,13 +5,13 @@ module Cucumber
5
5
  module WireSupport
6
6
  class Connection
7
7
  class ConnectionError < StandardError; end
8
-
8
+
9
9
  include WireProtocol
10
-
10
+
11
11
  def initialize(config)
12
12
  @config = config
13
13
  end
14
-
14
+
15
15
  def call_remote(request_handler, message, params)
16
16
  packet = WirePacket.new(message, params)
17
17
 
@@ -24,27 +24,28 @@ module Cucumber
24
24
  raise Timeout::Error, "Timed out calling wire server with message '#{message}'", backtrace
25
25
  end
26
26
  end
27
-
27
+
28
28
  def exception(params)
29
29
  WireException.new(params, @config.host, @config.port)
30
30
  end
31
31
 
32
32
  private
33
-
33
+
34
34
  def send_data_to_socket(data)
35
- Timeout.timeout(@config.timeout) { socket.puts(data) }
35
+ Timeout.timeout(@config.timeout('connect')) { socket.puts(data) }
36
36
  end
37
37
 
38
38
  def fetch_data_from_socket(timeout)
39
- raw_response =
39
+ raw_response =
40
40
  if timeout == :never
41
41
  socket.gets
42
42
  else
43
43
  Timeout.timeout(timeout) { socket.gets }
44
44
  end
45
+ raise exception({'message' => "Remote Socket with #{@config.host}:#{@config.port} closed."}) if raw_response.nil?
45
46
  WirePacket.parse(raw_response)
46
47
  end
47
-
48
+
48
49
  def socket
49
50
  @socket ||= TCPSocket.new(@config.host, @config.port)
50
51
  rescue Errno::ECONNREFUSED => exception
@@ -52,4 +53,4 @@ module Cucumber
52
53
  end
53
54
  end
54
55
  end
55
- end
56
+ end
@@ -13,12 +13,12 @@ module Cucumber
13
13
  def handle_fail(params)
14
14
  raise @connection.exception(params)
15
15
  end
16
-
16
+
17
17
  def handle_success(params)
18
18
  end
19
-
19
+
20
20
  private
21
-
21
+
22
22
  # Props to Rails
23
23
  def underscore(camel_cased_word)
24
24
  camel_cased_word.to_s.gsub(/::/, '/').
@@ -8,7 +8,7 @@ module Cucumber
8
8
  @exception_name
9
9
  end
10
10
  end
11
-
11
+
12
12
  def initialize(args, host, port)
13
13
  super args['message']
14
14
  if args['exception']
@@ -23,10 +23,10 @@ module Cucumber
23
23
  end
24
24
  end
25
25
  end
26
-
26
+
27
27
  def backtrace
28
28
  @backtrace || super
29
29
  end
30
30
  end
31
31
  end
32
- end
32
+ end
@@ -1,5 +1,5 @@
1
+ require 'multi_json'
1
2
  require 'socket'
2
- require 'json'
3
3
  require 'cucumber/wire_support/connection'
4
4
  require 'cucumber/wire_support/configuration'
5
5
  require 'cucumber/wire_support/wire_packet'
@@ -8,16 +8,16 @@ require 'cucumber/wire_support/wire_step_definition'
8
8
 
9
9
  module Cucumber
10
10
  module WireSupport
11
-
12
- # The wire-protocol (lanugage independent) implementation of the programming
11
+
12
+ # The wire-protocol (lanugage independent) implementation of the programming
13
13
  # language API.
14
14
  class WireLanguage
15
15
  include LanguageSupport::LanguageMethods
16
16
 
17
- def initialize(step_mother)
17
+ def initialize(runtime)
18
18
  @connections = []
19
19
  end
20
-
20
+
21
21
  def alias_adverbs(adverbs)
22
22
  end
23
23
 
@@ -25,25 +25,25 @@ module Cucumber
25
25
  config = Configuration.new(wire_file)
26
26
  @connections << Connection.new(config)
27
27
  end
28
-
28
+
29
29
  def snippet_text(code_keyword, step_name, multiline_arg_class)
30
- snippets = @connections.map do |remote|
30
+ snippets = @connections.map do |remote|
31
31
  remote.snippet_text(code_keyword, step_name, multiline_arg_class.to_s)
32
32
  end
33
33
  snippets.flatten.join("\n")
34
34
  end
35
-
35
+
36
36
  def step_matches(step_name, formatted_step_name)
37
37
  @connections.map{ |c| c.step_matches(step_name, formatted_step_name)}.flatten
38
38
  end
39
-
39
+
40
40
  protected
41
-
41
+
42
42
  def begin_scenario(scenario)
43
43
  @connections.each { |c| c.begin_scenario(scenario) }
44
44
  @current_scenario = scenario
45
45
  end
46
-
46
+
47
47
  def end_scenario
48
48
  scenario = @current_scenario
49
49
  @connections.each { |c| c.end_scenario(scenario) }
@@ -1,3 +1,5 @@
1
+ require 'multi_json'
2
+
1
3
  module Cucumber
2
4
  module WireSupport
3
5
  # Represents the packet of data sent over the wire as JSON data, containing
@@ -5,25 +7,25 @@ module Cucumber
5
7
  class WirePacket
6
8
  class << self
7
9
  def parse(raw)
8
- attributes = JSON.parse(raw.strip)
10
+ attributes = MultiJson.load(raw.strip)
9
11
  message = attributes[0]
10
12
  params = attributes[1]
11
13
  new(message, params)
12
14
  end
13
15
  end
14
-
16
+
15
17
  attr_reader :message, :params
16
-
18
+
17
19
  def initialize(message, params = nil)
18
20
  @message, @params = message, params
19
21
  end
20
-
22
+
21
23
  def to_json
22
24
  packet = [@message]
23
25
  packet << @params if @params
24
26
  packet.to_json
25
27
  end
26
-
28
+
27
29
  def handle_with(handler)
28
30
  handler.send("handle_#{@message}", @params)
29
31
  end
@@ -12,22 +12,22 @@ module Cucumber
12
12
  handler = Requests::SnippetText.new(self)
13
13
  handler.execute(step_keyword, step_name, multiline_arg_class_name)
14
14
  end
15
-
15
+
16
16
  def invoke(step_definition_id, args)
17
17
  handler = Requests::Invoke.new(self)
18
18
  handler.execute(step_definition_id, args)
19
19
  end
20
-
20
+
21
21
  def diff_failed
22
22
  handler = Requests::DiffFailed.new(self)
23
23
  handler.execute
24
24
  end
25
-
25
+
26
26
  def diff_ok
27
27
  handler = Requests::DiffOk.new(self)
28
28
  handler.execute
29
29
  end
30
-
30
+
31
31
  def begin_scenario(scenario)
32
32
  handler = Requests::BeginScenario.new(self)
33
33
  handler.execute(scenario)
@@ -37,7 +37,7 @@ module Cucumber
37
37
  handler = Requests::EndScenario.new(self)
38
38
  handler.execute(scenario)
39
39
  end
40
-
40
+
41
41
  end
42
42
  end
43
- end
43
+ end
@@ -19,11 +19,11 @@ module Cucumber
19
19
  create_step_match(raw_step_match)
20
20
  end
21
21
  end
22
-
22
+
23
23
  alias :handle_step_matches :handle_success
24
-
24
+
25
25
  private
26
-
26
+
27
27
  def create_step_match(raw_step_match)
28
28
  step_definition = WireStepDefinition.new(@connection, raw_step_match)
29
29
  step_args = raw_step_match['args'].map do |raw_arg|
@@ -31,7 +31,7 @@ module Cucumber
31
31
  end
32
32
  step_match(step_definition, step_args)
33
33
  end
34
-
34
+
35
35
  def step_match(step_definition, step_args)
36
36
  StepMatch.new(step_definition, @name_to_match, @name_to_report, step_args)
37
37
  end
@@ -39,25 +39,25 @@ module Cucumber
39
39
 
40
40
  class SnippetText < RequestHandler
41
41
  def execute(step_keyword, step_name, multiline_arg_class_name)
42
- request_params = {
43
- :step_keyword => step_keyword,
44
- :step_name => step_name,
45
- :multiline_arg_class => multiline_arg_class_name
42
+ request_params = {
43
+ :step_keyword => step_keyword,
44
+ :step_name => step_name,
45
+ :multiline_arg_class => multiline_arg_class_name
46
46
  }
47
47
  super(request_params)
48
48
  end
49
-
49
+
50
50
  def handle_success(snippet_text)
51
51
  snippet_text
52
52
  end
53
-
53
+
54
54
  alias :handle_snippet_text :handle_success
55
55
  end
56
56
 
57
57
  class Invoke < RequestHandler
58
58
  def execute(step_definition_id, args)
59
- request_params = {
60
- :id => step_definition_id,
59
+ request_params = {
60
+ :id => step_definition_id,
61
61
  :args => args
62
62
  }
63
63
  super(request_params)
@@ -66,13 +66,13 @@ module Cucumber
66
66
  def handle_pending(message)
67
67
  raise Pending, message || "TODO"
68
68
  end
69
-
69
+
70
70
  def handle_diff!(tables)
71
71
  table1 = Ast::Table.new(tables[0])
72
72
  table2 = Ast::Table.new(tables[1])
73
73
  table1.diff!(table2)
74
74
  end
75
-
75
+
76
76
  def handle_diff(tables)
77
77
  begin
78
78
  handle_diff!(tables)
@@ -81,29 +81,29 @@ module Cucumber
81
81
  end
82
82
  @connection.diff_ok
83
83
  end
84
-
84
+
85
85
  alias :handle_step_failed :handle_fail
86
86
  end
87
87
 
88
88
  class DiffFailed < RequestHandler
89
89
  alias :handle_step_failed :handle_fail
90
90
  end
91
-
91
+
92
92
  class DiffOk < RequestHandler
93
93
  alias :handle_step_failed :handle_fail
94
94
  end
95
-
95
+
96
96
  module Tags
97
97
  def clean_tag_names(scenario)
98
98
  scenario.source_tags.map { |tag| tag.name.gsub(/^@/, '') }.sort
99
99
  end
100
-
100
+
101
101
  def request_params(scenario)
102
102
  return nil unless scenario.source_tags.any?
103
103
  { "tags" => clean_tag_names(scenario) }
104
104
  end
105
105
  end
106
-
106
+
107
107
  class BeginScenario < RequestHandler
108
108
  include Tags
109
109
 
@@ -122,4 +122,4 @@ module Cucumber
122
122
  end
123
123
  end
124
124
  end
125
- end
125
+ end