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.