Sha256: 265258c0c5fcda08fae29e5f4f9f0e9d8c484ebb70404b61c36aaafefc477a1c

Contents?: true

Size: 1.89 KB

Versions: 1

Compression:

Stored size: 1.89 KB

Contents

= acts_as_filterable

acts_as_filterable is an ActiveRecord plugin that was hacked together (originally a monkey patch) to avoid repeating the same text filtering logic that was re-implemented all over the place in a legacy domain model. 

== Background

You might ask why we just didn't convert the column value. That _would_ be the right way to go but with tens of millions of rows and numerous legacy apps that expect the data to be a character string; the alternative seemed much more appealing for the time being :). So putting this in place would avoid the garbage data coming in moving forward and assure that the logic is implemented in a sane  (and re-usable) way. Hopefully someone else can find a use for it as well...

== Current filters in place:

* filter_for_digits: leaves only numeric values
* filter_for_uppercase: uppercase all alpha characters
* filter_for_lowercase: lowercase all alpha characters
* filter_for_whitespace: strips and non-essential whitespace out of a string (leaving only single whitespace characters).

Features I'd like to add in the future:
* User-defined custom filters configured via DSL.
* Additional macros that filter decimal values, etc.
* Allow the developer to opt-in models for filtering and not include 
  the plugin in ActiveRecord::Base

= Runtime Dependencies

* Rails 1.2+
* Tested on Ruby 1.8.6, 1.8.7, 1.9.1

= Install
 
== Rails

  config.gem "acts_as_filterable", :source => "http://gemcutter.org"

== Bundler

  source "http://gemcutter.org"
  gem "acts_as_filterable", "0.2.0"

== RubyGems

  gem install acts_as_filterable --source http://gemcutter.org

= Usage
 
  class MyModel < ActiveRecord::Base
    filter_for_digits :phone_number, :fax_number
  end

= Contributing

If something is broken or you need a feature; you know the deal. Don't be part of the problem. Patches or pull requests are welcome.

== Copyright

Copyright (c) 2009 Rob Ares. See LICENSE for details.

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
acts_as_filterable-0.3.0 README.rdoc