README.md in ragel-bitmap-0.1.0 vs README.md in ragel-bitmap-0.2.0
- old
+ new
@@ -1,10 +1,10 @@
# Ragel::Bitmap
[![Build Status](https://travis-ci.com/kddeisz/ragel-bitmap.svg?branch=master)](https://travis-ci.com/kddeisz/ragel-bitmap)
-Use bitmaps for ragel-generated code instead of arrays.
+[Ragel](https://www.colm.net/open-source/ragel/) generates ruby code with very large arrays of integers that allocate a lot of memory when required. To reduce memory consumption, this gem replaces those arrays with packed strings.
## Installation
Add this line to your application's Gemfile:
@@ -20,10 +20,20 @@
$ gem install ragel-bitmap
## Usage
-Use `Ragel::Bitmap.replace(filepath)` where `filepath` is a path to a ragel-generated file. Require `ragel/bitmap` in your code. Profit!
+After you've run `ragel` to generate your parser, you should then run this gem over the resulting source file and it will replace the integer arrays inline. For example, the following code adds a rake rule to generate the ragel parser from the grammar file and then run `Ragel::Bitmap` over it:
+
+```ruby
+rule %r|_parser\.rb\z| => '%X.rl' do |t|
+ sh "ragel -s -R -L -F1 -o #{t.name} #{t.source}"
+ require 'ragel/bitmap'
+ Ragel::Bitmap.replace(t.name)
+end
+```
+
+Then, in your application, add `require 'ragel/bitmap'` before you require your parser. Now you should be off and running!
## 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.