Sha256: 35504a4e09fed61366938f1d523972835a4cb345b6557f234833798b0e774bec
Contents?: true
Size: 1.87 KB
Versions: 3
Compression:
Stored size: 1.87 KB
Contents
require 'rails' require 'paper_trail' # = PaperTrailManager # # == Example usage # # To specify when reverts are allowed, write an initializer similar to this: # # # config/initializers/paper_trail_manager.rb # PaperTrailManager.allow_revert_when do |controller, version| # controller.current_user and controller.current_user.admin? # end # # To specify how to look up users/memebers/etc specified in Paper Trail's 'whodunnit' column: # # PaperTrailManager.whodunnit_class = User # PaperTrailManager.whodunnit_name_method = :nicename # defaults to :name # class PaperTrailManager < Rails::Engine @@whodunnit_name_method = :name cattr_accessor :whodunnit_class, :whodunnit_name_method (Pathname(__FILE__).dirname + '..').tap do |base| paths.app.controllers = base + 'app/controllers' paths.app.views = base + 'app/views' end def self._allow_set(action, block) send(:class_variable_set, "@@allow_#{action}_block", block) end def self._allow_check(action, *args) begin block = send(:class_variable_get, "@@allow_#{action}_block") rescue NameError => e return true end return block.call(*args) end def self.allow_index_when(&block) _allow_set(:index, block) end def self.allow_index?(controller) _allow_check(:index, controller) end def self.allow_show_when(&block) _allow_set(:show, block) end def self.allow_show?(controller, version) _allow_check(:index, controller, version) end # Describe when to allow reverts. Call this with a block that accepts # arguments for +controller+ and +version+. def self.allow_revert_when(&block) _allow_set(:revert, block) end # Allow revert given the +controller+ and +version+? If no # ::allow_revert_when was specified, always return +true+. def self.allow_revert?(controller, version) _allow_check(:revert, controller, version) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
paper_trail_manager-0.1.2 | lib/paper_trail_manager.rb |
paper_trail_manager-0.1.1 | lib/paper_trail_manager.rb |
paper_trail_manager-0.1.0 | lib/paper_trail_manager.rb |