/roxy

A Ruby library for quickly creating proxy objects.

Primary LanguageRubyMIT LicenseMIT

Roxy (A ruby proxy library)

Summary

Roxy is a basic proxy library that lets you quickly create proxies between your ruby objects. Its syntax
is loosely based on Association Extensions in ActiveRecord
as that is a well-known use of proxies.

Please see the CHANGELOG for contribution details.

Roxy has the following dependencies:

  • rspec >= 1.1.4 (for specs only, not runtime)

Installation

To install the roxy gem run the following:

sudo gem install yfactorial-roxy —source http://gems.github.com

And to enable the scopes in your project just require the roxy library and give your object some moxie:

require ‘roxy’ class Person include Roxy::Moxie … end

Usage

See the announcement post for detailed usage examples: http://ryandaigle.com/articles/2008/11/10/implement-ruby-proxy-objects-with-roxy

Here’s a basic example:


  require 'roxy'
  class Person
    include Roxy::Moxie    
    
    attr_accessor :first, :last, :parents 
       
    proxy :parents do
      def divorced?
        proxy_target.size > 1 and proxy_target.collect { |parent| parent.last }.uniq.size > 1
      end
    end
  end

  # Can then invoke your proxy methods directly on parents
  person.parents.divorced?