0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
A DataMapper plugin for making models absolutely read-only.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.0.0
~> 0.7

Runtime

~> 1.2
 Project Readme

dm-is-read_only

Description

A DataMapper plugin for making Models absolutely read-only.

Features

  • Ignores auto-migrations on read-only Models.
  • Ignores auto-upgrades on read-only Models.
  • Puts all resources of a read-only Model into the Immutable state.
  • Supports the :migrations and :mutable options for selectively enabling migrations or mutability.

Example

require 'dm-core'
require 'dm-is-read_only'

class Licence

  include DataMapper::Resource

  is :read_only

  # The primary-key of the License
  property :id, Serial

  # Name of the Licence
  property :name, String

  # URL to the licence
  property :url, String

end

Licence.first
# => #<Licence: id: 1, name: "GPL-2", url: "http://www.gnu.org/copyleft/gpl.html">

# ignores auto-migrations
License.auto_migrate!
# => true

Licence.first
# => #<Licence: id: 1, name: "GPL-2", url: "http://www.gnu.org/copyleft/gpl.html">

# ignores auto-upgrades
License.auto_upgrade!
# => true

license = Licence.first
# => #<Licence: id: 1, name: "GPL-2", url: "http://www.gnu.org/copyleft/gpl.html">

license.name = 'WTF'
license.save!
# => true

# will not allow saving resources
license.reload
license.name
# => "GPL-2"

license.destroy!
# => true

# will not allow destroying resources
license = License.first
# => #<Licence: id: 1, name: "GPL-2", url: "http://www.gnu.org/copyleft/gpl.html">

Requirements

Install

$ sudo gem install dm-is-read_only

License

Copyright (c) 2010-2012 Hal Brodigan

See {file:LICENSE.txt} for license information.