README.md in preval-0.3.0 vs README.md in preval-0.4.0
- old
+ new
@@ -29,18 +29,25 @@
Each optimization is generally named for the function it performs, and can be enabled through the `enable!` method on the visitor class. If you do not explicitly call `enable!` on any optimizations, nothing will change with your source.
* `Preval::Visitors::Arithmetic` replaces:
* constant expressions with their evaluation (e.g., `5 + 2` becomes `7`)
* arithmetic identities with their evaluation (e.g., `a * 1` becomes `a`)
-* `Preval::Visitors::Micro` replaces:
+* `Preval::Visitors::AttrAccessor` replaces:
* `def foo; @foo; end` with `attr_reader :foo`
+ * `def foo=(value); @foo = value; end` with `attr_writer :foo`
+* `Preval::Visitors::Fasterer` replaces:
* `.gsub('...', '...')` with `.tr('...', '...')` if the arguments are strings and are both of length 1
* `.map { ... }.flatten(1)` with `.flat_map { ... }`
* `.reverse.each` with `.reverse_each`
* `.shuffle.first` with `.sample`
* `Preval::Visitors::Loops` replaces:
* `for ... in ... end` loops with `... each do ... end` loops
* `while true ... end` loops with `loop do ... end` loops
+ * `while false ... end` loops with nothing
+ * `until false ... end` loops with `loop do ... end` loops
+ * `until true ... end` loops with nothing
+
+You can also call `Preval.enable_all!` which will enable every built-in visitor. Be especially careful when doing this.
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.