Neeraj
Neeraj Ruby on Rails Expert, Architect & Evangelist | Full Stack Web Developer | Programmer | Open Source Contributor | RubyConf Speaker

As ActiveRecord provides you to get all the changes of your unsaved object, active_resource_changeable gem also serves the same purpose by calling its changes method.

Installation

Add this line to your application’s Gemfile:

1
gem 'active_resource_changeable'

And then execute:

1
$ bundle

Or install it yourself as:

1
$ gem install active_resource_changeable

Usage

1
include ActiveResourceChangeable

into your model and then you can call changes method on its objects. For example.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class User < ActiveResource::Base
  self.site = ""

  include ActiveResourceChangeable

end

user = User.find(1)
user.firstname = "Neeraj1"
user.lastname = "Kumar1"
user.email = "neeraj1.kumar1@mailinator.com"
user.username = "neeraj1"

user.changes = {"firstname"=>["Neeraj", "Neeraj1"], "lastname"=>["Kumar", "Kumar1"], "username=>["neeraj", "neeraj1], "email"=>["neeraj.kumar@mailinator.com", "neeraj1.kumar@mailinator.com"]}

ActiveResourceChangeable works for nested ActiveResource objects too and gives the result something like

1
2
3
4
{"companyName"=>["Skipped Levels 034", "ABC Company"],
 "address"=>{""=>{"line1"=>["1234 Skipped Levels 034", "line1"]}, "countryType"=>{"code"=>["DEU", "IND"]}},
 "countryType"=>{""=>{"code"=>["DEU", "IND"]}},
 "statusType"=>{""=>{"code"=>["A", "B"]}}}

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/neerajkumar/active_resource_changeable. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

comments powered by Disqus