mutant 0.5.19 → 0.5.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -4
  3. data/Changelog.md +9 -0
  4. data/Gemfile.devtools +15 -11
  5. data/README.md +10 -6
  6. data/config/flay.yml +1 -1
  7. data/config/reek.yml +3 -1
  8. data/lib/mutant.rb +41 -41
  9. data/lib/mutant/cache.rb +0 -2
  10. data/lib/mutant/cli.rb +6 -8
  11. data/lib/mutant/color.rb +0 -2
  12. data/lib/mutant/config.rb +0 -2
  13. data/lib/mutant/context.rb +0 -2
  14. data/lib/mutant/context/scope.rb +0 -2
  15. data/lib/mutant/delegator.rb +2 -0
  16. data/lib/mutant/diff.rb +4 -16
  17. data/lib/mutant/expression.rb +8 -7
  18. data/lib/mutant/expression/method.rb +3 -9
  19. data/lib/mutant/isolation.rb +65 -0
  20. data/lib/mutant/killer.rb +1 -3
  21. data/lib/mutant/loader.rb +0 -2
  22. data/lib/mutant/matcher.rb +0 -2
  23. data/lib/mutant/matcher/chain.rb +0 -2
  24. data/lib/mutant/matcher/filter.rb +0 -2
  25. data/lib/mutant/matcher/method.rb +1 -2
  26. data/lib/mutant/matcher/method/finder.rb +0 -2
  27. data/lib/mutant/matcher/method/instance.rb +1 -3
  28. data/lib/mutant/matcher/method/singleton.rb +0 -2
  29. data/lib/mutant/matcher/methods.rb +0 -2
  30. data/lib/mutant/matcher/namespace.rb +2 -6
  31. data/lib/mutant/matcher/null.rb +0 -2
  32. data/lib/mutant/matcher/scope.rb +0 -2
  33. data/lib/mutant/meta/example.rb +57 -18
  34. data/lib/mutant/meta/example/dsl.rb +10 -13
  35. data/lib/mutant/mutation.rb +0 -2
  36. data/lib/mutant/mutation/evil.rb +0 -2
  37. data/lib/mutant/mutation/neutral.rb +0 -2
  38. data/lib/mutant/mutator.rb +4 -31
  39. data/lib/mutant/mutator/node.rb +19 -18
  40. data/lib/mutant/mutator/node/and_asgn.rb +3 -6
  41. data/lib/mutant/mutator/node/argument.rb +0 -2
  42. data/lib/mutant/mutator/node/arguments.rb +47 -4
  43. data/lib/mutant/mutator/node/begin.rb +3 -10
  44. data/lib/mutant/mutator/node/binary.rb +0 -2
  45. data/lib/mutant/mutator/node/block.rb +0 -2
  46. data/lib/mutant/mutator/node/blockarg.rb +0 -2
  47. data/lib/mutant/mutator/node/break.rb +0 -2
  48. data/lib/mutant/mutator/node/case.rb +3 -6
  49. data/lib/mutant/mutator/node/conditional_loop.rb +0 -2
  50. data/lib/mutant/mutator/node/const.rb +1 -3
  51. data/lib/mutant/mutator/node/define.rb +0 -2
  52. data/lib/mutant/mutator/node/defined.rb +1 -3
  53. data/lib/mutant/mutator/node/dstr.rb +0 -2
  54. data/lib/mutant/mutator/node/dsym.rb +0 -2
  55. data/lib/mutant/mutator/node/generic.rb +0 -2
  56. data/lib/mutant/mutator/node/if.rb +8 -12
  57. data/lib/mutant/mutator/node/kwbegin.rb +0 -2
  58. data/lib/mutant/mutator/node/literal.rb +0 -2
  59. data/lib/mutant/mutator/node/literal/array.rb +2 -5
  60. data/lib/mutant/mutator/node/literal/boolean.rb +0 -2
  61. data/lib/mutant/mutator/node/literal/fixnum.rb +0 -2
  62. data/lib/mutant/mutator/node/literal/float.rb +0 -2
  63. data/lib/mutant/mutator/node/literal/hash.rb +0 -2
  64. data/lib/mutant/mutator/node/literal/nil.rb +0 -2
  65. data/lib/mutant/mutator/node/literal/range.rb +0 -2
  66. data/lib/mutant/mutator/node/literal/regex.rb +2 -4
  67. data/lib/mutant/mutator/node/literal/string.rb +0 -2
  68. data/lib/mutant/mutator/node/literal/symbol.rb +0 -2
  69. data/lib/mutant/mutator/node/masgn.rb +0 -2
  70. data/lib/mutant/mutator/node/mlhs.rb +0 -2
  71. data/lib/mutant/mutator/node/named_value/access.rb +0 -2
  72. data/lib/mutant/mutator/node/named_value/constant_assignment.rb +0 -2
  73. data/lib/mutant/mutator/node/named_value/variable_assignment.rb +0 -2
  74. data/lib/mutant/mutator/node/next.rb +0 -3
  75. data/lib/mutant/mutator/node/noop.rb +0 -2
  76. data/lib/mutant/mutator/node/nthref.rb +0 -2
  77. data/lib/mutant/mutator/node/op_asgn.rb +2 -4
  78. data/lib/mutant/mutator/node/or_asgn.rb +4 -7
  79. data/lib/mutant/mutator/node/resbody.rb +1 -1
  80. data/lib/mutant/mutator/node/rescue.rb +0 -2
  81. data/lib/mutant/mutator/node/restarg.rb +0 -2
  82. data/lib/mutant/mutator/node/return.rb +3 -6
  83. data/lib/mutant/mutator/node/send.rb +14 -8
  84. data/lib/mutant/mutator/node/send/attribute_assignment.rb +0 -2
  85. data/lib/mutant/mutator/node/send/binary.rb +1 -3
  86. data/lib/mutant/mutator/node/splat.rb +0 -2
  87. data/lib/mutant/mutator/node/super.rb +0 -2
  88. data/lib/mutant/mutator/node/when.rb +0 -2
  89. data/lib/mutant/mutator/node/yield.rb +0 -2
  90. data/lib/mutant/mutator/node/zsuper.rb +0 -2
  91. data/lib/mutant/mutator/registry.rb +0 -2
  92. data/lib/mutant/mutator/util.rb +0 -2
  93. data/lib/mutant/mutator/util/array.rb +0 -2
  94. data/lib/mutant/mutator/util/symbol.rb +0 -2
  95. data/lib/mutant/node_helpers.rb +11 -2
  96. data/lib/mutant/reporter.rb +0 -2
  97. data/lib/mutant/reporter/cli.rb +0 -2
  98. data/lib/mutant/reporter/cli/printer.rb +0 -2
  99. data/lib/mutant/reporter/cli/progress.rb +0 -2
  100. data/lib/mutant/reporter/cli/report.rb +0 -2
  101. data/lib/mutant/reporter/cli/report/config.rb +0 -2
  102. data/lib/mutant/reporter/cli/report/mutation.rb +5 -5
  103. data/lib/mutant/reporter/cli/report/subject.rb +0 -2
  104. data/lib/mutant/reporter/null.rb +0 -2
  105. data/lib/mutant/runner.rb +0 -2
  106. data/lib/mutant/runner/config.rb +0 -2
  107. data/lib/mutant/runner/mutation.rb +0 -2
  108. data/lib/mutant/runner/subject.rb +0 -2
  109. data/lib/mutant/strategy.rb +0 -2
  110. data/lib/mutant/subject.rb +0 -2
  111. data/lib/mutant/subject/method.rb +0 -2
  112. data/lib/mutant/subject/method/instance.rb +1 -3
  113. data/lib/mutant/subject/method/singleton.rb +0 -2
  114. data/lib/mutant/version.rb +1 -3
  115. data/lib/mutant/zombifier.rb +0 -2
  116. data/meta/begin.rb +10 -0
  117. data/meta/case.rb +0 -2
  118. data/meta/def.rb +19 -0
  119. data/mutant-rspec.gemspec +1 -1
  120. data/mutant.gemspec +1 -1
  121. data/spec/integration/mutant/corpus_spec.rb +81 -22
  122. data/spec/integration/mutant/null_spec.rb +1 -3
  123. data/spec/integration/mutant/rspec_spec.rb +6 -8
  124. data/spec/integration/mutant/test_mutator_handles_types_spec.rb +0 -2
  125. data/spec/integration/mutant/zombie_spec.rb +0 -2
  126. data/spec/integrations.yml +12 -1
  127. data/spec/shared/method_matcher_behavior.rb +0 -2
  128. data/spec/spec_helper.rb +0 -2
  129. data/spec/support/compress_helper.rb +0 -2
  130. data/spec/support/ice_nine_config.rb +0 -2
  131. data/spec/support/rspec.rb +0 -2
  132. data/spec/support/test_app.rb +0 -2
  133. data/spec/unit/mutant/cli_new_spec.rb +0 -2
  134. data/spec/unit/mutant/cli_run_spec.rb +0 -2
  135. data/spec/unit/mutant/context/root_spec.rb +0 -2
  136. data/spec/unit/mutant/context/scope/root_spec.rb +0 -2
  137. data/spec/unit/mutant/context/scope/unqualified_name_spec.rb +0 -2
  138. data/spec/unit/mutant/diff_spec.rb +0 -2
  139. data/spec/unit/mutant/expression/method_spec.rb +2 -4
  140. data/spec/unit/mutant/expression/namespace/flat_spec.rb +1 -3
  141. data/spec/unit/mutant/expression/namespace/recursive_spec.rb +10 -6
  142. data/spec/unit/mutant/isolation_spec.rb +61 -0
  143. data/spec/unit/mutant/loader/eval_spec.rb +0 -2
  144. data/spec/unit/mutant/matcher/chain_spec.rb +4 -15
  145. data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -2
  146. data/spec/unit/mutant/matcher/method/singleton_spec.rb +0 -2
  147. data/spec/unit/mutant/matcher/methods/instance_spec.rb +0 -2
  148. data/spec/unit/mutant/matcher/methods/singleton_spec.rb +0 -2
  149. data/spec/unit/mutant/matcher/namespace_spec.rb +33 -31
  150. data/spec/unit/mutant/mutation_spec.rb +0 -2
  151. data/spec/unit/mutant/runner/config_spec.rb +0 -2
  152. data/spec/unit/mutant/runner/mutation_spec.rb +0 -2
  153. data/spec/unit/mutant/runner/subject_spec.rb +0 -2
  154. data/spec/unit/mutant/strategy_spec.rb +0 -2
  155. data/spec/unit/mutant/subject/context_spec.rb +0 -2
  156. data/spec/unit/mutant/subject/mutations_spec.rb +0 -2
  157. data/spec/unit/mutant/subject/node_spec.rb +0 -2
  158. data/spec/unit/mutant/subject_spec.rb +0 -2
  159. data/spec/unit/mutant/warning_filter_spec.rb +6 -0
  160. data/spec/unit/mutant_spec.rb +0 -55
  161. data/test_app/Gemfile.devtools +15 -11
  162. data/test_app/Gemfile.rspec3 +2 -2
  163. metadata +7 -7
  164. data/lib/mutant/constants.rb +0 -45
  165. data/spec/unit/mutant/mutator_spec.rb +0 -29
@@ -1,12 +1,10 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Expression::Namespace::Exact do
6
4
 
7
5
  let(:object) { described_class.parse(input) }
8
6
  let(:cache) { Mutant::Cache.new }
9
- let(:input) { '::TestApp::Literal' }
7
+ let(:input) { 'TestApp::Literal' }
10
8
 
11
9
  describe '#matcher' do
12
10
  subject { object.matcher(cache) }
@@ -1,16 +1,14 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Expression::Namespace::Recursive do
6
4
 
7
5
  let(:object) { described_class.parse(input) }
8
6
  let(:cache) { Mutant::Cache.new }
9
- let(:input) { '::TestApp::Literal*' }
7
+ let(:input) { 'TestApp::Literal*' }
10
8
 
11
9
  describe '#matcher' do
12
10
  subject { object.matcher(cache) }
13
- it { should eql(Mutant::Matcher::Namespace.new(cache, '::TestApp::Literal')) }
11
+ it { should eql(Mutant::Matcher::Namespace.new(cache, 'TestApp::Literal')) }
14
12
  end
15
13
 
16
14
  describe '#match_length' do
@@ -23,13 +21,19 @@ describe Mutant::Expression::Namespace::Recursive do
23
21
  end
24
22
 
25
23
  context 'when other expression describes a shorter prefix' do
26
- let(:other) { described_class.parse('::TestApp') }
24
+ let(:other) { described_class.parse('TestApp') }
25
+
26
+ it { should be(0) }
27
+ end
28
+
29
+ context 'when other expression describes adjacent namespace' do
30
+ let(:other) { described_class.parse('TestApp::LiteralFoo') }
27
31
 
28
32
  it { should be(0) }
29
33
  end
30
34
 
31
35
  context 'when other expression describes a longer prefix' do
32
- let(:other) { described_class.parse('::TestApp::Literal::Deep') }
36
+ let(:other) { described_class.parse('TestApp::Literal::Deep') }
33
37
 
34
38
  it { should be(input[0..-2].length) }
35
39
  end
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+
3
+ describe Mutant::Isolation do
4
+ describe '.isolate' do
5
+ let(:object) { described_class }
6
+
7
+ before do
8
+ unless RUBY_VERSION.eql?('2.1.2')
9
+ skip 'Series of events is indeterministic cross ruby implementations. Skipping this test under non 2.1.2'
10
+ end
11
+ end
12
+
13
+ let(:expected_return) { :foo }
14
+
15
+ subject { object.call(&block) }
16
+
17
+ def redirect_stderr
18
+ $stderr = File.open('/dev/null')
19
+ end
20
+
21
+ unless ENV['COVERAGE']
22
+ context 'when block returns mashallable data, and process exists zero' do
23
+ let(:block) do
24
+ lambda do
25
+ :data_from_child_process
26
+ end
27
+ end
28
+
29
+ it { should eql(:data_from_child_process) }
30
+ end
31
+ end
32
+
33
+ context 'when block does return marshallable data' do
34
+ let(:block) do
35
+ lambda do
36
+ redirect_stderr
37
+ $stderr # not mashallable, nothing written to pipe and raises exception in child
38
+ end
39
+ end
40
+
41
+ it 'raises an exception' do
42
+ expect { subject }.to raise_error(described_class::Error, 'Childprocess wrote un-unmarshallable data')
43
+ end
44
+ end
45
+
46
+ context 'when block causes the child to exit nonzero' do
47
+ let(:block) do
48
+ lambda do
49
+ method = Kernel.method(:exit!)
50
+ Kernel.define_singleton_method(:exit!) do |_status|
51
+ method.call(1)
52
+ end
53
+ end
54
+ end
55
+
56
+ it 'raises an exception' do
57
+ expect { subject }.to raise_error(described_class::Error, 'Childprocess exited with nonzero exit status: 1')
58
+ end
59
+ end
60
+ end
61
+ end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Loader::Eval, '.call' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Matcher::Chain do
@@ -11,29 +9,20 @@ describe Mutant::Matcher::Chain do
11
9
 
12
10
  let(:matchers) { [matcher_a, matcher_b] }
13
11
 
14
- let(:matcher_a) { double('Matcher A') }
15
- let(:matcher_b) { double('Matcher B') }
12
+ let(:matcher_a) { [subject_a] }
13
+ let(:matcher_b) { [subject_b] }
16
14
 
17
15
  let(:subject_a) { double('Subject A') }
18
16
  let(:subject_b) { double('Subject B') }
19
17
 
20
- before do
21
- matcher_a.stub(:each).and_yield(subject_a).and_return(matcher_a)
22
- matcher_b.stub(:each).and_yield(subject_b).and_return(matcher_b)
23
- end
24
-
25
18
  # it_should_behave_like 'an #each method'
26
19
  context 'with no block' do
27
20
  subject { object.each }
28
21
 
29
22
  it { should be_instance_of(to_enum.class) }
30
23
 
31
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
32
- pending 'FIX RBX rspec? BUG HERE'
33
- else
34
- it 'yields the expected values' do
35
- expect(subject.to_a).to eql(object.to_a)
36
- end
24
+ it 'yields the expected values' do
25
+ expect(subject.to_a).to eql(object.to_a)
37
26
  end
38
27
  end
39
28
 
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  # rubocop:disable ClassAndModuleChildren
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  # rubocop:disable ClassAndModuleChildren
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Matcher::Methods::Instance, '#each' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Matcher::Methods::Singleton, '#each' do
@@ -1,45 +1,47 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
- describe Mutant::Matcher::Namespace, '#each' do
6
- subject { object.each { |item| yields << item } }
7
-
8
- let(:yields) { [] }
3
+ describe Mutant::Matcher::Namespace do
9
4
  let(:object) { described_class.new(cache, 'TestApp::Literal') }
5
+ let(:yields) { [] }
10
6
 
11
7
  let(:cache) { Mutant::Cache.new }
12
8
 
13
- let(:singleton_a) { double('SingletonA', name: 'TestApp::Literal') }
14
- let(:singleton_b) { double('SingletonB', name: 'TestApp::Foo') }
15
- let(:subject_a) { double('SubjectA') }
16
- let(:subject_b) { double('SubjectB') }
17
-
18
- before do
19
- Mutant::Matcher::Methods::Singleton.stub(:each)
20
- .with(cache, singleton_a)
21
- .and_yield(subject_a)
22
- Mutant::Matcher::Methods::Instance.stub(:each)
23
- .with(cache, singleton_a)
24
- .and_yield(subject_b)
25
- ObjectSpace.stub(each_object: [singleton_a, singleton_b])
26
- end
9
+ subject { object.each { |item| yields << item } }
10
+
11
+ describe '#each' do
12
+
13
+ let(:singleton_a) { double('SingletonA', name: 'TestApp::Literal') }
14
+ let(:singleton_b) { double('SingletonB', name: 'TestApp::Foo') }
15
+ let(:singleton_c) { double('SingletonC', name: 'TestApp::LiteralOther') }
16
+ let(:subject_a) { double('SubjectA') }
17
+ let(:subject_b) { double('SubjectB') }
18
+
19
+ before do
20
+ Mutant::Matcher::Methods::Singleton.stub(:each)
21
+ .with(cache, singleton_a)
22
+ .and_yield(subject_a)
23
+ Mutant::Matcher::Methods::Instance.stub(:each)
24
+ .with(cache, singleton_a)
25
+ .and_yield(subject_b)
26
+ ObjectSpace.stub(each_object: [singleton_a, singleton_b, singleton_c])
27
+ end
27
28
 
28
- context 'with no block' do
29
- subject { object.each }
29
+ context 'with no block' do
30
+ subject { object.each }
30
31
 
31
- it { should be_instance_of(to_enum.class) }
32
+ it { should be_instance_of(to_enum.class) }
32
33
 
33
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
34
- pending 'FIX RBX rspec? BUG HERE'
35
- else
36
- it 'yields the expected values' do
37
- expect(subject.to_a).to eql(object.to_a)
34
+ if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
35
+ skip 'FIX RBX rspec? BUG HERE'
36
+ else
37
+ it 'yields the expected values' do
38
+ expect(subject.to_a).to eql(object.to_a)
39
+ end
38
40
  end
39
41
  end
40
- end
41
42
 
42
- it 'should yield subjects' do
43
- expect { subject }.to change { yields }.from([]).to([subject_a, subject_b])
43
+ it 'should yield subjects' do
44
+ expect { subject }.to change { yields }.from([]).to([subject_a, subject_b])
45
+ end
44
46
  end
45
47
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Mutation do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Runner::Config do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Runner::Mutation do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Runner::Subject, '#success?' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Strategy do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Subject, '#context' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Subject, '#mutations' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Subject, '#node' do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant::Subject do
@@ -1,6 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Mutant::WarningFilter do
4
+ before do
5
+ if RUBY_ENGINE.eql?('rbx')
6
+ skip 'Disabled because expected warnings are from MRI'
7
+ end
8
+ end
9
+
4
10
  let(:object) { described_class.new(target) }
5
11
 
6
12
  let(:target) do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'spec_helper'
4
2
 
5
3
  describe Mutant do
@@ -38,57 +36,4 @@ describe Mutant do
38
36
  expect(inspect).to be_frozen
39
37
  end
40
38
  end
41
-
42
- describe '.isolate' do
43
- let(:object) { described_class }
44
-
45
- let(:expected_return) { :foo }
46
-
47
- subject { object.isolate(&block) }
48
-
49
- def redirect_stderr
50
- $stderr = File.open('/dev/null')
51
- end
52
-
53
- unless ENV['COVERAGE']
54
- context 'when block returns mashallable data, and process exists zero' do
55
- let(:block) do
56
- lambda do
57
- :data_from_child_process
58
- end
59
- end
60
-
61
- it { should eql(:data_from_child_process) }
62
- end
63
- end
64
-
65
- context 'when block does return marshallable data' do
66
- let(:block) do
67
- lambda do
68
- redirect_stderr
69
- $stderr # not mashallable, nothing written to pipe and raised exceptions in child
70
- end
71
- end
72
-
73
- it 'raises an exception' do
74
- expect { subject }.to raise_error(Mutant::IsolationError, 'Childprocess wrote un-unmarshallable data')
75
- end
76
- end
77
-
78
- context 'when block does return marshallable data, but process exits with nonzero exitstatus' do
79
- let(:block) do
80
- lambda do
81
- redirect_stderr
82
- at_exit do
83
- raise
84
- end
85
- :foo
86
- end
87
- end
88
-
89
- it 'raises an exception' do
90
- expect { subject }.to raise_error(Mutant::IsolationError, 'Childprocess exited with nonzero exit status: 1')
91
- end
92
- end
93
- end
94
39
  end
@@ -1,9 +1,9 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  group :development do
4
- gem 'rake', '~> 10.3.1'
5
- gem 'rspec', '~> 2.99.0.beta2'
6
- gem 'rspec-core', '~> 2.99.0.beta2'
4
+ gem 'rake', '~> 10.3.2'
5
+ gem 'rspec', '~> 2.99.0'
6
+ gem 'rspec-core', '~> 2.99.0'
7
7
  gem 'yard', '~> 0.8.7.4'
8
8
 
9
9
  platform :rbx do
@@ -11,30 +11,34 @@ group :development do
11
11
  end
12
12
  end
13
13
 
14
+ group :yard do
15
+ gem 'kramdown', '~> 1.3.3'
16
+ end
17
+
14
18
  group :guard do
15
- gem 'guard', '~> 2.6.0'
19
+ gem 'guard', '~> 2.6.1'
16
20
  gem 'guard-bundler', '~> 2.0.0'
17
- gem 'guard-rspec', '~> 4.2.8'
21
+ gem 'guard-rspec', '~> 4.2.9'
18
22
  gem 'guard-rubocop', '~> 1.1.0'
19
23
 
20
24
  # file system change event handling
21
- gem 'listen', '~> 2.7.3'
25
+ gem 'listen', '~> 2.7.7'
22
26
  gem 'rb-fchange', '~> 0.0.6', require: false
23
27
  gem 'rb-fsevent', '~> 0.9.4', require: false
24
- gem 'rb-inotify', '~> 0.9.4', require: false
28
+ gem 'rb-inotify', '~> 0.9.5', require: false
25
29
 
26
30
  # notification handling
27
- gem 'libnotify', '~> 0.8.2', require: false
31
+ gem 'libnotify', '~> 0.8.3', require: false
28
32
  gem 'rb-notifu', '~> 0.0.4', require: false
29
33
  gem 'terminal-notifier-guard', '~> 1.5.3', require: false
30
34
  end
31
35
 
32
36
  group :metrics do
33
37
  gem 'coveralls', '~> 0.7.0'
34
- gem 'flay', '~> 2.4.0'
35
- gem 'flog', '~> 4.2.0'
38
+ gem 'flay', '~> 2.5.0'
39
+ gem 'flog', '~> 4.2.1'
36
40
  gem 'reek', '~> 1.3.7'
37
- gem 'rubocop', '~> 0.21.0'
41
+ gem 'rubocop', '~> 0.23.0'
38
42
  gem 'simplecov', '~> 0.7.1'
39
43
  gem 'yardstick', '~> 0.9.9'
40
44