Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

thrivesmart-xml_protected

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

thrivesmart-xml_protected

  • 0.0.5
  • Rubygems
  • Socket score

Version published
Maintainers
2
Created
Source

h1. XmlProtected

Keeps specified attributes of a model out of to_xml, by aliasing to_xml, and automatically sending in the correct :excludes to the original to_xml method, e.g. :excludes => [:attr1, :attr2, ...]

NOTE: as of this time, it doesn't protect these attributes from reading. For that, use this in conjunction with :attr_protected

h2. 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

h3. 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

h2. 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

h2. How it works

Two methods are extended onto your active record class:

  1. xml_protected(*attributes)

  2. protected_xml_attributes

  3. 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

  4. 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 = {})
    options[:except] ||= []
    xml_protected_to_xml(options.merge(:except => options[:except].concat(self.class.protected_xml_attributes)))
  end

h2. Copyright & License

Copyright (c) 2008 ThriveSmart, LLC, released under the MIT license

FAQs

Package last updated on 10 Aug 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc