mutant 0.9.6 → 0.9.11

Sign up to get free protection for your applications and to get access to all the features.
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