File: README.txt

rufus-decision

getting it

    sudo gem install rufus-decision

or at

rubyforge.org/frs/?group_id=4812

usage

An example where a few rules determine which salesperson should interact with a customer with given characteristics.

    require 'rubygems'
    require 'rufus/decision'

    include Rufus

    TABLE = DecisionTable.new("""
    in:age,in:trait,out:salesperson

    18..35,,adeslky
    25..35,,bronco
    36..50,,espadas
    51..78,,thorsten
    44..120,,ojiisan

    25..35,rich,kerfelden
    ,cheerful,swanson
    ,maniac,korolev
    """)

    #
    # Given a customer (a Hash instance directly, for
    # convenience), returns the name of the first
    # corresponding salesman.
    #
    def determine_salesperson (customer)

        TABLE.transform(customer)["salesperson"]
    end

    puts determine_salesperson(
        "age" => 72)
        # => thorsten

    puts determine_salesperson(
        "age" => 25, "trait" => "rich")
        # => adeslky

    puts determine_salesperson(
        "age" => 23, "trait" => "cheerful")
        # => adeslky

    puts determine_salesperson(
        "age" => 25, "trait" => "maniac")
        # => adeslky

    puts determine_salesperson(
        "age" => 44, "trait" => "maniac")
        # => espadas

More at Rufus::DecisionTable

dependencies

The gem ‘rufus-dollar’ (rufus.rubyforge.org/rufus-dollar) and the ‘rufus-eval’ gem (rufus.rubyforge.org/rufus-eval).

mailing list

On the rufus-ruby list :

    http://groups.google.com/group/rufus-ruby

issue tracker

rubyforge.org/tracker/?atid=18584&group_id=4812&func=browse

source

github.com/jmettraux/rufus-decision

    git clone git://github.com/jmettraux/rufus-decision.git

author

John Mettraux, jmettraux@gmail.com jmettraux.wordpress.com

license

MIT