Skip to content

jfcaiceo/active_resource-dirty

Repository files navigation

ActiveResource::Dirty

ActiveResource::Dirty is a monkey patch that supports ActiveModel::Dirty methods in ActiveResource.

Usage

Provides a way to track changes in your object. For example:

person = Person.find(1)
person.changed?         # => false
person.name = 'Frank'
person.changes          # => {"name"=>[nil, 'Frank']}
person.name_was         # nil
person.save
person.changes          # => {}
person.previous_changes # => {"name"=>[nil, 'Frank']}

PATCH Requests

It uses the http PATCH method instead of PUT, and sends in the body only the attributes that have changed. This feature requires the flag patch_updates.

class Person < ActiveResource::Base
  self.site = 'http://someapi.com'
  self.patch_updates = true
end
person = Person.find(1)
person.name = 'Frank'
person.save
# Sends this request:
# PATCH http://someapi.com/people/1.json
# {"name":"Frank"}
#

Considerations

This is a monkey patch that overrides methods from both ActiveResource and ActiveModel::Dirty (the latter one only for ActiveResource::Base. It does not affect ActiveModel for other uses). Any change in this methods in future versions can lead to unexpected results. So use with caution.

Installation

Add this line to your application's Gemfile:

gem 'active_resource-dirty'

And then execute:

$ bundle

Or install it yourself as:

$ gem install active_resource-dirty

Requirements

  • activemodel ~> 5.2.0
  • activeresource ~> 5.1.0
  • activesupport ~> 5.2.0

License

The gem is available as open source under the terms of the MIT License.

About

ActiveModel::Dirty support for ActiveResource

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages