XML Protected plugin

Plugin details

Keeps specified attributes of a model out of to_xml. Do so by aliasing to_xml, and automatically sending in the correct :excludes to the original to_xml method.

Websitehttp://github.com/thrivesmart/xml_protected Repositorygit://github.com/thrivesmart/xml_protected.git Author ThriveSmart, LLC Tags XML, attribute LicenseMIT

Documentation

Install the plugin:
ruby script/plugin install git://github.com/thrivesmart/xml_protected.git

Usage
=============
An ActiveRecord Model:

class Model < ActiveRecord::Base
  include XmlProtected # Required because it's a gemmefied plugin
  xml_protected :attr1, :attr2, :attr3
end


You can also access these attributes from the added class method:

protected_xml_attributes 


In Conjunction with attr_protected

class Model < ActiveRecord::Base
  include XmlProtected # Required because it's a gemmefied plugin
  attr_protected :attr1, :attr2, :attr3
  xml_protected :attr1, :attr2, :attr3
end



Installation
==============
To enable the library your Rails 2.1 (or greater) project, use the gem configuration method in “config/environment.rb“

Rails::Initializer.run do |config|
  config.gem 'thrivesmart-xml_protected', :lib => 'xml_protected', :source => 'http://gems.github.com'
end


The :lib is important, because rails gets confused when the name of the gem is different from the library.

And of course, run

  rake gems:install


To get them installed on your system.

Optionally, to unpack it into your application, just run:

  rake gems:unpack GEM=thrivesmart-xml_protected



How it works
===============
Two methods are extended onto your active record class:

1. xml_protected(*attributes) 2. protected_xml_attributes

1. Adds to the inheritable attribute “xml_protected_attrs” the attributes that are speicified in this call. If this is the first time the method is called, it also aliases the old to_xml, and specified a new one which reads from these xml_protected_attrs

2. Simply returns the values currently in “xml_protected_attrs”.

One method is included into your active record class, which is pretty self explanatory:

  def to_xml(options = {})
    xml_protected_to_xml(
      options.merge(
        :except => self.class.protected_xml_attributes + (options[:except] || [])
    ))
  end


Further Documentation

There is currently no advanced documentation for this plugin.

New documentation

Edit plugin | (0 older versions) | Last edited by: hardway, 3 months ago