cucumber 0.6.3 → 0.6.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 (54) hide show
  1. data/History.txt +25 -4
  2. data/VERSION.yml +1 -1
  3. data/cucumber.gemspec +33 -29
  4. data/examples/i18n/{cat → ca}/Rakefile +0 -0
  5. data/examples/i18n/{cat → ca}/features/step_definitons/calculator_steps.rb +0 -0
  6. data/examples/i18n/{cat → ca}/features/suma.feature +1 -1
  7. data/examples/i18n/{cat → ca}/lib/calculadora.rb +0 -0
  8. data/examples/i18n/{se → sr-Cyrl}/Rakefile +0 -0
  9. data/examples/i18n/{sr → sr-Cyrl}/features/sabiranje.feature +1 -1
  10. data/examples/i18n/{sr → sr-Cyrl}/features/step_definitons/calculator_steps.rb +0 -0
  11. data/examples/i18n/{sr → sr-Cyrl}/features/support/env.rb +0 -0
  12. data/examples/i18n/{sr-latn → sr-Cyrl}/lib/calculator.rb +0 -0
  13. data/examples/i18n/{sr-latn → sr-Latn}/Rakefile +0 -0
  14. data/examples/i18n/{sr-latn → sr-Latn}/features/sabiranje.feature +0 -0
  15. data/examples/i18n/{sr-latn → sr-Latn}/features/step_definitons/calculator_steps.rb +0 -0
  16. data/examples/i18n/{sr → sr-Latn}/lib/calculator.rb +0 -0
  17. data/examples/i18n/{sr → sv}/Rakefile +0 -0
  18. data/examples/i18n/{se → sv}/features/step_definitons/kalkulator_steps.rb +0 -0
  19. data/examples/i18n/{se → sv}/features/summering.feature +1 -1
  20. data/examples/i18n/{se → sv}/lib/kalkulator.rb +0 -0
  21. data/features/announce.feature +27 -5
  22. data/features/bug_585_tab_indentation.feature +22 -0
  23. data/features/exception_in_after_block.feature +25 -0
  24. data/features/exception_in_before_block.feature +21 -0
  25. data/features/language_help.feature +6 -6
  26. data/features/snippets_when_using_star_keyword.feature +36 -0
  27. data/features/wire_protocol_tags.feature +50 -10
  28. data/gem_tasks/contributors.rake +4 -2
  29. data/lib/autotest/cucumber_rails_rspec2.rb +6 -0
  30. data/lib/autotest/cucumber_rspec2.rb +6 -0
  31. data/lib/cucumber/ast/outline_table.rb +8 -0
  32. data/lib/cucumber/ast/py_string.rb +5 -1
  33. data/lib/cucumber/ast/step_invocation.rb +2 -2
  34. data/lib/cucumber/cli/options.rb +1 -0
  35. data/lib/cucumber/cli/profile_loader.rb +8 -2
  36. data/lib/cucumber/formatter/pdf.rb +9 -2
  37. data/lib/cucumber/formatter/progress.rb +24 -2
  38. data/lib/cucumber/formatter/unicode.rb +11 -11
  39. data/lib/cucumber/languages.yml +14 -13
  40. data/lib/cucumber/parser/feature.rb +0 -257
  41. data/lib/cucumber/parser/feature.tt +0 -32
  42. data/lib/cucumber/parser/i18n.tt +2 -1
  43. data/lib/cucumber/parser/natural_language.rb +7 -4
  44. data/lib/cucumber/parser/py_string.rb +2 -2
  45. data/lib/cucumber/parser/py_string.tt +2 -2
  46. data/lib/cucumber/rb_support/rb_world.rb +9 -0
  47. data/lib/cucumber/step_mother.rb +3 -3
  48. data/spec/cucumber/ast/feature_factory.rb +1 -1
  49. data/spec/cucumber/ast/py_string_spec.rb +4 -4
  50. data/spec/cucumber/ast/step_spec.rb +1 -1
  51. data/spec/cucumber/cli/configuration_spec.rb +7 -0
  52. data/spec/cucumber/cli/profile_loader_spec.rb +29 -4
  53. data/spec/cucumber/step_mother_spec.rb +13 -3
  54. metadata +34 -30
@@ -278,38 +278,6 @@ module Cucumber
278
278
  (step_keyword) / scenario_keyword / scenario_outline_keyword / table / tag / comment_line
279
279
  end
280
280
 
281
- rule py_string
282
- open_py_string s:(!close_py_string .)* close_py_string {
283
- def at_line?(line)
284
- line >= open_py_string.line && line <= close_py_string.line
285
- end
286
-
287
- def build
288
- Ast::PyString.new(open_py_string.line, close_py_string.line, s.text_value, open_py_string.indentation)
289
- end
290
- }
291
- end
292
-
293
- rule open_py_string
294
- indent:space* '"""' space* eol {
295
- def indentation
296
- indent.text_value.length
297
- end
298
-
299
- def line
300
- indent.line
301
- end
302
- }
303
- end
304
-
305
- rule close_py_string
306
- eol space* quotes:'"""' white {
307
- def line
308
- quotes.line
309
- end
310
- }
311
- end
312
-
313
281
  rule white
314
282
  (space / eol)*
315
283
  end
@@ -1,9 +1,10 @@
1
1
  module Cucumber
2
2
  module Parser
3
3
  module I18n
4
- grammar <%= keywords('grammar_name')[0] %>
4
+ grammar <%= @grammar_name %>
5
5
  include Feature
6
6
  include Table
7
+ include PyString
7
8
 
8
9
  rule feature
9
10
  feature_sub
@@ -23,7 +23,7 @@ module Cucumber
23
23
  def initialize(step_mother, lang)
24
24
  @keywords = Cucumber::LANGUAGES[lang]
25
25
  raise "Language not supported: #{lang.inspect}" if @keywords.nil?
26
- @keywords['grammar_name'] = @keywords['name'].gsub(/\s/, '')
26
+ @grammar_name = lang.gsub(/[\s-]/, '').upcase
27
27
  register_adverbs(step_mother) if step_mother
28
28
  @parser = nil
29
29
  end
@@ -45,9 +45,8 @@ module Cucumber
45
45
  # effectively breaking any other library that relies on ERB behavig the way it _should_.
46
46
  # This is a workaround hack until this has been fixed in Rails.
47
47
  grammar = "" + grammar # Make SafeBuffer a String again.
48
-
49
48
  Treetop.load_from_string(grammar)
50
- @parser = Parser::I18n.const_get("#{@keywords['grammar_name']}Parser").new
49
+ @parser = Parser::I18n.const_get("#{@grammar_name}Parser").new
51
50
  def @parser.inspect
52
51
  "#<#{self.class.name}>"
53
52
  end
@@ -92,13 +91,17 @@ module Cucumber
92
91
  keywords('and', space)
93
92
  end
94
93
 
94
+ def given_keyword
95
+ keywords('given', false)[1] # The 0th one is a '*', which we don't want
96
+ end
97
+
95
98
  def step_keywords
96
99
  %w{given when then and but}.map{|key| keywords(key, true)}.flatten.uniq
97
100
  end
98
101
 
99
102
  def keywords(key, space=false)
100
103
  raise "No #{key} in #{@keywords.inspect}" if @keywords[key].nil?
101
- @keywords[key].split('|').map{|kw| space ? keyword_space(kw) : kw}
104
+ @keywords[key].split('|').map{|kw| space ? keyword_space(kw) : kw}.uniq
102
105
  end
103
106
 
104
107
  private
@@ -40,7 +40,7 @@ module Cucumber
40
40
  line >= open_py_string.line && line <= close_py_string.line
41
41
  end
42
42
 
43
- def build(filter=nil)
43
+ def build(ignored_filter=nil)
44
44
  Ast::PyString.new(open_py_string.line, close_py_string.line, s.text_value, open_py_string.indentation)
45
45
  end
46
46
  end
@@ -128,7 +128,7 @@ module Cucumber
128
128
 
129
129
  module OpenPyString1
130
130
  def indentation
131
- indent.text_value.length
131
+ indent.text_value
132
132
  end
133
133
 
134
134
  def line
@@ -15,7 +15,7 @@ module Cucumber
15
15
  line >= open_py_string.line && line <= close_py_string.line
16
16
  end
17
17
 
18
- def build(filter=nil)
18
+ def build(ignored_filter=nil)
19
19
  Ast::PyString.new(open_py_string.line, close_py_string.line, s.text_value, open_py_string.indentation)
20
20
  end
21
21
  }
@@ -24,7 +24,7 @@ module Cucumber
24
24
  rule open_py_string
25
25
  indent:space* '"""' space* eol {
26
26
  def indentation
27
- indent.text_value.length
27
+ indent.text_value
28
28
  end
29
29
 
30
30
  def line
@@ -52,6 +52,15 @@ module Cucumber
52
52
  @__cucumber_step_mother.embed(file, mime_type)
53
53
  end
54
54
 
55
+ # Prints out the world class, followed by all included modules.
56
+ def announce_world
57
+ announce "WORLD:\n #{self.class}"
58
+ world = self
59
+ (class << self; self; end).instance_eval do
60
+ world.announce " #{included_modules.join("\n ")}"
61
+ end
62
+ end
63
+
55
64
  # Mark the matched step as pending.
56
65
  def pending(message = "TODO")
57
66
  if block_given?
@@ -133,7 +133,7 @@ module Cucumber
133
133
  # nicer, and in all outputs (in case you use several formatters)
134
134
  #
135
135
  def announce(msg)
136
- @visitor.announce(msg)
136
+ @visitor.announce(msg.to_s)
137
137
  end
138
138
 
139
139
  # Suspends execution and prompts +question+ to the console (STDOUT).
@@ -278,8 +278,8 @@ module Cucumber
278
278
  longest_regexp_length = no_groups.map {|step_match| step_match.text_length }.max
279
279
  no_groups.select {|step_match| step_match.text_length == longest_regexp_length }
280
280
  elsif top_groups.any?
281
- shortest_capture_length = top_groups.map {|step_match| step_match.args.inject(0) {|sum, c| sum + c.length } }.min
282
- top_groups.select {|step_match| step_match.args.inject(0) {|sum, c| sum + c.length } == shortest_capture_length }
281
+ shortest_capture_length = top_groups.map {|step_match| step_match.args.inject(0) {|sum, c| sum + c.to_s.length } }.min
282
+ top_groups.select {|step_match| step_match.args.inject(0) {|sum, c| sum + c.to_s.length } == shortest_capture_length }
283
283
  else
284
284
  top_groups
285
285
  end
@@ -27,7 +27,7 @@ module Cucumber
27
27
  py_string = Ast::PyString.new(21, 22, %{
28
28
  I like
29
29
  Cucumber sandwich
30
- }, 10)
30
+ }, ' '*10)
31
31
 
32
32
  background = Ast::Background.new(Ast::Comment.new(""), 2, "Background:", "",
33
33
  [
@@ -5,20 +5,20 @@ module Cucumber
5
5
  module Ast
6
6
  describe PyString do
7
7
  it "should handle unindented" do
8
- ps = PyString.new(10, 13, "4.1\n4.2\n", 0)
8
+ ps = PyString.new(10, 13, "4.1\n4.2\n", "")
9
9
  ps.to_s.should == "4.1\n4.2\n"
10
10
  end
11
11
 
12
12
  it "should handle indented" do
13
13
  # """
14
- ps = PyString.new(10, 13, " 4.1\n 4.2\n", 2)
14
+ ps = PyString.new(10, 13, " 4.1\n 4.2\n", " ")
15
15
  ps.to_s.should == " 4.1\n 4.2\n"
16
16
  end
17
17
 
18
18
  describe "replacing arguments" do
19
19
 
20
20
  before(:each) do
21
- @ps = PyString.new(10, 13, "<book>\n<qty>\n", 0)
21
+ @ps = PyString.new(10, 13, "<book>\n<qty>\n", "")
22
22
  end
23
23
 
24
24
  it "should return a new py_string with arguments replaced with values" do
@@ -34,7 +34,7 @@ module Cucumber
34
34
  end
35
35
 
36
36
  it "should replaced nil with empty string" do
37
- ps = PyString.new(10, 13, "'<book>'", 0)
37
+ ps = PyString.new(10, 13, "'<book>'", "")
38
38
  py_string_with_replaced_arg = ps.arguments_replaced({'<book>' => nil})
39
39
 
40
40
  py_string_with_replaced_arg.to_s.should == "''"
@@ -48,7 +48,7 @@ module Cucumber
48
48
  end
49
49
 
50
50
  it "should replace arguments in py string arg" do
51
- py_string = PyString.new(1, 2, 'taste_<taste> color_<color>', 0)
51
+ py_string = PyString.new(1, 2, 'taste_<taste> color_<color>', '')
52
52
 
53
53
  step = Step.new(1, 'Given', 'a <color> cucumber', py_string)
54
54
 
@@ -140,6 +140,13 @@ module Cli
140
140
  config.options[:require].should == ['from/yml']
141
141
  end
142
142
 
143
+ it "allows --strict to be set by a profile" do
144
+ given_cucumber_yml_defined_as({'bongo' => '--strict'})
145
+
146
+ config.parse!(%w{--profile bongo})
147
+ config.options[:strict].should be_true
148
+ end
149
+
143
150
  it "parses ERB syntax in the cucumber.yml file" do
144
151
  given_cucumber_yml_defined_as({'default' => '<%="--require some_file"%>'})
145
152
 
@@ -2,9 +2,34 @@ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
  require 'yaml'
3
3
 
4
4
  module Cucumber
5
- module Cli
6
- describe ProfileLoader do
7
- it "should have all of its specs migrated from configuration_spec"
5
+ module Cli
6
+ describe ProfileLoader do
7
+ def given_cucumber_yml_defined_as(hash_or_string)
8
+ Dir.stub!(:glob).with('{,.config/,config/}cucumber{.yml,.yaml}').and_return(['cucumber.yml'])
9
+ File.stub!(:exist?).and_return(true)
10
+ cucumber_yml = hash_or_string.is_a?(Hash) ? hash_or_string.to_yaml : hash_or_string
11
+ IO.stub!(:read).with('cucumber.yml').and_return(cucumber_yml)
12
+ end
13
+
14
+ def loader
15
+ ProfileLoader.new
16
+ end
17
+
18
+ it "treats backslashes as literals in rerun.txt when on Windows (JRuby or MRI)" do
19
+ given_cucumber_yml_defined_as({'default' => '--format "pretty" features\sync_imap_mailbox.feature:16:22'})
20
+ if(Cucumber::WINDOWS)
21
+ loader.args_from('default').should == ['--format','pretty','features\sync_imap_mailbox.feature:16:22']
22
+ else
23
+ loader.args_from('default').should == ['--format','pretty','featuressync_imap_mailbox.feature:16:22']
24
+ end
25
+
26
+ end
27
+
28
+ it "treats forward slashes as literals" do
29
+ given_cucumber_yml_defined_as({'default' => '--format "ugly" features/sync_imap_mailbox.feature:16:22'})
30
+ loader.args_from('default').should == ['--format','ugly','features/sync_imap_mailbox.feature:16:22']
31
+ end
32
+
33
+ end
8
34
  end
9
35
  end
10
- end
@@ -67,6 +67,16 @@ spec/cucumber/step_mother_spec.rb:48:in `/Three cute (.*)/'
67
67
  end.should_not raise_error
68
68
  end
69
69
 
70
+ it "should not raise NoMethodError when guessing from multiple step definitions with nil fields" do
71
+ @step_mother.options = {:guess => true}
72
+ @dsl.Given(/Three (.*) mice( cannot find food)?/) {|disability, is_disastrous|}
73
+ @dsl.Given(/Three (.*)?/) {|animal|}
74
+
75
+ lambda do
76
+ @step_mother.step_match("Three blind mice")
77
+ end.should_not raise_error
78
+ end
79
+
70
80
  it "should pick right step definition when --guess is enabled and equal number of capture groups" do
71
81
  @step_mother.options = {:guess => true}
72
82
  right = @dsl.Given(/Three (.*) mice/) {|disability|}
@@ -112,7 +122,7 @@ spec/cucumber/step_mother_spec.rb:48:in `/Three cute (.*)/'
112
122
  raise "Should fail"
113
123
  rescue RbSupport::NilWorld => e
114
124
  e.message.should == "World procs should never return nil"
115
- e.backtrace.should == ["spec/cucumber/step_mother_spec.rb:108:in `World'"]
125
+ e.backtrace.should == ["spec/cucumber/step_mother_spec.rb:118:in `World'"]
116
126
  end
117
127
  end
118
128
 
@@ -142,8 +152,8 @@ spec/cucumber/step_mother_spec.rb:48:in `/Three cute (.*)/'
142
152
  end.should raise_error(RbSupport::MultipleWorld, %{You can only pass a proc to #World once, but it's happening
143
153
  in 2 places:
144
154
 
145
- spec/cucumber/step_mother_spec.rb:139:in `World'
146
- spec/cucumber/step_mother_spec.rb:141:in `World'
155
+ spec/cucumber/step_mother_spec.rb:149:in `World'
156
+ spec/cucumber/step_mother_spec.rb:151:in `World'
147
157
 
148
158
  Use Ruby modules instead to extend your worlds. See the Cucumber::RbSupport::RbDsl#World RDoc
149
159
  or http://wiki.github.com/aslakhellesoy/cucumber/a-whole-new-world.
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 6
8
- - 3
9
- version: 0.6.3
8
+ - 4
9
+ version: 0.6.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - "Aslak Helles\xC3\xB8y"
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-02 00:00:00 +01:00
17
+ date: 2010-03-30 00:00:00 +02:00
18
18
  default_executable: cucumber
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -236,10 +236,10 @@ files:
236
236
  - examples/i18n/bg/features/support/env.rb
237
237
  - examples/i18n/bg/features/support/world.rb
238
238
  - examples/i18n/bg/lib/calculator.rb
239
- - examples/i18n/cat/Rakefile
240
- - examples/i18n/cat/features/step_definitons/calculator_steps.rb
241
- - examples/i18n/cat/features/suma.feature
242
- - examples/i18n/cat/lib/calculadora.rb
239
+ - examples/i18n/ca/Rakefile
240
+ - examples/i18n/ca/features/step_definitons/calculator_steps.rb
241
+ - examples/i18n/ca/features/suma.feature
242
+ - examples/i18n/ca/lib/calculadora.rb
243
243
  - examples/i18n/da/Rakefile
244
244
  - examples/i18n/da/features/sammenlaegning.feature
245
245
  - examples/i18n/da/features/step_definitons/lommeregner_steps.rb
@@ -357,25 +357,25 @@ files:
357
357
  - examples/i18n/ru/features/support/env.rb
358
358
  - examples/i18n/ru/features/support/world.rb
359
359
  - examples/i18n/ru/lib/calculator.rb
360
- - examples/i18n/se/Rakefile
361
- - examples/i18n/se/features/step_definitons/kalkulator_steps.rb
362
- - examples/i18n/se/features/summering.feature
363
- - examples/i18n/se/lib/kalkulator.rb
364
360
  - examples/i18n/sk/.gitignore
365
361
  - examples/i18n/sk/Rakefile
366
362
  - examples/i18n/sk/features/addition.feature
367
363
  - examples/i18n/sk/features/division.feature
368
364
  - examples/i18n/sk/features/step_definitons/calculator_steps.rb
369
365
  - examples/i18n/sk/lib/calculator.rb
370
- - examples/i18n/sr-latn/Rakefile
371
- - examples/i18n/sr-latn/features/sabiranje.feature
372
- - examples/i18n/sr-latn/features/step_definitons/calculator_steps.rb
373
- - examples/i18n/sr-latn/lib/calculator.rb
374
- - examples/i18n/sr/Rakefile
375
- - examples/i18n/sr/features/sabiranje.feature
376
- - examples/i18n/sr/features/step_definitons/calculator_steps.rb
377
- - examples/i18n/sr/features/support/env.rb
378
- - examples/i18n/sr/lib/calculator.rb
366
+ - examples/i18n/sr-Cyrl/Rakefile
367
+ - examples/i18n/sr-Cyrl/features/sabiranje.feature
368
+ - examples/i18n/sr-Cyrl/features/step_definitons/calculator_steps.rb
369
+ - examples/i18n/sr-Cyrl/features/support/env.rb
370
+ - examples/i18n/sr-Cyrl/lib/calculator.rb
371
+ - examples/i18n/sr-Latn/Rakefile
372
+ - examples/i18n/sr-Latn/features/sabiranje.feature
373
+ - examples/i18n/sr-Latn/features/step_definitons/calculator_steps.rb
374
+ - examples/i18n/sr-Latn/lib/calculator.rb
375
+ - examples/i18n/sv/Rakefile
376
+ - examples/i18n/sv/features/step_definitons/kalkulator_steps.rb
377
+ - examples/i18n/sv/features/summering.feature
378
+ - examples/i18n/sv/lib/kalkulator.rb
379
379
  - examples/i18n/tr/.gitignore
380
380
  - examples/i18n/tr/Rakefile
381
381
  - examples/i18n/tr/features/bolme.feature
@@ -522,6 +522,7 @@ files:
522
522
  - features/bug_371.feature
523
523
  - features/bug_464.feature
524
524
  - features/bug_475.feature
525
+ - features/bug_585_tab_indentation.feature
525
526
  - features/call_many_steps.feature
526
527
  - features/cucumber_cli.feature
527
528
  - features/cucumber_cli_diff_disabled.feature
@@ -549,6 +550,7 @@ files:
549
550
  - features/rerun_formatter.feature
550
551
  - features/simplest.feature
551
552
  - features/snippet.feature
553
+ - features/snippets_when_using_star_keyword.feature
552
554
  - features/step_definitions/cucumber_steps.rb
553
555
  - features/step_definitions/extra_steps.rb
554
556
  - features/step_definitions/simplest_steps.rb
@@ -580,7 +582,9 @@ files:
580
582
  - lib/autotest/cucumber_mixin.rb
581
583
  - lib/autotest/cucumber_rails.rb
582
584
  - lib/autotest/cucumber_rails_rspec.rb
585
+ - lib/autotest/cucumber_rails_rspec2.rb
583
586
  - lib/autotest/cucumber_rspec.rb
587
+ - lib/autotest/cucumber_rspec2.rb
584
588
  - lib/autotest/discover.rb
585
589
  - lib/cucumber.rb
586
590
  - lib/cucumber/ast.rb
@@ -743,7 +747,7 @@ post_install_message: |+
743
747
 
744
748
  (::) U P G R A D I N G (::)
745
749
 
746
- Thank you for installing cucumber-0.6.3.
750
+ Thank you for installing cucumber-0.6.4.
747
751
  Please be sure to read http://wiki.github.com/aslakhellesoy/cucumber/upgrading
748
752
  for important information about this release. Happy cuking!
749
753
 
@@ -822,8 +826,8 @@ test_files:
822
826
  - examples/i18n/bg/features/support/env.rb
823
827
  - examples/i18n/bg/features/support/world.rb
824
828
  - examples/i18n/bg/lib/calculator.rb
825
- - examples/i18n/cat/features/step_definitons/calculator_steps.rb
826
- - examples/i18n/cat/lib/calculadora.rb
829
+ - examples/i18n/ca/features/step_definitons/calculator_steps.rb
830
+ - examples/i18n/ca/lib/calculadora.rb
827
831
  - examples/i18n/da/features/step_definitons/lommeregner_steps.rb
828
832
  - examples/i18n/da/lib/lommeregner.rb
829
833
  - examples/i18n/de/features/step_definitons/calculator_steps.rb
@@ -875,15 +879,15 @@ test_files:
875
879
  - examples/i18n/ru/features/support/env.rb
876
880
  - examples/i18n/ru/features/support/world.rb
877
881
  - examples/i18n/ru/lib/calculator.rb
878
- - examples/i18n/se/features/step_definitons/kalkulator_steps.rb
879
- - examples/i18n/se/lib/kalkulator.rb
880
882
  - examples/i18n/sk/features/step_definitons/calculator_steps.rb
881
883
  - examples/i18n/sk/lib/calculator.rb
882
- - examples/i18n/sr/features/step_definitons/calculator_steps.rb
883
- - examples/i18n/sr/features/support/env.rb
884
- - examples/i18n/sr/lib/calculator.rb
885
- - examples/i18n/sr-latn/features/step_definitons/calculator_steps.rb
886
- - examples/i18n/sr-latn/lib/calculator.rb
884
+ - examples/i18n/sr-Cyrl/features/step_definitons/calculator_steps.rb
885
+ - examples/i18n/sr-Cyrl/features/support/env.rb
886
+ - examples/i18n/sr-Cyrl/lib/calculator.rb
887
+ - examples/i18n/sr-Latn/features/step_definitons/calculator_steps.rb
888
+ - examples/i18n/sr-Latn/lib/calculator.rb
889
+ - examples/i18n/sv/features/step_definitons/kalkulator_steps.rb
890
+ - examples/i18n/sv/lib/kalkulator.rb
887
891
  - examples/i18n/tr/features/step_definitons/hesap_makinesi_adimlari.rb
888
892
  - examples/i18n/tr/lib/hesap_makinesi.rb
889
893
  - examples/i18n/uz/features/step_definitons/calculator_steps.rb