Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A Ruby library for quickly creating proxy objects.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gitignore
Octocat-spinner-32 CHANGELOG
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.textile
Octocat-spinner-32 Rakefile
Octocat-spinner-32 init.rb
Octocat-spinner-32 roxy.gemspec
README.textile

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?
Something went wrong with that request. Please try again.