Sha256: 1cbb1859467a71bdc81d6e4defcb02c17e2ade641cf5ba2b76c39d5fbc2c90f3

Contents?: true

Size: 1.34 KB

Versions: 1

Compression:

Stored size: 1.34 KB

Contents

# Reflections

Given an ActiveRecord object, it re-maps relationships to another object
of the same class.  Useful for reconciling database with accounts for same user, etc.

## Installation

Add this line to your application's Gemfile:

    gem 'reflections'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install reflections

## Usage

    user1 = User.create

    user2 = User.create

    Widget.create user: user1

    OtherClass.create user: user1

    user1.map_associations_to user2

    you can optionally control the associations

    user1.map_associations_to(user2, types: %w(belongs_to has_and_belongs_to_many))

    you can optionally control the updating of the associations
    or create reports by passing a block

    user1.map_associations_to(user2) do |record, association|
      puts "Remapping #{association.macro} for #{record} from #{user1} to #{user2}"
      false # don't actually do update
    end

    you can also control the classes remapped with :only and :exclude

    user1.map_associations_to(user2, only: [Widget])

    user1.map_associations_to(user2, except: [OtherClass])

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reflections-1.2.0 README.md