Commit graph

24 commits

Author SHA1 Message Date
Markus Schirp
3390abc675 Use environment object inside matchers
This will allow to use reporters from matchers avoiding stupid direct
writes to $stderr.

Also it will allow to remove matching from CLI altogether in a phase of
the runner. Allowing to decouple Mutant::Config from VM environment
allowing to serialize it ;)

Step by step. Takes a while.
2014-06-30 13:08:52 +00:00
Markus Schirp
ab91e3d8ba Remove singleton .each on matcher 2014-06-29 00:10:11 +00:00
Markus Schirp
a19f3b1691 Nuke UTF-8 encoding headers
* I do not use 1.9.3
* Also keeping them in each file increases mental overhead (true it *can* be autoamted)
* None of the files encodes NON ASCII chars.
* I do not expect it makes any difference, since nobody programmatically
  will consume strings generated by mutant under the assumption they are UTF-8 encoded.
* 1.9.3 Users have to deal with the encoding fuckup under ruby anyways.
2014-06-09 15:37:48 +00:00
Markus Schirp
d49cbcd245 Remove unused dependency to DescendantsTracker 2014-03-29 04:28:12 +00:00
Markus Schirp
e903d88b22 Improve YARD docs 2013-09-07 19:42:07 +02:00
Dan Kubb
7293386c26 Add magic encoding header to all ruby files
* rubocop still warns about this on ruby 1.9.3, so it was fixed so
  it produces less output on travis.
2013-07-28 16:03:06 -07:00
Markus Schirp
47bca3fa1f Correct mutation of adamantium memoized methods 2013-07-05 01:14:05 +02:00
Markus Schirp
49133680ee Add AST caching for subject matcher
At least this dramatically speeds up unit tests. And this is a good
thing.
2013-06-27 22:18:07 +02:00
Markus Schirp
1f25ab3ded Cosmetic end comments 2013-06-14 21:12:10 +02:00
Markus Schirp
eeb82ee8c6 Cleanup matcher and classifier interactions
* Some smells remain but it becomes cleaner now
2013-01-21 22:56:52 +01:00
Markus Schirp
a3fc233d95 Reorganize classifiers
* Classifiers are matcher subclass and delegate to lazy builded matcher
  interfaces
* Solves chicken egg problem between target library load and classifier
  matcher instantiation
2013-01-21 20:08:30 +01:00
Markus Schirp
93556763dd Bring back yard coverage to 100%
Also do some minor refactorings
2012-12-12 22:31:27 +01:00
Markus Schirp
98d5b6562c Use abstract_type gem from rubygems 2012-11-26 11:30:00 +01:00
Markus Schirp
637ea8a849 Use Adamantium::Flat from mbj/adamantium at configurable-freezers branch 2012-11-03 02:12:33 +01:00
Markus Schirp
7ecf828768 User adamantium (former immutable) 2012-10-15 14:36:19 +02:00
Markus Schirp
3de69d832d Add cli stuff
* Currently broken (sorry) but do have to push to fix some nasty
  transitive dependency stuff (do not ask).
* Fix fix it tomorrow (hopefully I find the time)
2012-09-11 01:01:06 +02:00
Markus Schirp
46c9213991 Add Mutant::Matcher.{parse,from_string}
These are used in CLI to create maters from strings
2012-08-28 19:54:28 +02:00
Markus Schirp
42e6fe84e5 Add runner with reporter
* Use MethodObject mixin
* Rename Context::Constant to Context::Scope
* Use Mutation class instead of passing around raw nodes
2012-08-16 04:10:54 +02:00
Markus Schirp
23a04009ce Use abstract support gem instead of homebrew
The support gem is better speced than the homebrew version ever was.
2012-08-03 01:28:15 +02:00
Markus Schirp
8810c6e009 Rename Mutantee to Subject 2012-08-01 18:34:03 +02:00
Markus Schirp
3e1f9c408f Cleanup and dedup mutation generation
* Mutator and Generator where merged.
* A single pass over all duplications was made.
* It is clear a specific handles?(node) code for finding mutators
  is needed. Like virtus does for attributes, should also cache.
* Does not pass on 1.9 mode currently as blocks are unexpectly parsed
  differend when it comes to a series of literal booleans.
2012-07-31 04:00:05 +02:00
Markus Schirp
10c3dfc390 Finalize method matching
* Add tests for all edge cases I could create
* Add infrastructure for loading mutations into the vm.
* The fun part is next!
2012-07-26 19:25:23 +02:00
Markus Schirp
dc893bfd7d Progress on method matching
* Adjust metrics
* Add initial integration spec on method matching
* Yard and Heckle coverage is at 100% (heckle cov is disputable)
* Rcov does not really make sense as MRI 1.8 cannot reach all code
  paths.
2012-07-24 01:41:08 +02:00
Markus Schirp
df6ccafeab Add method matcher infrastructure
Needs more specs for sure. Especially edge cases.
2012-07-23 22:54:35 +02:00