mutant 0.9.6 → 0.9.11

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 (184) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +121 -0
  3. data/.rubocop.yml +203 -0
  4. data/Changelog.md +26 -0
  5. data/Gemfile +0 -7
  6. data/Gemfile.lock +27 -87
  7. data/Gemfile.shared +7 -0
  8. data/README.md +88 -27
  9. data/config/reek.yml +1 -0
  10. data/lib/mutant.rb +4 -2
  11. data/lib/mutant/ast.rb +0 -9
  12. data/lib/mutant/ast/find_metaclass_containing.rb +48 -0
  13. data/lib/mutant/ast/meta/send.rb +0 -6
  14. data/lib/mutant/bootstrap.rb +0 -36
  15. data/lib/mutant/cli.rb +5 -49
  16. data/lib/mutant/config.rb +0 -8
  17. data/lib/mutant/context.rb +0 -3
  18. data/lib/mutant/env.rb +0 -6
  19. data/lib/mutant/expression/method.rb +6 -6
  20. data/lib/mutant/expression/methods.rb +6 -6
  21. data/lib/mutant/expression/parser.rb +0 -6
  22. data/lib/mutant/integration.rb +0 -18
  23. data/lib/mutant/isolation/fork.rb +0 -22
  24. data/lib/mutant/license.rb +11 -0
  25. data/lib/mutant/matcher.rb +0 -14
  26. data/lib/mutant/matcher/config.rb +0 -11
  27. data/lib/mutant/matcher/method.rb +0 -31
  28. data/lib/mutant/matcher/method/instance.rb +0 -8
  29. data/lib/mutant/matcher/method/metaclass.rb +86 -0
  30. data/lib/mutant/matcher/method/singleton.rb +0 -25
  31. data/lib/mutant/matcher/methods.rb +17 -28
  32. data/lib/mutant/matcher/namespace.rb +0 -10
  33. data/lib/mutant/matcher/scope.rb +2 -4
  34. data/lib/mutant/meta/example/dsl.rb +0 -21
  35. data/lib/mutant/meta/example/verification.rb +0 -20
  36. data/lib/mutant/mutation.rb +0 -3
  37. data/lib/mutant/mutator.rb +1 -29
  38. data/lib/mutant/mutator/node.rb +1 -66
  39. data/lib/mutant/mutator/node/and_asgn.rb +0 -3
  40. data/lib/mutant/mutator/node/argument.rb +0 -15
  41. data/lib/mutant/mutator/node/arguments.rb +0 -20
  42. data/lib/mutant/mutator/node/begin.rb +0 -3
  43. data/lib/mutant/mutator/node/binary.rb +0 -23
  44. data/lib/mutant/mutator/node/block.rb +0 -15
  45. data/lib/mutant/mutator/node/break.rb +0 -3
  46. data/lib/mutant/mutator/node/case.rb +0 -9
  47. data/lib/mutant/mutator/node/class.rb +0 -3
  48. data/lib/mutant/mutator/node/conditional_loop.rb +0 -3
  49. data/lib/mutant/mutator/node/const.rb +0 -3
  50. data/lib/mutant/mutator/node/define.rb +0 -11
  51. data/lib/mutant/mutator/node/defined.rb +0 -3
  52. data/lib/mutant/mutator/node/dstr.rb +0 -3
  53. data/lib/mutant/mutator/node/dsym.rb +0 -3
  54. data/lib/mutant/mutator/node/generic.rb +0 -67
  55. data/lib/mutant/mutator/node/if.rb +0 -12
  56. data/lib/mutant/mutator/node/index.rb +0 -27
  57. data/lib/mutant/mutator/node/kwbegin.rb +0 -3
  58. data/lib/mutant/mutator/node/literal.rb +0 -3
  59. data/lib/mutant/mutator/node/literal/array.rb +0 -6
  60. data/lib/mutant/mutator/node/literal/boolean.rb +0 -4
  61. data/lib/mutant/mutator/node/literal/float.rb +0 -9
  62. data/lib/mutant/mutator/node/literal/hash.rb +0 -9
  63. data/lib/mutant/mutator/node/literal/integer.rb +0 -9
  64. data/lib/mutant/mutator/node/literal/nil.rb +0 -3
  65. data/lib/mutant/mutator/node/literal/range.rb +4 -7
  66. data/lib/mutant/mutator/node/literal/regex.rb +0 -6
  67. data/lib/mutant/mutator/node/literal/string.rb +0 -3
  68. data/lib/mutant/mutator/node/literal/symbol.rb +0 -3
  69. data/lib/mutant/mutator/node/masgn.rb +0 -3
  70. data/lib/mutant/mutator/node/match_current_line.rb +0 -3
  71. data/lib/mutant/mutator/node/mlhs.rb +0 -3
  72. data/lib/mutant/mutator/node/named_value/access.rb +2 -14
  73. data/lib/mutant/mutator/node/named_value/constant_assignment.rb +0 -9
  74. data/lib/mutant/mutator/node/named_value/variable_assignment.rb +0 -6
  75. data/lib/mutant/mutator/node/next.rb +0 -3
  76. data/lib/mutant/mutator/node/noop.rb +0 -3
  77. data/lib/mutant/mutator/node/nthref.rb +0 -3
  78. data/lib/mutant/mutator/node/op_asgn.rb +0 -3
  79. data/lib/mutant/mutator/node/or_asgn.rb +0 -3
  80. data/lib/mutant/mutator/node/procarg_zero.rb +0 -3
  81. data/lib/mutant/mutator/node/regopt.rb +0 -6
  82. data/lib/mutant/mutator/node/resbody.rb +0 -6
  83. data/lib/mutant/mutator/node/rescue.rb +2 -19
  84. data/lib/mutant/mutator/node/return.rb +0 -3
  85. data/lib/mutant/mutator/node/sclass.rb +20 -0
  86. data/lib/mutant/mutator/node/send.rb +2 -61
  87. data/lib/mutant/mutator/node/send/attribute_assignment.rb +0 -9
  88. data/lib/mutant/mutator/node/send/binary.rb +0 -11
  89. data/lib/mutant/mutator/node/send/conditional.rb +0 -3
  90. data/lib/mutant/mutator/node/splat.rb +0 -3
  91. data/lib/mutant/mutator/node/super.rb +0 -3
  92. data/lib/mutant/mutator/node/when.rb +0 -19
  93. data/lib/mutant/mutator/node/yield.rb +0 -3
  94. data/lib/mutant/mutator/node/zsuper.rb +0 -3
  95. data/lib/mutant/mutator/util/array.rb +0 -6
  96. data/lib/mutant/mutator/util/symbol.rb +0 -3
  97. data/lib/mutant/parallel.rb +0 -13
  98. data/lib/mutant/parallel/driver.rb +0 -10
  99. data/lib/mutant/parallel/worker.rb +0 -22
  100. data/lib/mutant/registry.rb +2 -7
  101. data/lib/mutant/reporter/cli.rb +0 -5
  102. data/lib/mutant/reporter/cli/format.rb +0 -9
  103. data/lib/mutant/reporter/cli/printer.rb +2 -42
  104. data/lib/mutant/reporter/cli/printer/env_progress.rb +0 -15
  105. data/lib/mutant/reporter/cli/printer/isolation_result.rb +0 -18
  106. data/lib/mutant/reporter/cli/printer/mutation_progress_result.rb +0 -5
  107. data/lib/mutant/reporter/cli/printer/mutation_result.rb +1 -22
  108. data/lib/mutant/reporter/cli/printer/status_progressive.rb +0 -8
  109. data/lib/mutant/reporter/cli/printer/subject_progress.rb +0 -9
  110. data/lib/mutant/repository/diff.rb +1 -13
  111. data/lib/mutant/repository/diff/ranges.rb +0 -11
  112. data/lib/mutant/result.rb +0 -3
  113. data/lib/mutant/runner.rb +0 -18
  114. data/lib/mutant/runner/sink.rb +0 -5
  115. data/lib/mutant/subject.rb +0 -8
  116. data/lib/mutant/subject/method.rb +0 -3
  117. data/lib/mutant/subject/method/instance.rb +40 -6
  118. data/lib/mutant/subject/method/metaclass.rb +30 -0
  119. data/lib/mutant/transform.rb +0 -92
  120. data/lib/mutant/version.rb +1 -1
  121. data/lib/mutant/warnings.rb +0 -6
  122. data/lib/mutant/zombifier.rb +2 -34
  123. data/meta/and.rb +0 -2
  124. data/meta/array.rb +0 -3
  125. data/meta/begin.rb +0 -3
  126. data/meta/block.rb +0 -3
  127. data/meta/break.rb +0 -1
  128. data/meta/case.rb +0 -6
  129. data/meta/casgn.rb +0 -3
  130. data/meta/cvasgn.rb +0 -1
  131. data/meta/def.rb +0 -7
  132. data/meta/ensure.rb +0 -1
  133. data/meta/false.rb +0 -1
  134. data/meta/gvasgn.rb +0 -1
  135. data/meta/hash.rb +0 -4
  136. data/meta/if.rb +0 -5
  137. data/meta/ivasgn.rb +0 -1
  138. data/meta/kwbegin.rb +0 -1
  139. data/meta/lvasgn.rb +0 -1
  140. data/meta/match_current_line.rb +0 -1
  141. data/meta/next.rb +0 -1
  142. data/meta/or.rb +0 -2
  143. data/meta/range.rb +24 -0
  144. data/meta/regexp.rb +0 -1
  145. data/meta/rescue.rb +0 -6
  146. data/meta/sclass.rb +12 -0
  147. data/meta/send.rb +0 -4
  148. data/meta/true.rb +0 -1
  149. data/meta/until.rb +0 -1
  150. data/meta/while.rb +0 -2
  151. data/meta/yield.rb +0 -1
  152. data/mutant.gemspec +7 -4
  153. data/mutant.sh +12 -0
  154. data/spec/spec_helper.rb +37 -22
  155. data/spec/unit/mutant/ast/find_metaclass_containing_spec.rb +64 -0
  156. data/spec/unit/mutant/expression/methods_spec.rb +7 -2
  157. data/spec/unit/mutant/license_spec.rb +15 -3
  158. data/spec/unit/mutant/matcher/method/metaclass_spec.rb +108 -0
  159. data/spec/unit/mutant/matcher/methods/metaclass_spec.rb +62 -0
  160. data/spec/unit/mutant/matcher/namespace_spec.rb +3 -1
  161. data/spec/unit/mutant/matcher/scope_spec.rb +11 -1
  162. data/spec/unit/mutant/meta/example_spec.rb +3 -3
  163. data/spec/unit/mutant/mutator/node_spec.rb +1 -6
  164. data/spec/unit/mutant/registry_spec.rb +52 -25
  165. data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +1 -1
  166. data/spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb +2 -2
  167. data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +12 -12
  168. data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +1 -1
  169. data/spec/unit/mutant/reporter/cli/printer_spec.rb +4 -4
  170. data/spec/unit/mutant/reporter/cli_spec.rb +1 -1
  171. data/spec/unit/mutant/subject/method/instance_spec.rb +117 -22
  172. data/spec/unit/mutant/subject/method/metaclass_spec.rb +63 -0
  173. data/test_app/Gemfile.minitest +2 -0
  174. data/test_app/lib/test_app.rb +5 -0
  175. data/test_app/lib/test_app/metaclasses.rb +108 -0
  176. metadata +74 -25
  177. data/.circleci/config.yml +0 -53
  178. data/config/rubocop.yml +0 -205
  179. data/lib/mutant/color.rb +0 -43
  180. data/lib/mutant/diff.rb +0 -114
  181. data/spec/shared/base_behavior.rb +0 -45
  182. data/spec/support/test_app.rb +0 -7
  183. data/spec/support/warnings.yml +0 -6
  184. data/spec/unit/mutant/diff_spec.rb +0 -189
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef6c23cfd4cebac6873c8d422c919b3821a4eb09cb77b8b9786185fb711c7f70
4
- data.tar.gz: 3035168adda27d5ba4476606ddbf84ddeba62d00bf12a9a26d9b55fcc48a8a74
3
+ metadata.gz: 5cc24215454715aa8d55ed5f972ca4b5ab6c297bccf35e64834f73de7cc914f0
4
+ data.tar.gz: c7b524c6eaa3fe49cce08b1b6ba9c94d379f090f6b75cc6ca38450fed46f101b
5
5
  SHA512:
6
- metadata.gz: 0b137d304dfd008cb9e12373c9665fcd494ddaad91e630ee1cd0bf96ace97abb0181513d152d61dba38dab9ed71f9a473b441983e9e04361e1c4bced66449410
7
- data.tar.gz: f1566c734cb33af620ae3a1d440cd26f9b2c8f8ecf9665bfade140438b5d5e2e8c21732db42cb6bb2130aae87481a11324ca47dac4fb51f17065ee7e2262f8f6
6
+ metadata.gz: d79ce339c29ff4b9ec958e9405281086d1a56daa515a2b154d593ef98338373b6bcbda48f1a4ce924a186d3bcdbff6f4775b46e279da3aa39b1dc8e00525d097
7
+ data.tar.gz: 1d69b7b466b6004461e9a6cd862a3c211a3e9b17bb36ddd4e00e6b8fffb32d4b0b4f2f9dbff9cc8819b342682eb564d5f07fc7de1b742b15f14a9575ef5fe4e2
@@ -0,0 +1,121 @@
1
+ name: CI
2
+
3
+ on: push
4
+
5
+ jobs:
6
+ base:
7
+ name: Base steps
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - uses: actions/checkout@v2
11
+ - name: Check Whitespace
12
+ run: git diff --check -- HEAD~1
13
+ ruby-spec:
14
+ name: Unit Specs
15
+ runs-on: ${{ matrix.os }}
16
+ timeout-minutes: 5
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ ruby: ['2.5', '2.6', '2.7']
21
+ os: [ubuntu-latest]
22
+ steps:
23
+ - uses: actions/checkout@v2
24
+ - uses: actions/setup-ruby@v1
25
+ with:
26
+ ruby-version: ${{ matrix.ruby }}
27
+ - run: |
28
+ gem install bundler
29
+ bundle install
30
+ - run: bundle exec rspec spec/unit
31
+ ruby-mutant:
32
+ name: Mutation coverage
33
+ runs-on: ${{ matrix.os }}
34
+ timeout-minutes: 30
35
+ strategy:
36
+ fail-fast: false
37
+ matrix:
38
+ ruby: ['2.6', '2.7']
39
+ os: [ubuntu-latest]
40
+ steps:
41
+ - uses: actions/checkout@v2
42
+ with:
43
+ fetch-depth: 0
44
+ - uses: actions/setup-ruby@v1
45
+ with:
46
+ ruby-version: ${{ matrix.ruby }}
47
+ - run: |
48
+ gem install bundler
49
+ bundle install
50
+ - run: ./mutant.sh
51
+ ruby-integration-minitest:
52
+ name: Integration Minitest
53
+ runs-on: ${{ matrix.os }}
54
+ timeout-minutes: 5
55
+ strategy:
56
+ fail-fast: false
57
+ matrix:
58
+ ruby: ['2.5', '2.6', '2.7']
59
+ os: [ubuntu-latest]
60
+ steps:
61
+ - uses: actions/checkout@v2
62
+ - uses: actions/setup-ruby@v1
63
+ with:
64
+ ruby-version: ${{ matrix.ruby }}
65
+ - run: gem list
66
+ - run: |
67
+ gem install bundler
68
+ bundle install
69
+ - run: bundle exec rspec spec/integration -e minitest
70
+ ruby-integration-rspec:
71
+ name: Integration RSpec
72
+ runs-on: ${{ matrix.os }}
73
+ timeout-minutes: 10
74
+ strategy:
75
+ fail-fast: false
76
+ matrix:
77
+ ruby: ['2.5', '2.6', '2.7']
78
+ os: [ubuntu-latest]
79
+ steps:
80
+ - uses: actions/checkout@v2
81
+ - uses: actions/setup-ruby@v1
82
+ with:
83
+ ruby-version: ${{ matrix.ruby }}
84
+ - run: |
85
+ gem install bundler
86
+ bundle install
87
+ - run: bundle exec rspec spec/integration -e rspec
88
+ ruby-integration-generation:
89
+ name: Integration Mutation Generation
90
+ runs-on: ${{ matrix.os }}
91
+ timeout-minutes: 5
92
+ strategy:
93
+ fail-fast: false
94
+ matrix:
95
+ ruby: ['2.5', '2.6', '2.7']
96
+ os: [ubuntu-latest]
97
+ steps:
98
+ - uses: actions/checkout@v2
99
+ - uses: actions/setup-ruby@v1
100
+ with:
101
+ ruby-version: ${{ matrix.ruby }}
102
+ - run: |
103
+ gem install bundler
104
+ bundle install
105
+ - run: bundle exec rspec spec/integration -e generation
106
+ ruby-rubocop:
107
+ name: Rubocop
108
+ runs-on: ${{ matrix.os }}
109
+ timeout-minutes: 5
110
+ strategy:
111
+ fail-fast: false
112
+ matrix:
113
+ ruby: ['2.7']
114
+ os: [ubuntu-latest]
115
+ steps:
116
+ - uses: actions/checkout@v2
117
+ - uses: actions/setup-ruby@v1
118
+ with:
119
+ ruby-version: ${{ matrix.ruby }}
120
+ - run: bundle install
121
+ - run: bundle exec rubocop
@@ -5,3 +5,206 @@ AllCops:
5
5
  - 'tmp/**/*'
6
6
  - 'vendor/**/*'
7
7
  TargetRubyVersion: 2.5
8
+
9
+ # Avoid parameter lists longer than five parameters.
10
+ ParameterLists:
11
+ Max: 3
12
+ CountKeywordArgs: true
13
+
14
+ # Avoid more than `Max` levels of nesting.
15
+ BlockNesting:
16
+ Max: 3
17
+
18
+ # Align with the style guide.
19
+ CollectionMethods:
20
+ Enabled: true
21
+ PreferredMethods:
22
+ collect: 'map'
23
+ inject: 'reduce'
24
+ find: 'detect'
25
+ find_all: 'select'
26
+
27
+ AccessModifierIndentation:
28
+ Enabled: false
29
+
30
+ # Limit line length
31
+ LineLength:
32
+ Max: 120
33
+
34
+ # Disable documentation checking until a class needs to be documented once
35
+ Documentation:
36
+ Enabled: false
37
+
38
+ # Permit
39
+ #
40
+ # boolean_check? or fail
41
+ #
42
+ # Reject
43
+ #
44
+ # if foo or bar
45
+ # ...
46
+ # end
47
+ AndOr:
48
+ EnforcedStyle: conditionals
49
+
50
+ # Do not favor modifier if/unless usage when you have a single-line body
51
+ IfUnlessModifier:
52
+ Enabled: false
53
+
54
+ # Allow case equality operator (in limited use within the specs)
55
+ CaseEquality:
56
+ Enabled: false
57
+
58
+ # Constants do not always have to use SCREAMING_SNAKE_CASE
59
+ ConstantName:
60
+ Enabled: false
61
+
62
+ # Not all trivial readers/writers can be defined with attr_* methods
63
+ TrivialAccessors:
64
+ Enabled: false
65
+
66
+ # Allow empty lines around class body
67
+ EmptyLinesAroundClassBody:
68
+ Enabled: false
69
+
70
+ # Allow empty lines around module body
71
+ EmptyLinesAroundModuleBody:
72
+ Enabled: false
73
+
74
+ # Allow empty lines around block body
75
+ EmptyLinesAroundBlockBody:
76
+ Enabled: false
77
+
78
+ # Allow multiple line operations to not require indentation
79
+ MultilineOperationIndentation:
80
+ Enabled: false
81
+
82
+ # Prefer String#% over Kernel#sprintf
83
+ FormatString:
84
+ EnforcedStyle: percent
85
+
86
+ # Use square brackets for literal Array objects
87
+ PercentLiteralDelimiters:
88
+ PreferredDelimiters:
89
+ '%': '{}'
90
+ '%i': '[]'
91
+ '%q': ()
92
+ '%Q': ()
93
+ '%r': '{}'
94
+ '%s': ()
95
+ '%w': '[]'
96
+ '%W': '[]'
97
+ '%x': ()
98
+
99
+ # Use %i[...] for arrays of symbols
100
+ SymbolArray:
101
+ Enabled: true
102
+
103
+ # Prefer #kind_of? over #is_a?
104
+ ClassCheck:
105
+ EnforcedStyle: kind_of?
106
+
107
+ # Do not prefer double quotes to be used when %q or %Q is more appropriate
108
+ Style/RedundantPercentQ:
109
+ Enabled: false
110
+
111
+ # Allow a maximum ABC score
112
+ Metrics/AbcSize:
113
+ Max: 21.02
114
+
115
+ Metrics/BlockLength:
116
+ Exclude:
117
+ - 'spec/**/*.rb'
118
+ - 'mutant.gemspec'
119
+
120
+ # Buggy cop, returns false positive for our code base
121
+ NonLocalExitFromIterator:
122
+ Enabled: false
123
+
124
+ # To allow alignment of similar expressions we want to allow more than one
125
+ # space around operators:
126
+ #
127
+ # let(:a) { bar + something }
128
+ # let(:b) { foobar + something }
129
+ #
130
+ SpaceAroundOperators:
131
+ Enabled: false
132
+
133
+ # We use parallel assignments with great success
134
+ ParallelAssignment:
135
+ Enabled: false
136
+
137
+ # Allow additional specs
138
+ ExtraSpacing:
139
+ AllowForAlignment: true
140
+
141
+ # Buggy
142
+ FormatParameterMismatch:
143
+ Enabled: false
144
+
145
+ # Different preference
146
+ SignalException:
147
+ EnforcedStyle: semantic
148
+
149
+ # Do not use `alias`
150
+ Alias:
151
+ EnforcedStyle: prefer_alias_method
152
+
153
+ # Do not waste my horizontal or vertical space
154
+ Layout/FirstArrayElementIndentation:
155
+ Enabled: false
156
+
157
+ # Prefer
158
+ #
159
+ # some_receiver
160
+ # .foo
161
+ # .bar
162
+ # .baz
163
+ #
164
+ # Over
165
+ #
166
+ # some_receiver.foo
167
+ # .bar
168
+ # .baz
169
+ MultilineMethodCallIndentation:
170
+ EnforcedStyle: indented
171
+
172
+ # Prefer `public_send` and `__send__` over `send`
173
+ Send:
174
+ Enabled: true
175
+
176
+ Layout/HashAlignment:
177
+ EnforcedColonStyle: table
178
+ EnforcedHashRocketStyle: table
179
+ Layout/EmptyLineAfterGuardClause:
180
+ Enabled: false
181
+ Layout/SpaceInsideArrayLiteralBrackets:
182
+ Enabled: false
183
+ Lint/BooleanSymbol:
184
+ Enabled: false
185
+ Lint/InterpolationCheck:
186
+ Enabled: false
187
+ Lint/MissingCopEnableDirective:
188
+ Enabled: false
189
+ Lint/UnifiedInteger:
190
+ Enabled: false
191
+ Naming/FileName:
192
+ Enabled: false
193
+ Style/AccessModifierDeclarations:
194
+ Enabled: false
195
+ Style/CommentedKeyword:
196
+ Enabled: false
197
+ Style/MixinGrouping:
198
+ Enabled: false
199
+ Style/RaiseArgs:
200
+ Enabled: false
201
+ Style/RescueStandardError:
202
+ Enabled: false
203
+ Style/StderrPuts:
204
+ Enabled: false
205
+ # suggesting single letter variablesl bah
206
+ Naming/RescuedExceptionsVariableName:
207
+ Enabled: false
208
+ # false positive on private keywords
209
+ Layout/IndentationWidth:
210
+ Enabled: false
@@ -1,3 +1,29 @@
1
+ # v0.9.11 2020-08-25
2
+
3
+ * Remove mutation to equivalent semantics on endless ranges [#1036](https://github.com/mbj/mutant/pull/1036).
4
+
5
+ # v0.9.10 2020-08-25
6
+
7
+ * Remove bounds to allow `diff-lcs 1.4.x` [#1032](https://github.com/mbj/mutant/pull/1032).
8
+ * Fix crash on endless ranges [#1026](https://github.com/mbj/mutant/pull/1026).
9
+ * Fix memoized subjects to preserve freezer option [#973](https://github.com/mbj/mutant/pull/973).
10
+
11
+ # v0.9.9 2020-08-25
12
+
13
+ + Add support for mutating methods inside eigenclasses `class <<`. [#1009](https://github.com/mbj/mutant/pull/1009)
14
+ - Remove `<` -> `<=` and `>` -> `>=` mutations as non canonical. [#1020](https://github.com/mbj/mutant/pull/1020)
15
+ - Remove `true` -> `nil` and `false` -> `nil` mutations as non canonical. [#1018](https://github.com/mbj/mutant/pull/1018)
16
+
17
+ # v0.9.8 2020-08-02
18
+
19
+ * Change to generic catch all node mutator. This allows better cross parser version compatibility.
20
+
21
+ # v0.9.7 2020-07-22
22
+
23
+ * Bump parser dependency to 2.7.1, note this still does not support Ruby 2.7 syntax.
24
+ But it supports running bundling with that parser version.
25
+ * Nail diff-lcs to 1.3 till output difference for 1.4 can be addressed.
26
+
1
27
  # v0.9.6 2020-04-20
2
28
 
3
29
  * Dependencies upgrade, should not change user facing semantics.
data/Gemfile CHANGED
@@ -5,10 +5,3 @@ source 'https://rubygems.org'
5
5
  gemspec name: 'mutant'
6
6
 
7
7
  eval_gemfile File.expand_path('Gemfile.shared', __dir__)
8
-
9
- # Mutant itself uses an opensource license key.
10
- # Scoped to https://github.com/mbj/mutant it'll
11
- # not be useful elsewhere.
12
- source 'https://oss:Px2ENN7S91OmWaD5G7MIQJi1dmtmYrEh@gem.mutant.dev' do
13
- gem 'mutant-license'
14
- end
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mutant (0.9.6)
4
+ mutant (0.9.11)
5
5
  abstract_type (~> 0.0.7)
6
6
  adamantium (~> 0.2.0)
7
7
  anima (~> 0.3.1)
@@ -12,9 +12,9 @@ PATH
12
12
  ice_nine (~> 0.11.1)
13
13
  memoizable (~> 0.4.2)
14
14
  mprelude (~> 0.1.0)
15
- parser (~> 2.7.0.2)
15
+ parser (~> 2.7.1)
16
16
  procto (~> 0.0.2)
17
- unparser (~> 0.4.6)
17
+ unparser (~> 0.4.8)
18
18
  variable (~> 0.0.1)
19
19
 
20
20
  GEM
@@ -29,54 +29,14 @@ GEM
29
29
  abstract_type (~> 0.0.7)
30
30
  adamantium (~> 0.2)
31
31
  equalizer (~> 0.0.11)
32
- ast (2.4.0)
33
- axiom-types (0.1.1)
34
- descendants_tracker (~> 0.0.4)
35
- ice_nine (~> 0.11.0)
36
- thread_safe (~> 0.3, >= 0.3.1)
37
- codeclimate-engine-rb (0.4.1)
38
- virtus (~> 1.0)
39
- coercible (1.0.0)
40
- descendants_tracker (~> 0.0.1)
32
+ ast (2.4.1)
41
33
  concord (0.1.5)
42
34
  adamantium (~> 0.2.0)
43
35
  equalizer (~> 0.0.9)
44
- descendants_tracker (0.0.4)
45
- thread_safe (~> 0.3, >= 0.3.1)
46
- devtools (0.1.25)
47
- abstract_type (~> 0.0.7)
48
- adamantium (~> 0.2.0)
49
- anima (~> 0.3.0)
50
- concord (~> 0.1.5)
51
- flay (~> 2.12.0)
52
- flog (~> 4.6.2)
53
- procto (~> 0.0.3)
54
- rake (~> 12.3.0)
55
- reek (~> 5.6.0)
56
- rspec (~> 3.8.0)
57
- rspec-core (~> 3.8.0)
58
- rspec-its (~> 1.2.0)
59
- rubocop (~> 0.79.0)
60
- simplecov (~> 0.16.1)
61
- yard (~> 0.9.16)
62
- yardstick (~> 0.9.9)
63
- diff-lcs (1.3)
64
- docile (1.3.2)
36
+ diff-lcs (1.4.4)
65
37
  equalizer (0.0.11)
66
- erubis (2.7.0)
67
- flay (2.12.1)
68
- erubis (~> 2.7.0)
69
- path_expander (~> 1.0)
70
- ruby_parser (~> 3.0)
71
- sexp_processor (~> 4.0)
72
- flog (4.6.4)
73
- path_expander (~> 1.0)
74
- ruby_parser (~> 3.1, > 3.1.0)
75
- sexp_processor (~> 4.8)
76
38
  ice_nine (0.11.2)
77
39
  jaro_winkler (1.5.4)
78
- json (2.3.0)
79
- kwalify (0.7.2)
80
40
  memoizable (0.4.2)
81
41
  thread_safe (~> 0.3, >= 0.3.1)
82
42
  mprelude (0.1.0)
@@ -87,36 +47,27 @@ GEM
87
47
  ice_nine (~> 0.11.1)
88
48
  procto (~> 0.0.2)
89
49
  mutant-license (0.1.0)
90
- parallel (1.19.1)
91
- parser (2.7.0.2)
92
- ast (~> 2.4.0)
93
- path_expander (1.1.0)
50
+ parallel (1.19.2)
51
+ parser (2.7.1.4)
52
+ ast (~> 2.4.1)
94
53
  procto (0.0.3)
95
- psych (3.1.0)
96
54
  rainbow (3.0.0)
97
- rake (12.3.3)
98
- reek (5.6.0)
99
- codeclimate-engine-rb (~> 0.4.0)
100
- kwalify (~> 0.7.0)
101
- parser (>= 2.5.0.0, < 2.8, != 2.5.1.1)
102
- psych (~> 3.1.0)
103
- rainbow (>= 2.0, < 4.0)
104
- rspec (3.8.0)
105
- rspec-core (~> 3.8.0)
106
- rspec-expectations (~> 3.8.0)
107
- rspec-mocks (~> 3.8.0)
108
- rspec-core (3.8.2)
109
- rspec-support (~> 3.8.0)
110
- rspec-expectations (3.8.6)
55
+ rspec (3.9.0)
56
+ rspec-core (~> 3.9.0)
57
+ rspec-expectations (~> 3.9.0)
58
+ rspec-mocks (~> 3.9.0)
59
+ rspec-core (3.9.2)
60
+ rspec-support (~> 3.9.3)
61
+ rspec-expectations (3.9.2)
111
62
  diff-lcs (>= 1.2.0, < 2.0)
112
- rspec-support (~> 3.8.0)
63
+ rspec-support (~> 3.9.0)
113
64
  rspec-its (1.2.0)
114
65
  rspec-core (>= 3.0.0)
115
66
  rspec-expectations (>= 3.0.0)
116
- rspec-mocks (3.8.2)
67
+ rspec-mocks (3.9.1)
117
68
  diff-lcs (>= 1.2.0, < 2.0)
118
- rspec-support (~> 3.8.0)
119
- rspec-support (3.8.3)
69
+ rspec-support (~> 3.9.0)
70
+ rspec-support (3.9.3)
120
71
  rubocop (0.79.0)
121
72
  jaro_winkler (~> 1.5.1)
122
73
  parallel (~> 1.10)
@@ -125,43 +76,32 @@ GEM
125
76
  ruby-progressbar (~> 1.7)
126
77
  unicode-display_width (>= 1.4.0, < 1.7)
127
78
  ruby-progressbar (1.10.1)
128
- ruby_parser (3.14.1)
129
- sexp_processor (~> 4.9)
130
- sexp_processor (4.13.0)
131
- simplecov (0.16.1)
132
- docile (~> 1.1)
133
- json (>= 1.8, < 3)
134
- simplecov-html (~> 0.10.0)
135
- simplecov-html (0.10.2)
136
79
  thread_safe (0.3.6)
137
80
  unicode-display_width (1.6.1)
138
- unparser (0.4.7)
81
+ unparser (0.4.8)
139
82
  abstract_type (~> 0.0.7)
140
83
  adamantium (~> 0.2.0)
84
+ anima (~> 0.3.1)
141
85
  concord (~> 0.1.5)
142
86
  diff-lcs (~> 1.3)
143
87
  equalizer (~> 0.0.9)
88
+ mprelude (~> 0.1.0)
144
89
  parser (>= 2.6.5)
145
90
  procto (~> 0.0.2)
146
91
  variable (0.0.1)
147
92
  equalizer (~> 0.0.11)
148
- virtus (1.0.5)
149
- axiom-types (~> 0.1)
150
- coercible (~> 1.0)
151
- descendants_tracker (~> 0.0, >= 0.0.3)
152
- equalizer (~> 0.0, >= 0.0.9)
153
- yard (0.9.24)
154
- yardstick (0.9.9)
155
- yard (~> 0.8, >= 0.8.7.2)
156
93
 
157
94
  PLATFORMS
158
95
  ruby
159
96
 
160
97
  DEPENDENCIES
161
- devtools (~> 0.1.25)
162
98
  mutant!
163
99
  mutant-license!
164
100
  parallel (~> 1.3)
101
+ rspec (~> 3.9)
102
+ rspec-core (~> 3.9)
103
+ rspec-its (~> 1.2.0)
104
+ rubocop (~> 0.79.0)
165
105
 
166
106
  BUNDLED WITH
167
- 1.17.3
107
+ 2.1.4