Skip to content

brunocruzcoelho/mongoid_userstamp

 
 

Repository files navigation

MongoidUserstamp Build Status Code Climate

MongoidUserstamp adds stamp columns for created by and updated by information within Rails applications using Mongoid ORM.

Version Support

MongoidUserstamp is tested on the following versions:

  • Ruby 1.9.3 and 2.0.0
  • Rails 3
  • Mongoid 3

Install

  gem 'mongoid_userstamp'

Usage

  # Default config
  Mongoid::Userstamp.config do |c|

    # Default config values

    c.user_reader = :current_user
    c.user_model = :user

    c.created_column = :created_by
    c.created_accessor = :creator

    c.updated_column = :updated_by
    c.updated_accessor = :updater

    # Optional config values

    # c.created_alias = :c
    # c.updated_alias = :u
  end

  # Example model
  class Person
    include Mongoid::Document
    include Mongoid::Userstamp
  end
 
  # Create instance
  p = Person.create

  # Updater ObjectID or nil
  p.updated_by
  # => BSON::ObjectId('4f7c719f476da850ba000039')

  # Updater instance or nil
  p.updater
  # => <User _id: 4f7c719f476da850ba000039>

  # Set updater manually (usually not required)
  p.updater = my_user # can be a Mongoid::Document or a BSON::ObjectID
  # => sets updated_by to my_user's ObjectID

  # Creator ObjectID or nil
  p.created_by
  # => BSON::ObjectId('4f7c719f476da850ba000039')

  # Creator instance or nil
  p.creator
  # => <User _id: 4f7c719f476da850ba000039>

  # Set creator manually (usually not required)
  p.creator = my_user # can be a Mongoid::Document or a BSON::ObjectID
  # => sets created_by to my_user._id

Contributing

Fork -> Patch -> Spec -> Push -> Pull Request

Please use Ruby 1.9.3 hash syntax, as Mongoid 3 requires Ruby >= 1.9.3

Authors

Copyright

Copyright (c) 2012-2013 Thomas Boerger Programmierung http://www.tbpro.de

Licensed under the MIT License (MIT). Refer to LICENSE for details.

About

Userstamp for created and updated columns within mongoid

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%