Jekyll is a simple, blog aware, static site generator. It takes a
template directory (representing the raw form of a website), runs it
through Textile or Markdown and Liquid converters, and spits out a
complete, static website suitable for serving with Apache or your
favorite web server.
The directory watcher operates by scanning a directory at some interval
and generating a list of files based on a user supplied glob pattern. As
the file list changes from one interval to the next, events are
generated and dispatched to registered observers. Three types of events
are supported--added, modified, and removed.
Liquid is a template engine which I wrote for very specific
requirements:
* It has to have beautiful and simple markup. Template engines which
don't produce good looking markup are no fun to use.
* It needs to be non evaling and secure. Liquid templates are made so
that users can edit them. You don't want to run code on your server
which your users wrote.
* It has to be stateless. Compile and render steps have to be seperate
so that the expensive parsing and compiling can be done once and later
on you can just render it passing in a hash with local variables and
objects.
Fast-stemmer is simply a wrapping around multithreaded Porter stemming
algorithm.
This gem adds a String#stem method, and it conflicts with the stemmer
gem. It's in order of magnitude faster (and uses much less memory) than
the latter.
Classifier is a general module to allow Bayesian and other types of
classifications. It supports both Bayes and LSI (Latent Semantic
Indexing) classifications.
Discount is an implementation of John Gruber's Markdown markup language
in C. It implements all of the language described in the markdown syntax
document and passes the Markdown 1.0 test suite. rdiscount is a ruby C
extension that wraps Discount.
This module provides both a C and pure ruby simple subset sum problem
solver. The subset sum problem is, given a set of numbers, can the sum
of any subset of those numbers equal a given number. This problem is
NP-complete.
Both the C and pure ruby versions implement a fairly simple
meet-in-the-middle algorithm. The C version uses an AVL tree to store
the data, while the pure ruby version uses a ruby hash. For the C
version to be used, the sum of the positive numbers and the sum of the
negative numbers in the set, as well as the wanted number, must all be
Fixnums. Additionally, max_seconds should be nil or a Fixnum.
ruby-prof is a fast code profiler for Ruby. Its features include:
* Speed - it is a C extension and therefore many times faster than the
standard Ruby profiler.
* Modes - Ruby prof can measure a number of different parameters,
including call times, memory usage and object allocations.
* Reports - can generate text and cross-referenced html reports
o Flat Profiles - similar to the reports generated by the standard
Ruby profiler
o Graph profiles - similar to GProf, these show how long a method
runs, which methods call it and which methods it calls.
o Call tree profiles - outputs results in the calltree format
suitable for the KCacheGrind profiling tool.
* Threads - supports profiling multiple threads simultaneously
* Recursive calls - supports profiling recursive method calls
home_run is an implementation of ruby's Date/DateTime classes in C, with
much better performance (20-200x) than the version in the standard
library, while being almost completely compatible.
MSpec is a specialized framework that is syntax-compatible with RSpec
for basic things like describe, it blocks and before, after actions.
MSpec contains additional features that assist in writing the RubySpecs
used by multiple Ruby implementations. Also, MSpec attempts to use the
simplest Ruby language features so that beginning Ruby implementations
can run it.
With ffi-inliner you can run C code within your ruby script:
* Mix C snippets in your Ruby code and gulp it on the fly!
* It's based on Ruby-FFI so the C code you inject is portable across
Ruby implementations!
* Yep, it means that you can run it on JRuby too!
* Fast compilation through tcc
* But it can use the system's compiler (e.g. gcc) on those platforms
that don't support tcc (e.g. OSX) or that don't have it installed
Ruby-FFI is a ruby extension for programmatically loading dynamic
libraries, binding functions within them, and calling those functions
from Ruby code. Moreover, a Ruby-FFI extension works without changes on
Ruby and JRuby.
* It has a very intuitive DSL
* It supports all C native types
* It supports C structs (also nested), enums and global variables
* It supports callbacks
* It has smart methods to handle memory management of pointers and
structs
rake-compiler aims to help Gem developers deal with Ruby extensions,
simplifying code and reducing duplication.
It follows convention over configuration and sets a standardized
structure to build and package both C and Java extensions in your gems.
This is the result of experiences dealing with several Gems that
required native extensions across platforms and different user
configurations where details like portability and clarity of code were
lacking.
The Mysql2 gem is meant to serve the extremely common use-case of
connecting, querying and iterating on results. Some database libraries
out there serve as direct 1:1 mappings of the already complex C APIs
available. This one is not.
Swift is a fast database API and ORM for ruby 1.9, featuring:
* Multiple databases.
* Prepared statements.
* Bind values.
* Transactions and named save points.
* EventMachine asynchronous interface.
* IdentityMap.
* Migrations.
dbic++ is a database client library written in C++ which comes with
support for PostgreSQL and MySQL. It's main features are:
* Simple API to maximize cross database support.
* Supports nested transactions.
* Auto reconnect, re-prepare & execute statements again unless inside
a transaction.
* Provides APIs for async queries and a simple reactor API built on
libevent.
allow keyword access to array instances. arrayfields works by adding
only a few methods to arrays, namely #fields= and fields, but the
#fields= method is hooked to extend an array on a per object basis. in
otherwords __only__ those arrays whose fields are set will have
auto-magical keyword access bestowed on them - all other arrays remain
unaffected. arrays with keyword access require much less memory when
compared to hashes/objects and yet still provide fast lookup and
preserve data order.
Add libusb support. Bring a patch from upstream bug DB that allows for
both ulpt(4) and libusb based devices to work without the need for
separate packages.
Remove the useless rc patch (we provide our own).
Move MESSAGE to README and extend it.