README.md in faster_path-0.0.5 vs README.md in faster_path-0.0.6
- old
+ new
@@ -1,8 +1,9 @@
# FasterPath
[![Gem Version](https://badge.fury.io/rb/faster_path.svg)](https://badge.fury.io/rb/faster_path)
[![Build Status](https://travis-ci.org/danielpclark/faster_path.svg?branch=master)](https://travis-ci.org/danielpclark/faster_path)
+[![Tweet This](https://raw.githubusercontent.com/danielpclark/faster_path/master/assets/tweet.png)](https://twitter.com/share?url=https%3A%2F%2Fgithub.com%2Fdanielpclark%2Ffaster_path&via=6ftdan&hashtags=Ruby&text=You%20could%20save%2015%25%20or%20more%20on%20website%20load%20time%20by%20switching%20to%20the%20FasterPath%20gem.)
The primary **GOAL** of this project is to improve performance in the most heavily used areas of Ruby as
path relation and file lookup is currently a huge bottleneck in performance. As this is the case the
path performance updates will likely not be limited to just changing the Pathname class but also will
be offering changes in related methods and classes.
@@ -84,10 +85,11 @@
|FasterPath Rust Implementation|Ruby 2.3.1 Implementation|Performance Improvement|
|---|---|:---:|
| `FasterPath.absolute?` | `Pathname#absolute?` | 1234.6% |
| `FasterPath.chop_basename` | `Pathname#chop_basename` | 27.5% |
+| `FasterPath.relative?` | `Pathname#relative?` | 1262.3% |
| `FasterPath.blank?` | | |
You may choose to use the methods directly, or scope change to rewrite behavior on the
standard library with the included refinements, or even call a method to monkeypatch
everything everywhere.
@@ -107,14 +109,22 @@
```
require "faster_path/optional/monkeypatches"
FasterPath.sledgehammer_everything!
```
-## Development
+## Getting Started with 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.
+The primary methods to target are mostly listed in the **Why** section above. You may find the Ruby
+source code useful for Pathname's [Ruby source](https://github.com/ruby/ruby/blob/32674b167bddc0d737c38f84722986b0f228b44b/ext/pathname/lib/pathname.rb),
+[C source](https://github.com/ruby/ruby/blob/32674b167bddc0d737c38f84722986b0f228b44b/ext/pathname/pathname.c), and
+[tests](https://github.com/ruby/ruby/blob/32674b167bddc0d737c38f84722986b0f228b44b/test/pathname/test_pathname.rb).
-To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
+Methods will be written as exclusively in Rust as possible. Even just writing a **not** in Ruby with a
+Rust method like `!absolute?` _(not absolute)_ drops 39% of the performance already gained in Rust.
+Whenever feasible implement it in Rust.
+
+After checking out the repo, make sure you have Rust installed. Then run `bundle && rake build_lib` .
+Then, run `rake test` to run the tests, and `rake bench` for benchmarks.
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/danielpclark/faster_path.